Сортировка массива по возрастанию и убыванию - Free Pascal
Формулировка задачи:
A[i]-массив вещественных чисел, состоящий из элементов, выбранных случайным образом из диапазона [0;5]
( в вещественном числе 3 знака после запятой)
Выполнить:
B[i]- отсортировать массив A[i] по возрастанию
C[i]- отсортировать массив А[i] по убыванию
Заранее большое спасибо :3
Решение задачи: «Сортировка массива по возрастанию и убыванию»
textual
Листинг программы
const n=10;
var
a:array[1..n] of real;
i:integer;
procedure Sort(var a:array of real;b:boolean);
var
i,j:integer;
t:real;
begin
for i:=low(a) to high(a)-1 do
for j:=i+1 to high(a) do
if (a[i]>a[j]=b) then begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
end;
end;
procedure PrintArray(s:string;a:array of real);
var
i:integer;
begin
writeln(s);
for i:=low(a) to high(a) do write(a[i]:6:3);
writeln;
end;
begin
randomize;
for i:=1 to n do a[i]:=random*5;
PrintArray('Исходный массив:',a);
Sort(a,true);
PrintArray('Сортировка по возрастанию:',a);
Sort(a,false);
PrintArray('Сортировка по убыванию:',a);
readln;
end.
Объяснение кода листинга программы
- Объявлены константа
nравная 10 и переменнаяaтипа массив из 10 элементов типа real. - В функции
Sortобъявлены две переменныеiиjтипа integer, а также переменнаяtтипа real. - В функции
PrintArrayобъявлена переменнаяiтипа integer. - В основной части программы производится инициализация массива
aслучайными значениями с помощью функцииrandomize. - Вызывается функция
PrintArrayс аргументами 'Исходный массив:' иa, чтобы вывести исходный массив на экран. - Вызывается функция
Sortс аргументамиaиtrue, чтобы отсортировать массивaпо возрастанию. - Вызывается функция
PrintArrayс аргументами 'Сортировка по возрастанию:' иa, чтобы вывести отсортированный по возрастанию массив на экран. - Вызывается функция
Sortс аргументамиaиfalse, чтобы отсортировать массивaпо убыванию. - Вызывается функция
PrintArrayс аргументами 'Сортировка по убыванию:' иa, чтобы вывести отсортированный по убыванию массив на экран. - В основной части программы добавлено
readln, чтобы программа могла ожидать ввода пользователя для завершения работы.