Создайте файл. В каждом курсе найдите гркппу (группы), в которой больше всего отличников.
Проблема заключается в том, что не очень понимаю как осуществить поиск
Вот мой код, только процедура PROCESS не сделана.....
const
n = 10; //сессии
m = 2; //экзамены
type
//Запись сведений об экзамене
ekzamen = record
pred: string[10];
ocen: byte;
end;
Te = array [1..n,1..m] of ekzamen;
student = record
fio: string[40];
nkurs: 0..10;
ngrup: char;
uspev: te;
form: char;
end;
fs = file of student;
var
fstud: fs;
name,
pr: string;
st: student;
ek: ekzamen;
i,
j,
k,
nk: integer;
S: real;
procedure create; //Создание файла
const esc='N';
var
name: string;
f: fs;
st: student;
ek: ekzamen;
c: string;
k,i,j: integer;
begin
write ('Введите название : ');
readln (name);
assignfile (f, name);
rewrite (f);
repeat
write ('ФИО: '); readln (st.fio);
write ('Номер Курса: '); readln (st.nkurs);
write ('Номер группы: '); readln (st.ngrup);
writeln ('---------------------');
writeln ('Введите усеваемость: ');
for i:=1 to 2*st.nkurs do
for j:=1 to m do
begin
write ('Введите предмет: ');
readln (st.uspev[i,j].pred);
write ('Введите оценку: ');
readln (st.uspev[i,j].ocen);
end;
writeln ('---------------------');
write ('Форма обучения (Д/Б): ');
readln (st.form);
write(f,st);
writeln ('Закончить - "N", Продолжить Enter');
readln (c);
until c = esc;
closefile (f);
end;
procedure print;
var
f: fs;
st: student;
ek: ekzamen;
begin
write ('Имя файла: ');
readln (name);
assignfile (f, name);
reset (f);
while not eof(f) do
begin
read (f, st);
with st do
begin
writeln ('ФИО> ',fio);
writeln ('Курс> ',nkurs);
writeln ('№ Группы> ',ngrup);
for i:=1 to 2*st.nkurs do
for j:=1 to m do
begin
writeln ('Предмет> ',st.uspev[i,j].pred,' Оценка> ',st.uspev[i,j].ocen);
end;
writeln ('Форма>',form);
end;
end;
closefile (f);
end;
{ТУТ НАДО ЧЕГО-НИБУДЬ НАПИСАТЬ!!!!!}
procedure process;
var
name: string;
f: fs;
st: student;
k,i,j: integer;
s: real;
begin
write ('Имя файла: ');
readln (name);
assignfile (f, name);
reset (f);
closefile (f);
end;
begin {main}
{меню}
repeat
writeln ('****************');
writeln ('1 - Создать');
writeln ('2 - Печать');
writeln ('3 - Обработка');
writeln ('0 - Выход');
writeln ('****************');
write (' Введите цифру >> ');
readln (k);
if (k<>0) then
begin
case k of
1 : create;
2 : print;
3 : process;
end;{case}
end;
until k = 0;
end.{main}