const nn=50;type data = record number : 1..31; month : 1..12; year : 1901..1997 end;var d:array[1..nn] of data; i,n,k:integer; s,s1,s2,s3:string;begin Write('Количество дат (1..50)-> '); Read(n); Writeln('Введите через пробел день, месяц, год: '); for i:=1 to n do Read(d[i].number,d[i].month,d[i].year); { a } Write('Самый ранний из годов: '); k:=d[1].year; for i:=2 to n do if d[i].year<k then k:=d[i].year; Writeln(k); { б } Writeln('Все весенние даты'); for i:=1 to n do if d[i].month in [3..5] then Write(d[i].number,'.',d[i].month,'.',d[i].year,' '); Writeln; { в } Write('Cамая поздняя дата: '); Str(d[1].year,s1); Str(d[1].month,s2); Str(d[1].number,s3); if Length(s2)=1 then s2:='0'+s2; if Length(s3)=1 then s3:='0'+s3; s:=s1+s2+s3; for i:=2 to n do begin Str(d[i].year,s1); Str(d[i].month,s2); Str(d[i].number,s3); if Length(s2)=1 then s2:='0'+s2; if Length(s3)=1 then s3:='0'+s3; if s<s1+s2+s3 then s:=s1+s2+s3 end; Writeln(Copy(s,7,2)+'.'+Copy(s,5,2)+'.'+Copy(s,1,4))end.
Тестовое решение:Количество дат (1..50)-> 6Введите через пробел день, месяц, год: 18 4 195016 5 19685 8 19703 9 196811 6 196416 12 1967Самый ранний из годов: 1950Все весенние даты18.4.1950 16.5.1968 Cамая поздняя дата: 05.08.1970