uses crt;
type stud=record
im:string[10];
pl:char;
rs:140..200;
oc:array[1..3] of 2..5;
end;
fail=file of stud;
procedure Rost(var f:fail;sr:real);
var s:stud;
k,i:byte;
begin
writeln('Список студенток со средним ростом выше среднего:');
writeln(' (средний рост=',sr:0:2,')');
writeln;
writeln('-----------------------------------');
writeln('| Имя | Пол | Рост | Оценки |');
writeln('-----------------------------------');
reset(f);
k:=0;
while not eof(f) do
begin
read(f,s);
with s do
if (rs>sr)and(pl='ж') then
begin
k:=1;
gotoXY(1,whereY);write('| ',im);
gotoXY(13,whereY);write('|',pl:3);
gotoXY(19,whereY);write('|',rs:4);
gotoXY(26,whereY);write('| ');
for i:=1 to 3 do write(oc[i]:2);
gotoXY(35,whereY);writeln('|');
end;
end;
writeln('------------------------------------');
if k=0 then write('Студенток с ростом, выше среднего нет!');
write('Press Enter...');
end;
var f:fail;
s:stud;
c:char;
n,i:byte;
sr:real;
begin
clrscr;
assign(f,'student');
rewrite(f);
writeln('Введите данные о студентах, окончание ввода Esc');
n:=0;
repeat
n:=n+1;
writeln('Запись ',n);
with s do
begin
write(' Имя: ');readln(im);
repeat
write(' Пол [м,ж]: ');
readln(pl);
until pl in ['м','ж'];
repeat
write(' Рост [140..200]: ');
readln(rs);
until rs in [140..200];
writeln(' Введите 3 оценки [2-5]');
for i:=1 to 3 do
begin
repeat
write(' оценка ',i,' ' );
readln(oc[i]);
until oc[i] in [2..5];
end;
write(f,s);
end;
c:=readkey;
until c=#27;
clrscr;
writeln('Полный список студентов:');
writeln;
writeln('-----------------------------------');
writeln('| Имя | Пол | Рост | Оценки |');
writeln('-----------------------------------');
reset(f);
sr:=0;
n:=filesize(f);
while not eof(f) do
begin
read(f,s);
with s do
begin
gotoXY(1,whereY);write('| ',im);
gotoXY(13,whereY);write('|',pl:3);
gotoXY(19,whereY);write('|',rs:4);
gotoXY(26,whereY);write('| ');
for i:=1 to 3 do write(oc[i]:2);
gotoXY(35,whereY);writeln('|');
sr:=sr+rs;
end;
end;
writeln('-----------------------------------');
sr:=sr/n;
close(f);
write('Press Enter...');
readln;
clrscr;
Rost(f,sr);
readln
end.