Помогите поправить программу. Pascal ABC
Всем доброго времени суток!
Есть такое условие задачи
Создайте файл, содержащий записи о 10 студентах из 3 групп.
Выведите на экран максимальный балл по 2-му предмету в каждой из 3 групп.
Получилось так:
Я попытался реализовать её без goto, но получилось не очень. Файл создаётся, после его заполнения программа завершается. Максимальную оценку не выводит, также не могу понять как программу зациклить на показ оценок из групп.
Заранее спасибо!
Всем доброго времени суток!
Есть такое условие задачи
Создайте файл, содержащий записи о 10 студентах из 3 групп.
Выведите на экран максимальный балл по 2-му предмету в каждой из 3 групп.
Получилось так:
Код:
type student=record
name:string[10];
group:integer;
marks:array[1..5] of 2..5;
end;
var f:file of student;
gr:array[1..3] of integer;
st:student;
i,j,k:byte;
x,max,ans:integer;
begin
writeln('Создать файл заново или открыть существующий? (1-создать, 2-открыть)');
repeat
readln(ans);
until ans in [1..2];
if (ans=1) then begin
assign(f,'student.txt');
rewrite(f);
gr[1]:=355;
gr[2]:=255;
gr[3]:=155;
for i:=1 to 3 do
begin
writeln('Введите 10 записей о студентах группы ',gr[i],':');
j:=0;
repeat
j:=j+1;
writeln('Студент ',j);
with st do
begin
write('Фамилия: ');readln(name);
group:=gr[i];
writeln(' Введите 5 оценок студента от 2 до 5');
for k:=1 to 5 do
repeat
write(' Оценка ',k,' ');
readln(marks[k]);
until marks[k] in [2..5];
write(f,st);
end;
until j=10;
end;
close(f);
end;
if (ans=2) then begin
writeln('Продолжить? Да(1)/Нет(2)');
repeat
readln(ans);
until ans in [1..2];
while ans<>2 do begin
repeat
writeln('Выберите номер группы (1-3)');
readln(k);
until k in [1..3];
x:=gr[k];
writeln('Максимальный балл студентов группы ',x,' по второму предмету');
while not eof(f) do
begin
reset(f);
read(f,st);
if st.group=x then
begin
max:=0;
for i:=1 to 5 do
if st.marks[2]>max then max:=st.marks[2];
end;
writeln(max);
close(f);
end;
end;
end;
readln
end.
Заранее спасибо!