Получение средней оценки 10 фигуристов - Pascal

Узнай цену своей работы

Формулировка задачи:

Реализовать программу на языке Паскаль для получения средней оценки 10 фигуристов, 5-ю экспертами по трем критериям, а также найти победителей 1-3 место и средний балл на соревнованиях по каждому из критериев. Помогите, пожалуйста

Решение задачи: «Получение средней оценки 10 фигуристов»

textual
Листинг программы
const m=10; n=5; p=3;
type
  TPerson = record
    Name: String[63];
    Score: array [1..p,0..n] of Real;
    Sum: Real;
  end;
var
  a: array [1..m] of TPerson;
  b: array [1..m] of Integer;
  s: array [1..p] of Real;
  i, j, k, q: Integer; t: Real;
begin
  WriteLn('Ввод оценок');
  for i:=1 to m do with a[i] do begin
    WriteLn('Фигурист ',i);
    Write(' имя: '); ReadLn(name);
    for j:=1 to n do begin
      Write('  оценки эксперта ',j,': ');
      for k:=1 to p do Read(Score[k,j]);
    end; ReadLn; {Sum:=0;}
    for k:=1 to p do begin
      t:=0; for j:=1 to n do t:=t+Score[k,j];
      Sum:=Sum+t; Score[k,0]:=t/n;
    end; Sum:=Sum/n;
  end;
  { средний балл }
  for k:=1 to p do begin
    t:=0; for i:=1 to m do with a[i] do for j:=1 to n do t:=t+Score[k,j];
    s[k]:=t/(m*n);
  end;
  { сортировка }
  for i:=1 to m do b[i]:=i;
  i:=m;
  repeat
    k:=1;
    for j:=1 to i-1 do
      if a[b[j]].Sum<a[b[j+1]].Sum then begin
        k:=j; q:=b[j]; b[j]:=b[j+1]; b[j+1]:=q;
      end;
    i:=k;
  until k=1;
  { результаты }
  WriteLn('Турнирная таблица:');
  for i:=1 to m do with a[b[i]] do begin
    Write(i:2); for k:=1 to p do Write(Score[k,0]:6:2); WriteLn(' ',Name);
  end;
  WriteLn('Средние баллы:');
  Write('':2); for k:=1 to p do Write(s[k]:6:2); WriteLn;
end.

Объяснение кода листинга программы

  1. Объявляются и инициализируются константы m (равной 10), n (равной 5) и p (равной 3).
  2. Определяется тип записи TPerson с полями Name типа String[63], Score массива размерности p на n из вещественных чисел и Sum типа Real.
  3. Объявляются переменные:
    • a - массив из m элементов типа TPerson;
    • b - массив из m элементов типа Integer;
    • s - массив из p элементов типа Real;
    • i, j, k, q - целочисленные переменные;
    • t - вещественная переменная.
  4. Запускается блок кода.
  5. Выводится сообщение Ввод оценок.
  6. Начинается цикл с i от 1 до m. В каждой итерации:
    • Запрашивается имя фигуриста i.
    • Запрашиваются оценки экспертов для каждого фигуриста.
    • Осуществляется расчет суммы оценок и среднего балла.
  7. Выполняется расчет среднего балла для каждого эксперта.
  8. Выполняется сортировка фигуристов в массиве a по убыванию суммарных баллов.
  9. Выводится турнирная таблица с результатами имен каждого фигуриста и их средние баллы за каждую оценку.
  10. Выводятся средние баллы всех фигуристов.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5
Похожие ответы