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

Помогите с задачкой на Паскале

Составить программу обработки сведений о студентах своей группы. Данные вводить с
клавиатуры и результат выводить на экран. Сведения представляются в виде таблицы,
содержащей фамилии студентов и определенные характеристики: ФИО, оценки по 4 предметам последней сессии, размер стипендии. Обработка: Получающие стипендию и имеющие тройки в сессии.
SV
Sergey Vlasov
128
попробуй применить эту программу
{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.
Сергей Оразакаев
Сергей Оразакаев
95 955
Лучший ответ