Помогите написать программу, а то зачет не поставят(:
Заполнить текстовый файл данными о 30 абитуриентов поступающих на три разных факультета(фамилия, имя, факультет,оценки,полученные на трех экзаменах). Переписать данные в файл записей. вывести на экран списки абитуриентов по факультетам,получивших "двойку" на одном из экзаменов.
Вообщем есть программа помогите исправить а то работает некоректно
const n=30;
type ocen=array[1..3] of byte;
student=record
Fi:string;
fak:string;
oc:ocen;
end;
var ab:array[1..30] of student;
out:file of student;
i:integer; s:string;
begin
assign(input,'input.txt');reset(input);
for i:=1 to n do begin
read(s);
ab[i].Fi:=ab[i].Fi+s;
read(s); ab[i].Fi:=ab[i].Fi+' '+s;
read(ab[i].fak);
read(ab[i].oc[1]);
read(ab[i].oc[2]);
readln(ab[i].oc[3]);
end;
close(input);
assign(out,'output.txt');
rewrite(out);
for i:=1 to n do
write(out,ab[i]);
close(out);
for i:=1 to n do
if (ab[i].fak=ab[1].fak) then
if (ab[i].oc[1]=2) or (ab[i].oc[2]=2)or(ab[i].oc[3]=2) then writeln(ab[i].Fi);
for i:=1 to n do
if (ab[i].fak<>ab[i].fak) then
if (ab[i].oc[1]=2)or(ab[i].oc[2]=2)or(ab[i].oc[3]=2) then writeln(ab[i].Fi);
end.
В чем состоит некорректность?
Ввод в текстовый файл с клавиатуры:
...
type
ocen=array[1..3] of byte;
student=record
Fam,Imya:string;
fak:string;
oc:ocen;
end;
...
var
f: text;
begin
assign(f,'input.txt');rewrite(f);
for i:=1 to n do
begin
readln(ab[i].Fam);
readln(ab[i].Imya);
readln(ab[i].fak);
readln(ab[i].oc[1]);
readln(ab[i].oc[2]);
readln(ab[i].oc[3]);
end;
close(f);