Помоги решить.Задача по массивам (паскаль).В спортивных соревнованиях 10 судей выставили...

0 голосов
108 просмотров

Помоги решить.Задача по массивам (паскаль).В спортивных соревнованиях 10 судей выставили свои оценки спортсмену. Итоговая оценка определяется так: самая наибольшая и самая наименьшая оценки из общей суммы удаляются (если таких оценок несколько, то удаляется только одна из них), затем среди оставшихся подсчитывается среднее арифметическое. Написать программу, которая позволила бы по известным оценкам судей автоматически выставлять итоговую оценку спортсмену.Решая эту задачу хотелось бы чтобы была расписана каждая строчка что в ней происходит.


Информатика (178 баллов) | 108 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

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      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.

(52.6k баллов)