Показать сообщение отдельно
Старый 17.11.2016, 17:17   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от АсяЯ Посмотреть сообщение
Для каждого студента группы указаны фамилия и оценка в баллах по пяти дисциплинам.Вычислить средний балл в группе и упорядочить список по убыванию среднего балла каждого студента.
Пожалуйста:
Код:
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.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070