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

0 интересует 0 не интересует
80 просмотров

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


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

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

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

да

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

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

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

не

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

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

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

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

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

да

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

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

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

паскаль

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

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

1 Ответ
0 интересует 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 баллов)
0 0

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

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

выручил с

...