Задать вопрос
4 сентября, 23:43

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

+4
Ответы (1)
  1. 5 сентября, 01:19
    0
    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
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Выполнить переворот или сортировку массива с помощью процедур (pascal abc). ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы