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