Получение средней оценки 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
по убыванию суммарных баллов. - Выводится турнирная таблица с результатами имен каждого фигуриста и их средние баллы за каждую оценку.
- Выводятся средние баллы всех фигуристов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д