zadach435.PAS

{* Задача 435 *}

Unit ZADACH435;
Interface
Implementation
Begin
 writeln('Найти в файле студентов старше х лет-
Алгоритм:
1. Запрашиваю нынешний год и возраст, старше которого необходимо найти студентов.
2. Вычисляю год рождения, вычитая из нынешнего года заданный возраст.
2. Читаю файл построчно и сравниваю года рождения с вычесленным мною годом. В случае, если он меньше, вывожу строку на дисплей и сохраняю их в новый файл. '
);
End.

Program zadach435;

Uses zadach435.pas; {* Эту строку можно удалить *}
Var {* В работе нам потребуются переменные: *}
  F    : text;
  G    : text;
  razn : integer;
  year : integer;
  x    : integer;
  h    : integer;
  code : integer;
  i    : integer;
  k    : integer;
  str  : String[77];
  date : String[10];
Begin
  k := 0;
  writeln('Spisok studentov iz "USP.DAT":');
  Assign(F, 'C:USP.DAT'); {* Привязка переменной F к файлу 'C:USP.DAT' *}
  Assign(G, 'C:NEW.DAT'); {* Подключение к файлу 'C:NEW.DAT' через переменную G *}
  Reset(F); {* Открытие файла для чтения *}
  While Not Eof(F) Do {* Проверяем, не достигнут ли конец файла *}
  Begin
    k := k + 1;
    readln(F, str);
    writeln(k, ')', str);
  End;
  Close(F); {* Закрытие файла *}
  writeln; {* Вывод пустой строки *}
  write('Vvedite nineschnij god: ');
  readln(year);
  write('Vvedit vozrast X: ');
  readln(x);
  razn := year - x;
  k := 0;
  writeln; {* Вывод пустой строки *}
  writeln('Spisok studentov, starsche ', x, ' let: ');
  writeln; {* Вывод пустой строки *}
  Reset(F); {* Подготовка переменной F для чтения из файла *}
  Rewrite(G); {* Подготовка переменной G для записи в файл *}
  While Not Eof(F) Do {* Проверяем, не достигнут ли конец файла *}
  Begin
    readln(F, str);
    date := Copy(str, 44, 4);
    Val(date, h, Code);
    If h < razn Then
    Begin
      k := k + 1;
      writeln(k, ')', str);
    End;
    
  End;
  Close(F); {* Файл F будет закрыт *}
  Close(G); {* Закрытие файла *}
  writeln('Poluchenniy spisok sokhranen v "NEW.DAT".');
  readln; {* Ждем нажатия Enter *}
End.