Исправить программу. Паскаль
как сделать, чтобы не вбивать данные каждый раз, а только по необходимости...? ну, например, спросить об этом пользователя в начале, или проверить - если файл есть - то читаем из него, если нет - то вызываем блок создания и заполнения файла. можно код? пожалуйста.. . и чтобы неограниченное число людей можно было посчитать, а у меня константа стоит, не знаю чем заменить
Program P10;
Uses Crt;
Const n=5;
Type
student=Record
FIO:String [64];
Exam1,Exam2,Exam3,Exam4:2..5;
End;
Var
Spisok:array[1..n] of student;
A:student;
f:file of student;
i:integer;
sr:real;
Begin
Assign(f,'Spisok.dat');
Rewrite(f);
for i:=1 to n do
begin
clrscr;
writeln('Введите данные');
writeln('Введите ФИО: ');
readln(A.FIO);
write('Оценка за первый экзамен: ');readln(A.Exam1);
write('Оценка за второй экзамен: ');readln(A.Exam2);
write('Оценка за третий экзамен: ');readln(A.Exam3);
write('Оценка за четвертый экзамен: ');readln(A.Exam4);
write(f,A);
end;
close(f);
clrscr;
assign(f,'spisok.dat');
reset (f);
writeln('---------------------------------------------------------------------------');
writeln(' Ф. И. О | ','1 экзамен | ','2 экзамен | ','3 экзамен | ','4 экзамен|',' Средний балл');
writeln('---------------------------------------------------------------------------');
For i:=1 to n do
while not eof (f) do
begin
read(f, A);
sr:=(A.Exam1+A.Exam2+A.Exam3+A.Exam4)/4;
writeln(A.FIO:15,'|':1,A.Exam1:6,'|':6,A.Exam2:6,'|':6,A.Exam3:6,'|':6,A.Exam4:6,'|':6,sr:9:2);
End;
close (f);
End.