В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География

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

Показать ответ
Ответ:
Vesthumer
Vesthumer
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.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота