const N=15;
type
stdnt = record
surname: string[15];
gr: word;
lrn: record
den: 1..31;
mes: 1..12;
god: word;
end;
grup: string[7];
kurs: byte;
ocenki: array [1..5, 1..6] of 2..5;
end;
var
stud: array [1..N] of stdnt;
tmp: stdnt; p: boolean;
i, j, z: byte;
BEGIN
for i:=1 to N do
with stud[i] do
begin
write(' Фамилия: '); readln(surname);
write('Год рождения: '); readln(gr);
write('Начало учебы: ');
with lrn do readln(den, mes, god);
write(' Группа: '); readln(grup);
write(' Курс: '); readln(kurs);
for j:=1 to kurs do
begin
write(' ', j, ' курс: ');
for z:=1 to 6 do
read(ocenki[j, z]);
end;
readln;
end;
repeat
p:=false;
for i:=1 to N-1 do
if (ord(upcase(stud[i].surname[1]))<ord(upcase(stud[i+1].surname[1]))) then
begin
tmp:=stud[i]; stud[i]:=stud[i+1];
stud[i+1]:=tmp; p:=true;
end;
until not(p);
writeln('Фамилия':7, 'Г.Р.':5, ' ', 'Начало учебы':11, ' Группа', ' Курс');
for i:=1 to N do
with stud[i] do
writeln(surname:7, gr:5, ' ', lrn.den, '.', lrn.mes, '.',
lrn.god, ' ', grup:5, ' ', kurs:3);
END.