Другие языки программирования и технологии

в файле записаны данные о результатах сдачи экзамена.

13,14,15 Паскаль
заранее спасибо
var i, k, k1, g1: integer;
x, y, family, name: string;
f1, f2, f3: text;
begin
assign (f1, 'remka1.txt');
assign (f2, 'remka2.txt');
assign (f3, 'remka3.txt');
reset (f1);
rewrite (f2);
rewrite (f3);
while not eof(f1) do
begin
inc(k);
family:='';
name:='';
readln (f1, x);
for i:=1 to length(x) do
if x[i] <> ' ' then family:=family+x[i]
else
begin
g1:=i+1;
name:=x[i+1];
break;
end;
for i:=g1 to length(x) do
if x[i] = ' ' then
begin
k1:=i;
break;
end;
writeln (f2, k,') ', x);
writeln (f3, k,') ', name, '. ', family, copy (x, k1, Length (x)-k1+1));
y:= copy (x, length(x)-1, 2);
if y > '80' then writeln (copy (x, 1, length(x) - 3));
end;
close (f3);
close (f2);
close (f1);
end.
Евгений Петинёв
Евгений Петинёв
20 124
Лучший ответ
измени эту программу под свою задачу, не получится - пиши
{1) Написать программу, которая создаёт список студентов курса. Список содержит
поля: Фамилия И. О., год рождения, номер группы, оценки за три экзамена.
Выбрать студентов, рождённых в 1985 году и имеющих средний балл
за 3 экзамена 1) больше 4; 2) больше 4,5
2) Усложнить задачку. Вывести общий список в файлы st21,
найденных студентов 1) больше 4; в st212.dat. }
program pro ;
uses crt;
type student = record
g:integer;
fam: string[10];
god,grup:integer;
oc:array[1..3] of integer;
end;
function occ:integer;
label 1;
var
a:integer;
begin
1:readln(a);
if (a<3) or (a>5) then begin
writeln('error vvoda( 3<=ocenka<=5 '); goto 1; end;
occ:=a;
end;
var
tbl:array[1..100] of student;
a: array[1..255] of student ;
i,n,K:integer;
s:real;
fp,f1:file of student ;
w:student;
Begin
clrscr;
assign (fp,'C:\st21.dat');
assign (f1,'C:\st212.dat');
rewrite(fp) ;
write('Введите колличество студентов: ');
readln(n);
writeln('Введите данные о каждом: ');
for i := 1 to n do
with tbl[i] do begin
write('Фамилия ',i,'-ого студента: ');
readln(fam);
write('Год рождения: ',i,'-ого студента: ');
readln(god);
write('Группа: ',i,'-ого студента: ');
readln(grup);
write('Оценка по физике: ',i,'-ого студента: ');
oc[1]:=occ;
write('Оценка по математике: ',i,'-ого студента: ');
oc[2]:=occ;
write('Оценка по информатике: ',i,'-ого студента: ');
oc[3]:=occ;
write(fp,tbl[i]);
end ;
close(fp) ;
reset(fp); n:=0; k:=0;
// rewrite(fp) ;
writeln('--------------------------------------------');
writeln(' # ФАМ Год. р Гр физ мат инф ');
writeln('--------------------------------------------');
while not eof(fp) do begin inc(n); //чтение файла
read(fp,w); a[n]:=w; // в массив А
end; //
close(fp) ;
rewrite(f1);
for I:=1 to n do
with a[i] do //печать массива А
writeln(i:2,fam:10,god:5,grup:2,oc[1]:5,oc[2]:5,oc[3]:5);
writeln(' 1985 год и имеющих ср. балл за 3 экзамена больше 4');
writeln('--------------------------------------------');
writeln(' ФАМ Год. р Гр физ мат инф ');
writeln('--------------------------------------------');
for I:=1 to n do
with a[i] do begin
s :=(oc[1]+oc[2]+oc[3])/3;
if (a[i].god=1985)and (s>4) then begin
writeln(fam:10,god:5,grup:5,oc[1]:5,oc[2]:5,oc[3]:5);
write(f1,a[i]);
k:=k+1; end;
end ;
writeln(' 1985 год и имеющих ср. балл за 3 экзамена больше 4.5');
writeln('--------------------------------------------');
writeln(' ФАМ Год. р Гр физ мат инф ');
writeln('--------------------------------------------');
for I:=1 to n do
with a[i] do begin
s :=(oc[1]+oc[2]+oc[3])/3;
if (a[i].god=1985)and (s>4.5) then
writeln(fam:10,god:5,grup:5,oc[1]:5,oc[2]:5,oc[3]:5);
end ;

reset(f1) ;
writeln(' Файл st212.dat'); //печать массива 212
writeln('--------------------------------------------');
writeln(' ФАМ Год. р Гр физ мат инф ');
writeln('--------------------------------------------');
while not eof(f1) do begin
read(f1,w);
with w do
writeln(fam:10,god:5,grup:5,oc[1]:5,oc[2]:5,oc[3]:5); end;
close(f1) ;
readln ;
end.
Alnur Anuarbekov
Alnur Anuarbekov
95 955
Джамиль Рукавишников спасибо, но не думаю, что я смогу
Это хорошо, что в файле записаны данные о результатах сдачи экзамена. Можете не благодарить.

Похожие вопросы