Вопрос задан 27.03.2025 в 23:09. Предмет Информатика. Спрашивает Калачкова Лиза.

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

Входные данные
Входная строка содержит 5 неотрицательных целых чисел, разделённых пробелами.

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

Перейти к ответам

Ответы на вопрос

Отвечает Тенызбай Тилек.

Вот решение задачи на языке программирования Pascal. Мы напишем программу, которая будет принимать 5 оценок экспертов, определять минимальную и максимальную оценку, вычислять среднее арифметическое оставшихся оценок и выводить результаты.

Код на Pascal:

pascal
program ExpertScores;

uses SysUtils;

function CalculateFinalScore(scores: array of Integer): Real; var i, minIndex, maxIndex, sum: Integer; min, max: Integer; begin // Инициализируем минимальное и максимальное значения min := scores[0]; max := scores[0]; minIndex := 0; maxIndex := 0;

// Находим минимальную и максимальную оценки for i := 1 to High(scores) do begin if scores[i] < min then begin min := scores[i]; minIndex := i; end; if scores[i] > max then begin max := scores[i]; maxIndex := i; end; end;

// Суммируем оставшиеся оценки, кроме минимальной и максимальной sum := 0; for i := 0 to High(scores) do begin if (i <> minIndex) and (i <> maxIndex) then sum := sum + scores[i]; end;

// Вычисляем среднее арифметическое Result := sum / 3.0;

// Выводим отброшенные оценки WriteLn(min, ' ', max); end;

var scores: array[0..4] of Integer; finalScore: Real; i: Integer; input: String; parts: TArray; begin // Читаем входные данные ReadLn(input); parts := input.Split([' ']);

// Преобразуем входные данные в массив целых чисел for i := 0 to 4 do scores[i] := StrToInt(parts[i]);

// Вычисляем итоговую оценку finalScore := CalculateFinalScore(scores);

// Выводим итоговую оценку с двумя знаками после запятой WriteLn(FormatFloat('0.00', finalScore)); end.

Пояснение работы программы:

  1. Ввод данных:

    • Пользователь вводит 5 целых неотрицательных чисел через пробел.
    • Программа считывает строку, разделяет её на части и преобразует их в массив целых чисел.
  2. Поиск минимальной и максимальной оценки:

    • Программа перебирает массив оценок и определяет минимальное и максимальное значение, а также их индексы.
  3. Расчёт среднего арифметического:

    • Суммируются только те оценки, индексы которых не совпадают с индексами минимального и максимального значений.
    • Среднее арифметическое вычисляется как сумма оставшихся трёх оценок, делённая на 3.
  4. Вывод результата:

    • Сначала выводятся минимальная и максимальная оценки через пробел.
    • Затем в новой строке выводится итоговая оценка с точностью до двух знаков после запятой.

Пример ввода и вывода:

Ввод:

9 7 8 10 6

Вывод:

6 10 8.00

Объяснение:

  • Минимальная оценка: 6.
  • Максимальная оценка: 10.
  • Оставшиеся оценки: 9, 7, 8.
  • Среднее арифметическое: 9+7+83=8.00\frac{9 + 7 + 8}{3} = 8.00.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос