• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Паскаль. Задача о студентах

АсяЯ

Новые
Регистрация
5 Ноя 2016
Сообщения
14
Реакции
0
Баллы
0
Паскаль. Задача о студентах

Для каждого студента группы указаны фамилия и оценка в баллах по пяти дисциплинам.Вычислить средний балл в группе и упорядочить список по убыванию среднего балла каждого студента.

Type
ekz=Record
e1: Byte;
e2: Byte;
e3: Byte;
b:string;
end;
Var
x: Array[1..10] of ekz;
y: Array[1..10] of Real;
s: Real;
i,k,n: Integer;
b:string;
BEGIN
Writeln('Введите оценки через пробел:');
For i:=1 to 10 do
begin
Writeln('Введите Фамилию студента:');readln(b);
Writeln(i,' студент', b);
Read(x.e1,x.e2,x.e3);
y:=(x.e1+x.e2+x.e3)/3;
s:=s+x.e1+x.e2+x.e3;
Inc(n,3);
end;
Writeln('Средний балл каждого студента:');
For i:=1 to 10 do
Write(y:5:2);
Writeln;
Writeln('Общий средний балл= ',s/n:5:2);
Readln
END.
 
Для каждого студента группы указаны фамилия и оценка в баллах по пяти дисциплинам.Вычислить средний балл в группе и упорядочить список по убыванию среднего балла каждого студента.
Пожалуйста:
Код:
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.
 
Назад
Сверху