Цитата:
Сообщение от АсяЯ
Для каждого студента группы указаны фамилия и оценка в баллах по пяти дисциплинам.Вычислить средний балл в группе и упорядочить список по убыванию среднего балла каждого студента.
|
Пожалуйста:
Код:
Const
Nstud=10;
Type
ekz=Record
b:string;
e:array[1..5] of byte;
e_aver:real;
End;
Var
x: Array[1..Nstud] of ekz;
i,k,L: Integer;
Av_mrk:real;
D:ekz;
Begin
for i:=1 to Nstud do
with x[i] do
begin
write('Enter the surname of student: ');
readln(b);
Write('Enter five marks with spaces: ');
for k:=1 to 4 do read(e[k]);
readln(e[5]);
e_aver:=0;
for k:=1 to 5 do e_aver:=e_aver+e[k]/5;
end;
Writeln('Surname mark1 mark2 mark3 mark4 mark5 Aver.');
for i:=1 to Nstud do
with x[i] do
begin
write(b);
L:=length(b);
for k:=1 to 15-L do write(' ');
for k:=1 to 5 do write(e[k]:6);
writeln(e_aver:10:2);
end;
Av_mrk:=0;
for i:=1 to Nstud do
with x[i] do
for k:=1 to 5 do
Av_mrk:=Av_mrk+e[k];
Writeln('Averaged mark of the group: ',Av_mrk/5/Nstud:4:2);
for i:=1 to Nstud-1 do
for k:=1 to Nstud-i do
if x[k].e_aver<x[k+1].e_aver then
begin
D:=x[k];
x[k]:=x[k+1];
x[k+1]:=D;
end;
Writeln('Surname mark1 mark2 mark3 mark4 mark5 Aver.');
for i:=1 to Nstud do
with x[i] do
begin
write(b);
for k:=1 to 15-length(b) do write(' ');
for k:=1 to 5 do write(e[k]:6);
writeln(e_aver:10:2);
end;
Readln
End.