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

Выполнить переворот или сортировку массива с процедур(pascal abc).

Показать ответ
Ответ:
ринат127
ринат127
10.07.2020 13:37
Const
  nm = 100;

type
  Mas = array[1..nm] of integer;

procedure Shell(var a: Mas; n: integer);
{ сортировка методом Шелла }
var
  i, j, step, t: integer;

begin
  step := n div 2;
  while step > 0 do
  begin
    for j := n - step downto 1 do
    begin
      i := j;
      while i <= n - step do
      begin
        if a[i] > a[i + step] then
        begin
          t := a[i];
          a[i] := a[i + 1];
          a[i + 1] := t
        end;
        i := i + step
      end
    end;
    step := step div 2
  end
end;

var
  x: Mas;
  i, n: integer;

begin
  Randomize;
  Write('Введите число элементов в массиве (1-100): ');
  Readln(n);
  Writeln('Исходный массив');
  for i := 1 to n do
  begin
    x[i] := Random(101) - 50;
    Write(x[i]:4)
  end;
  Shell(x, n);
  Writeln(#13#10, 'Отсортированный массив');
  for i := 1 to n do Write(x[i]:4)
end.

Тестовое решение:

Введите число элементов в массиве (1-100): 20
Исходный массив
  -8 -17 -19   1  -3  23 -33  30 -27 -45  12  26 -24  18  37   8  47 -14 -19  -3
Отсортированный массив
 -45 -33 -27 -24 -19 -19 -17 -14  -8  -3  -3   1   8  12  18  23  26  30  37  47
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота