известно,что в следующем фрагменте программы массив матрица содержит оценки студентов группы,фамилии которых перечислен в типе фамилия.
> type
> фамилия=(Иванов,Просветкин,Ленин,Михайлов,Маслова,Юрьева,Беляев,Малащенко,Нагайц
ев,Семыкин).
> предмет=(матанализ,алгебра,информатика,история,матлогика,механика,педагогика,диф
уруравнения,статистика).
> var
> матрица: array[ фамилия,предметы ] of integer.
Необходимо выяснить сколько студентов группы имеют средний балл, наименее всего отклоняющийся по абсолютному значению от среднего балла всей группы. помогите решить через процедуры и функции.вот,что у меня есть,проверьте.исправьте.а то она работает некорректно.помогите решить через процедуры и функции.вот,что у меня есть,проверьте.исправьте.а то она работает некорректно.
type
fam=(Ivanov, Prosvetkin, Lenin, Mikhaylov, Maslov, Yuryev, Belyaev, Malashenko, Nagaytsev, Semykin);
pred=(matan, algebra, informatics, history, matlogica, mechanics, pedagogics, difururavneniye, statistics);
matr=array[fam ,pred] of integer;
var
a:matr;
Procedure vvodM(var a:matr);
var j: pred;
i:fam;
begin
randomize;
for i:= Ivanov to Semykin do
begin
For j:=matan to statistics do
begin
a[i,j]:=random(4)+2;
write( a[i,j]:3);
end;
writeln
end;
end;
function sred(Student: fam): real;
var
j: pred;
i:fam;
s: real;
begin
s:= 0;
for i:= Ivanov to Semykin do
begin
For j:=matan to statistics do
begin
s:= s + a[Student,j];
sred:= s/9
end;
write(sred(i))
end;
readln
end;
function TotalAverege(var a:matr):real;
var
j: pred;
i:fam;
s: real;
begin
s:= 0;
for i:=Ivanov to Semykin do
begin
For j:=matan to statistics do
begin
s:= s +sred(i);
TotalAverege:= s/9;
end;
write(TotalAverege(a)) ;
end;
readln
end;
Procedure MinDev (a:matr);
var
j: pred;
i:fam;
k:integer;
begin
k:=0;
for i:=Ivanov to Semykin do
begin
For j:=matan to statistics do
begin
if TotalAverege(a)<>abs(TotalAverege(a)-sred(i))then
k:=k+1;
If k>0 then
WriteLn(k,' студентов имеют минимальное отклонение от cреднего балла группы')
else
WriteLn(k,'Таких студентов нет');
end;
end;
end;
begin
setconsolecp(1251);
setconsoleoutputcp(1251);
vvodM(a);
MinDev(a);
readln
end.
Нужно еще сделать так.чтобы выводились все промежуточные действия.т е средний балл каждого ученика,общий средний балл.а только потом уже выводился ответ.помогите!