Паскаль, проблема с файлами
Здравствуйте!
Помогите пожалуйста разобраться с задачей.
Дан текстовый файл, содержащий сведения о студентах:фамилия ,имя и три оценки; необходимо вычислить средний балл всей группы за сессию и средний балл каждого студента ,создать новый файл и записать туда информацию о студентах у которых средний балл выше среднего балла всей группы.
сделала так, но проблемы с циклом .(программа должна быть сделана именно по этому алгоритму)
program upr1;
const d=3;
var st:string;
t1,t2:text;
k,a:integer;
f,i,o1,o2,o3:string;
s,sb:real;
n1,n2,n3,code:integer;
begin
assign(t1,'file.txt');
reset(t1);
assign(t2,'file2.txt');
rewrite(t2);
k:=0;
sb:=0;
while not eof(t1) do begin
readln(t1,st);
a:=pos(' ',st);
f:=copy(st,1,a-1);
delete(st,1,a);
a:=pos(' ',st);
i:=copy(st,1,a-1);
delete(st,1,a);
o1:=st[1];
o2:=st[3];
o3:=st[5];
val(o1,n1,code);
val(o2,n2,code);
val(o3,n3,code);
s:=(n1+n2+n3)/d;
sb:=sb+s;
if s>sb/n then
begin
k:=k+1;
writeln(t2,k,'.',' ',f,' ',i,' ',o1,' ',o2,' ',o3);
end;
end;
close(t1);
close(t2);
reset(t2);
writeln('студенты , у котрорых средний балл выше среднего балла группы');
while not eof(t2) do begin
readln(t2,st);
writeln(st);
end;
writeln('количество таких студентов ',k);
close(t2);
end.
вот исходный файл.
Иванов Иван 5 5 5
Иванова Иарина 4 4 4
Сидоров Максим 3 2 4
Сидорова Ирина 4 5 4
Мишкина Мария 5 4 3
а также необходимо составить другую программу, по такому же исходному файлу , сформировать новый файл
, записав в него информацию о студентах, отсортированную в порядке уменьшения среднего балла за сессию. при этом средний балл каждого студента так же записать в текстовый файл. нужно использовать массив.
с алгоритмами сортировки знакома, но никак не пойму как связать программу с массивами.
Заранее благодарю!!!
Здравствуйте!
Помогите пожалуйста разобраться с задачей.
Дан текстовый файл, содержащий сведения о студентах:фамилия ,имя и три оценки; необходимо вычислить средний балл всей группы за сессию и средний балл каждого студента ,создать новый файл и записать туда информацию о студентах у которых средний балл выше среднего балла всей группы.
сделала так, но проблемы с циклом .(программа должна быть сделана именно по этому алгоритму)
program upr1;
const d=3;
var st:string;
t1,t2:text;
k,a:integer;
f,i,o1,o2,o3:string;
s,sb:real;
n1,n2,n3,code:integer;
begin
assign(t1,'file.txt');
reset(t1);
assign(t2,'file2.txt');
rewrite(t2);
k:=0;
sb:=0;
while not eof(t1) do begin
readln(t1,st);
a:=pos(' ',st);
f:=copy(st,1,a-1);
delete(st,1,a);
a:=pos(' ',st);
i:=copy(st,1,a-1);
delete(st,1,a);
o1:=st[1];
o2:=st[3];
o3:=st[5];
val(o1,n1,code);
val(o2,n2,code);
val(o3,n3,code);
s:=(n1+n2+n3)/d;
sb:=sb+s;
if s>sb/n then
begin
k:=k+1;
writeln(t2,k,'.',' ',f,' ',i,' ',o1,' ',o2,' ',o3);
end;
end;
close(t1);
close(t2);
reset(t2);
writeln('студенты , у котрорых средний балл выше среднего балла группы');
while not eof(t2) do begin
readln(t2,st);
writeln(st);
end;
writeln('количество таких студентов ',k);
close(t2);
end.
вот исходный файл.
Иванов Иван 5 5 5
Иванова Иарина 4 4 4
Сидоров Максим 3 2 4
Сидорова Ирина 4 5 4
Мишкина Мария 5 4 3
а также необходимо составить другую программу, по такому же исходному файлу , сформировать новый файл
, записав в него информацию о студентах, отсортированную в порядке уменьшения среднего балла за сессию. при этом средний балл каждого студента так же записать в текстовый файл. нужно использовать массив.
с алгоритмами сортировки знакома, но никак не пойму как связать программу с массивами.
Заранее благодарю!!!