Алгоритмические языки и программирование. Аксенова Л.И - 12 стр.

UptoLike

12
Var
F_input, F_out : Text; { Файловые переменные для связи с входным
и выходным файлами}
Spisok :Array [1..1000] of Type_Rec; { Описание массива записей}
Kol_Zap, i : Word; { Число и счетчик записей}
Zap : Type_Rec; { Описание одной записи}
Key : Boolean; { Ключ сортировки}
Begin
Assign (F_input, Spis.dan);
Reset (F_input); { Открытие файла для чтения}
i := 0; { Счетчик считанных записей}
{ Ввод данных из текстового файла в массив }
While not Eof (F_input) Do
begin inc (i);
With Spisok[i] Do { Оператор присоединения}
Readln (F_input, Nom, FIO, YEAR); { Ввод строки: для
текстового файла необходимо указывать каждое вводимое поле записи}
end; Kol_Zap := i; { Число записей в файле}
Repeat { Обменная сортировка массива Spisok по полю
Год рождения”}
Key := False;
For i := 1 To Kol_Zap - 1 Do
If Spisok[i].YEAR > Spisok[i+1].YEAR then
begin Key := True; { Обмен записей}
Zap := Spisok[i];
Spisok[i]:= Spisok[i+1];
Spisok[i+1]:= Zap;
end;
Until Key = False; { Конец сортировки}
{ Вывод результатов в файл}
Assign (F_out, Sort.dan);
Rewrite (F_out); { Открытие файла для
записи}
{ Вывод заголовка для списка}
Writeln(F_out, Упорядоченный список записей);
   Var
    F_input, F_out : Text; { Файловые переменные для связи с входным
                               и выходным файлами}
    Spisok :Array [1..1000] of Type_Rec; { Описание массива записей}
    Kol_Zap, i : Word; { Число и счетчик записей}
    Zap : Type_Rec; { Описание одной записи}
    Key : Boolean; { Ключ сортировки}
    Begin
         Assign (F_input, ′Spis.dan′);
          Reset (F_input); { Открытие файла для чтения}
          i := 0; { Счетчик считанных записей}
       { Ввод данных из текстового файла в массив }
          While not Eof (F_input) Do
             begin        inc (i);
                With Spisok[i] Do { Оператор присоединения}
                 Readln (F_input, Nom, FIO, YEAR); { Ввод строки: для
текстового файла необходимо указывать каждое вводимое поле записи}
             end;            Kol_Zap := i; { Число записей в файле}
          Repeat      { Обменная сортировка массива Spisok по полю
                                                      “Год рождения”}
                 Key := False;
             For i := 1 To Kol_Zap - 1 Do
              If Spisok[i].YEAR > Spisok[i+1].YEAR then
                             begin Key := True; { Обмен записей}
                                    Zap := Spisok[i];
                                    Spisok[i]:= Spisok[i+1];
                                    Spisok[i+1]:= Zap;
                             end;
          Until Key = False;       { Конец сортировки}
          { Вывод результатов в файл}
          Assign (F_out, ′Sort.dan′);
          Rewrite (F_out); { Открытие файла для записи}
          { Вывод заголовка для списка}
          Writeln(F_out, ′ Упорядоченный список записей′);

                                 12