Алгоритмические языки и программирование. Часть 3. Модули в Турбо Паскале. Игошина Л.В. - 7 стр.

UptoLike

Составители: 

7
7
Разработка модуля
Включим в разрабатываемый модуль с именем SORT две процедуры
сортировки: обменной сортировки с именем Sort_Exchange и сортировки
выбором - Sort_Choose. Все остальные пояснения см. в комментариях.
Unit SORT; {Заголовок модуля}
Interface { Секция связи}
Type
T_Time = record {Описание типа для задания времени}
Hour: 0..23;
Min: 0..59;
end;
T_zap = record {Описание типа для одной записи списка}
nom: string[5];
potpr, pnazn: string[15];
day: 1..7;
time: T_Time;
price: real;
end;
Var Spis: array[1..1000]of T_zap; {Описание списка - массива из
записей}
Kol_Zap: word; { Число записей в файле и списке}
Procedure Sort_Exchange; { Описание заголовков процедур модуля}
Procedure Sort_Choose;
Implementation {Секция реализации}
Procedure Sort_Exchange; {Процедура обменной сортировки}
Var
i: word; Z: T_Zap;
Key: boolean; {Ключ - признак обмена}
Begin
Repeat {Цикл проверок очередности}
Key:=false;
For i:=1 to Kol_Zap-1 do
If Spis[i].nom > Spis[i+1].nom then
Begin {Обмен записей}
Z:=Spis[i];
Spis[i]:=Spis[i+1];
Spis[i+1]:=Z;
Key:=True;
End;
Until Key=False; {Цикл заканчивается в том случае, если ни одна пара
записей не переставлялась}
End;
Procedure Sort_Choose; {Процедура сортировки выбором}
Var i, j, imin: word; nomr: string[5]; Z: T_Zap;
                                                                                7




                               Разработка модуля

     Включим в разрабатываемый модуль с именем SORT две процедуры
сортировки: обменной сортировки с именем Sort_Exchange и сортировки
выбором - Sort_Choose. Все остальные пояснения см. в комментариях.

      Unit SORT; {Заголовок модуля}
      Interface { Секция связи}
        Type
             T_Time = record {Описание типа для задания времени}
                   Hour: 0..23;
                   Min: 0..59;
                      end;
             T_zap = record       {Описание типа для одной записи списка}
                   nom: string[5];
                   potpr, pnazn: string[15];
                   day: 1..7;
                   time: T_Time;
                   price: real;
                   end;
Var Spis: array[1..1000]of T_zap; {Описание списка - массива из записей}
      Kol_Zap: word; { Число записей в файле и списке}
      Procedure Sort_Exchange; { Описание заголовков процедур модуля}
      Procedure Sort_Choose;
      Implementation {Секция реализации}
      Procedure Sort_Exchange; {Процедура обменной сортировки}
             Var
                   i: word; Z: T_Zap;
                   Key: boolean; {Ключ - признак обмена}
             Begin
              Repeat {Цикл проверок очередности}
                   Key:=false;
                   For i:=1 to Kol_Zap-1 do
                          If Spis[i].nom > Spis[i+1].nom then
                                 Begin {Обмен записей}
                                       Z:=Spis[i];
                                       Spis[i]:=Spis[i+1];
                                       Spis[i+1]:=Z;
                                       Key:=True;
                                 End;
             Until Key=False; {Цикл заканчивается в том случае, если ни одна пара
записей не переставлялась}
             End;
      Procedure Sort_Choose; {Процедура сортировки выбором}
             Var i, j, imin: word; nomr: string[5]; Z: T_Zap;
                                                                                7