uses crt;
type Tuchen=record
fam:string[15];
im: string[15];
adr:string[15];
ocn:array[1..3]of byte;
srb:real;
end;
var sp:array[1..50] of Tuchen;
n,i,j,f:byte;
c:char;
begin
clrscr;
writeln('Введите данные об учениках, окончание ввода Esc:');
n:=0;
repeat
n:=n+1;
writeln(' Ученик',n);
with sp[n] do
begin
write(' Фамилия: ');readln(fam);
write(' Имя: ');readln(im);
write(' Адрес: ');readln(adr);
writeln(' Три оценки:');
srb:=0;
for j:=1 to 3 do
begin
repeat
write(' Оценка ',j,'=');
readln(ocn[j]);
until ocn[j] in [2..5];
srb:=srb+ocn[j]/3;
end;
end;
c:=readkey;
until c=#27;
clrscr;
writeln(' Список абитуриентов, сдавших вступительные экзамены:');
writeln(' со средним баллом не ниже 4.5');
writeln;
writeln('------------------------------------------------------------------');
writeln('| Фамилия | Имя | Адрес | Оценки | Ср.балл |');
writeln('------------------------------------------------------------------');
f:=0;
for i:=1 to n do
if sp[i].srb>=4.5 then
begin
f:=1;
with sp[i] do
begin
gotoXY(1,whereY); write('| ',sp[i].fam);
gotoXY(17,whereY); write('| ',sp[i].im);
gotoXY(30,whereY); write('| ',sp[i].adr);
gotoXY(47,whereY); write('| ');
for j:=1 to 3 do write(' ',sp[i].ocn[j]);
gotoXY(56,whereY); write('|',sp[i].srb:6:2);
gotoXY(66,whereY);writeln('|');
end;
end;
writeln('------------------------------------------------------------------');
if f=0 then write('Таких абитуриентов нет!');
readln
end.