Срочно. В простой понятной форме. Напишите программу, которая заполняет массив случайными...

0 голосов
79 просмотров

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


спросил от Одаренный (1.0k баллов) в категории Информатика
оставил комментарий от Отличник (9.4k баллов)

"В простой понятной форме?"

оставил комментарий от Одаренный (1.0k баллов)

да

оставил комментарий от Отличник (9.4k баллов)

Типо на словесном языке?

оставил комментарий от Одаренный (1.0k баллов)

не

оставил комментарий от Одаренный (1.0k баллов)

короче. хоть что-то

оставил комментарий от Отличник (9.4k баллов)

Программу с комментариями?

оставил комментарий от Одаренный (1.0k баллов)

да

оставил комментарий от Отличник (9.4k баллов)

На каком языке?

оставил комментарий от Одаренный (1.0k баллов)

паскаль

оставил комментарий от Одаренный (1.0k баллов)

комментарии на русском языке

1 Ответ

0 голосов
ответил от Отличник (9.4k баллов)

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]      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.

оставил комментарий от Одаренный (1.0k баллов)

спасибо большое

оставил комментарий от Одаренный (1.0k баллов)

выручил с

...