Вывести список с параметрами в порядке убывания максимального напряжения - Pascal ABC
Формулировка задачи:
Программа создает массив записей с параметрами (код, марка, макс напряжение). Вывести список с параметрами в порядке убывания макс напряжения.
Решение задачи: «Вывести список с параметрами в порядке убывания максимального напряжения»
textual
Листинг программы
program pr;
const
Csize = 100;
type
Tdat = record
code: integer;
brand: string[50];
mvoltage: integer;
end;
Tarr = array [1..Csize] of Tdat;
procedure sort_n(var Am: Tarr; An: integer);
var
i, j: integer;
buf: Tdat;
begin
for i := 1 to An - 1 do
for j := i + 1 to An do
if Am[i].brand < Am[j].brand then
begin
buf := Am[i];
Am[i] := Am[j];
Am[j] := buf;
end;
end;
procedure sort_s(var Am: Tarr; An: integer);
var
i, j: integer;
buf: Tdat;
begin
for i := 1 to An - 1 do
for j := i + 1 to An do
if Am[i].mvoltage < Am[j].mvoltage then
begin
buf := Am[i];
Am[i] := Am[j];
Am[j] := buf;
end;
end;
var
a: Tarr;
i, n, j: integer;
begin
writeln('Введите количество записей');
readln(n);
for i := 1 to n do
begin
writeln('Введите код');
readln(a[i].code);
writeln('Введите марку');
readln(a[i].brand);
writeln('Введите максимальное напряжение');
readln(a[i].mvoltage);
writeln;
end;
sort_n(a, n);
sort_s(a, n);
writeln('Отсортированный список ');
for j := 1 to n do
begin
writeln('Макс. напряжение: ', a[j].mvoltage);
writeln('Марка: ', a[j].brand);
writeln('Код: ', a[j].code);
writeln;
end;
end.
Объяснение кода листинга программы
- В программе объявлены три переменные: Csize (константа, равная 100), Tdat (структура, содержащая поля code, brand и mvoltage) и Tarr (массив, заполняемый структурами Tdat).
- В процедуре sort_n переменные i и j используются для сравнения структур Am[i] и Am[j] и обмена их местами, если Am[i].brand меньше Am[j].brand.
- В процедуре sort_s переменные i и j используются для сравнения структур Am[i] и Am[j] и обмена их местами, если Am[i].mvoltage меньше Am[j].mvoltage.
- Задано количество записей n, которое считывается с клавиатуры.
- Для каждой записи считываются код, марка и максимальное напряжение.
- Эти данные добавляются в массив a.
- Затем выполняется сортировка массива a по максимальному напряжению в порядке убывания с помощью функций sort_n и sort_s.
- Отсортированный список выводится на экран.
- Для каждой записи выводятся код, марка и максимальное напряжение.