Впростой понятной форме. напишите программу, которая заполняет массив случайными числами в диапазоне [a, b] и сортирует его “домиком” – до половины в порядке возрастания, затем – в порядке убывания. количество элементов в массиве может быть любое! с объяснениями и откуда что взялось?

koool3 koool3    3   13.09.2019 09:30    1

Ответы
Vera4441 Vera4441  07.10.2020 11:33
Var
  A: array [1..255] of integer;
  N, i, j, k, min, max: integer;
begin
  //Ввод количества элементов в массиве
  write('Введите четное количество элементов: ');
  readln(N);
 
  //Ввод двух чисел для диапазона случайных чисел
  write('Введите диапазон случайных чисел: ');
  readln(min, max);
 
  //Инициализация датчика случайных чисел.
  //(в PascalABC.NET необязательно)
  randomize;
 
  //Заполнение массива
  for i := 1 to N do
  begin
    A[i] := random(max-min+1)+min;
    write(A[i]:4);
  end;
  writeln;
 
  //Сортировка первой половины по убыванию
  for i := 1 to ((N div 2)-1) do
    for j := 1 to (N div 2)-i do
      if A[j] > A[j+1] then
      begin
        k := A[j];
        A[j] := A[j+1];
        A[j+1] := k;
       end;
       
  //Сортировка второй половины по убыванию
  for i:=(N div 2) to N-1 do
    for j:=i+1 to N do
      if A[i]<A[j] then
      begin
        k:=a[i];
        A[i]:=A[j];
        A[j]:=k;
      end;

  //Вывод массива
  for i := 1 to N do write(A[i]:4);
  writeln;
  readln;
end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика