Запись данных в файл. Вывод информации по определенному критерию

В входной файл записать список студентов группы и информацию про день, месяц и год рождения каждого. (Количество студентов в группе - 25). Вывести на экран информацию про студентов, которые моложе 18 лет по старшинству.

code: #pascal
  1. uses
  2.   dos;
  3. type
  4.   tstudent=record
  5.              name,surname:string[10];
  6.              dobyear:1980..2007;
  7.              dobmonth:1..12;
  8.              dobday:1..31;
  9.            end;
  10. var
  11.   st:array[1..25]of tstudent;
  12.   fst:file of tstudent;
  13.   b:tstudent;
  14.   i,k,y,m,d,dn:word;
  15. begin
  16.   {Ввод данных}
  17.   for i:=1 to 3 do
  18.   begin
  19.     writeln('Student ',i);
  20.     write('Imya:     ');
  21.     readln(st[i].name);
  22.     write('Familiya: ');
  23.     readln(st[i].surname);
  24.     write('Data rojdeniya (dd mm yyyy): ');
  25.     read(st[i].dobday);
  26.     read(st[i].dobmonth);
  27.     read(st[i].dobyear);
  28.     readln;
  29.   end;
  30.   {Сортировка по старшинству}
  31.   for k:=3 downto 2 do
  32.   for i:=1 to k-1 do
  33.   if st[i].dobyear>st[i+1].dobyear then
  34.   begin
  35.     b:=st[i];
  36.     st[i]:=st[i+1];
  37.     st[i+1]:=b;
  38.   end;
  39.   assign(fst,'stud.txt');  
  40.   rewrite(fst);
  41.   {Запись данных в файл}
  42.   for i:=1 to 3 do write(fst,st[i]);
  43.   close(fst);
  44.   getdate(y,m,d,dn);{Определение текущей даты}
  45.   {Вывод на экран студентов, возраст которых < 19}
  46.   for i:=1 to 3 do if (y-st[i].dobyear)<19 then
  47.   writeln(st[i].surname,' ',st[i].name,'    ',
  48.     st[i].dobday,' ',st[i].dobmonth,' ',st[i].dobyear);
  49.   readln;
  50. end.
Поделиться:

Похожие статьи: