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

mashabanan15 mashabanan15    2   22.05.2019 11:00    3

Ответы
malboro3 malboro3  17.06.2020 19:24

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.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика