Процедура сортировки записей по 2-ум ключевым полям - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Подскажите, как реализовать процедуру сортировки записей по 2-ум ключевым полям?

Решение задачи: «Процедура сортировки записей по 2-ум ключевым полям»

textual
Листинг программы
type zap=record
         naz:string[20];//название пункта
         chs:integer;   //число жителей
         pls:real;      //площадь
         end;
const n=10;
type mas=array[1..n] of zap;
procedure sort(var a:mas);
var x:zap;
    i,j:byte;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
//сортируем по алфавиту названия, если одинаковые то по численности
if(a[i].naz>a[j].naz)or((a[i].naz=a[j].naz)and(a[i].chs>a[j].chs)then
 begin
  x:=a[i];
  a[i]:=a[j];
  a[j]:=x;
 end;
end;

Объяснение кода листинга программы

Данный код написан на языке Pascal ABC и предназначен для сортировки записей по двум ключевым полям - названию пункта (naz) и числу жителей (chs). В начале кода определяется тип данных zap, который представляет собой запись с двумя полями - naz (название пункта) типа string[20] и chs (число жителей) типа integer. Затем определяется константа n, которая указывает количество записей в массиве mas. Далее определяется тип данных mas, который представляет собой массив из n записей типа zap. Процедура sort принимает на вход переменную a, которая содержит массив записей типа mas, и выполняет сортировку этого массива по заданным критериям. Внутри цикла for происходит сравнение двух записей a[i] и a[j] по алфавиту названия (naz) и, в случае равенства названий, по численности числа жителей (chs). Если записи равны по обоим критериям, то они считаются одинаковыми и пропускаются. В противном случае, если записи не равны по алфавиту или по численности, происходит обмен этих записей местами. Для обмена записей местами используются три переменные - x, i и j. Переменная x присваивается значению a[i], переменная i присваивается значению a[j], а переменная j присваивается значению a[i]. Затем значения a[i] и a[j] обновляются соответственно значениями x и a[j], а значение a[j] обновляется значением a[i]. После выполнения цикла for происходит выход из процедуры sort.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5
Похожие ответы