Определить фамилию самого младшего учащегося в группе — Pascal(Паскаль)

uses crt;
type date=record
          fm:string[20];
          gd:1990..2000;
          ms:1..12;
          dn:1..31;
          end;
var m:array[1..100] of date;
    n,i,j,im,k:byte;
begin
clrscr;
write('Количество учеников n=');
readln(n);
writeln('Введите данные о ',n,' учениках:');
for i:=1 to n do
 begin
  writeln('Ученик ',i);
  repeat
  write(' Фамилия: ');readln(m[i].fm);
  write(' Год (1990-2000):');readln(m[i].gd);
  until (m[i].gd>=1990)and(m[i].gd<=2000);
  repeat
  write('  Месяц (1-12): ');readln(m[i].ms);
  until m[i].ms in [1..12];
  repeat
  k:=0;
  write('  День: ');readln(m[i].dn);
  if ((m[i].ms in [1,3,5,7,8,10,12])and not(m[i].dn in [1..31]))
  or ((m[i].ms in [4,6,9,11])and not(m[i].dn in [1..30]))
  or ((m[i].ms=2)and(m[i].gd mod 4=0)and not(m[i].dn in [1..29]))
  or ((m[i].ms=2)and(m[i].gd mod 4<>0)and not(m[i].dn in [1..28]))then k:=1;
  until k=0;
 end;
clrscr;
im:=1;
for i:=1 to n do
if (m[i].gd>m[im].gd)or((m[i].gd=m[im].gd)and(m[i].ms>m[im].ms))
or((m[i].gd=m[im].gd)and(m[i].ms=m[im].ms)and(m[i].dn>m[im].dn)) then im:=i;
write('Самый молодой: ',m[im].fm);
readln
end.

Leave a Comment

71 − = 69