Реализовать сортировку динамического массива целых чисел - Pascal ABC
Формулировка задачи:
3)Реализовать сортировку динамического массива целых чисел.
Решение задачи: «Реализовать сортировку динамического массива целых чисел»
textual
Листинг программы
var a:^array[1..100] of integer;
n,i,j,x:integer;
begin
new(a);
repeat
write('Введите размер массива от 1 до 100 n=');
readln(n);
until n in [1..100];
writeln('Исходный массив');
for i:=1 to n do
begin
a^[i]:=1+random(100);
write(a^[i]:4);
end;
writeln;
for i:=1 to n-1 do
for j:=i+1 to n do
if a^[i]>a^[j] then
begin
x:=a^[i];
a^[i]:=a^[j];
a^[j]:=x;
end;
writeln('Отсортированный массив');
for i:=1 to n do
write(a^[i]:4);
end.
Объяснение кода листинга программы
- Создается переменная
aтипа^array[1..100] of integer;, которая представляет собой динамический массив целых чисел размером от 1 до 100. - Затем объявляются четыре переменные:
n,i,jиxтипаinteger;. Они будут использоваться для итерации по массиву и выполнения операций сравнения и обмена элементов. - В цикле
repeat-untilзапрашивается у пользователя размер массива от 1 до 100 и сохраняется в переменнойn. - В цикле
for i:=1 to n doзаполняется массивa^[i]случайными числами от 1 до 100 с помощью функцииrandom(100). - Выводится сообщение с размером массива и его текущим состоянием.
- В цикле
for i:=1 to n-1 doпроисходит итерация по массивуa^[i]иa^[j](гдеjравноi+1). Еслиa^[i]большеa^[j]то выполняется операция обмена элементов:x := a^[i]; a^[i] := a^[j]; a^[j] := x;. - Выводится отсортированный массив.
- В цикле
for i:=1 to n doвыводится значениеa^[i]с помощью функцииwrite(a^[i]:4).