Помоги решить.Задача по массивам (паскаль).В спортивных соревнованиях 10 судей выставили свои оценки спортсмену. Итоговая оценка определяется так: самая наибольшая и самая наименьшая оценки из общей суммы удаляются (если таких оценок несколько, то удаляется только одна из них), затем среди оставшихся подсчитывается среднее арифметическое. Написать программу, которая позволила бы по известным оценкам судей автоматически выставлять итоговую оценку спортсмену.Решая эту задачу хотелось бы чтобы была расписана каждая строчка что в ней происходит.
Copyright © 2024 SCHOLAR.TIPS - All rights reserved.
Answers & Comments
Verified answer
Program Sport;
uses crt;
const n = 10; {количество оценок}
var {раздел описания переменных}
a:array [1..n] of integer; {массив с оценками}
max,min,i:integer; {max и min - наибольшая и наименьшая оценки; i -счётчик}
sum:real;{сумма, а потом среднее арифметическое (результат)}
begin
writeln('Просим судей выставить свои оценки:'); {вывод строки}
for i:=1 to n do {организуем цикл ввода оценок}
begin
write(i,'-й судья: '); readln(a[i]);{вывод строки и ввод оценки}
end;
writeln(); {вывод пустой строки (для красоты)}
min:=a[1]; {предполагаем для начала, что первая оценка - наименьшая}
max:=a[1]; {также предполагаем для начала, что первая оценка - наибольшая}
sum:=0; {для начала сумма равна 0}
for i:=1 to n do {организуем цикл для перебора всех оценок}
begin
if max<a[i] then max:=a[i]; {если текущая оценка больше max, то запоминаем её в max}
if min>a[i] then min:=a[i]; {если текущая оценка меньше min, то запоминаем её в min}
sum:=sum+a[i]; {добавляем текущую оценку к сумме}
end;
sum:=(sum-max-min)/(n-2); {здесь самое интересное: из суммы всех оценок вычитаем наибольшую и наименьшую, а полученный результат делим на 8 - количество оставшихся оценок. Получается среднее арифметическое}
writeln('Итоговая оценка ',sum:7:2) {выводим результат}
end.