Вопрос задан 12.09.2018 в 08:00. Предмет Информатика. Спрашивает Рубчинский Русик.

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

оценки спортсмену. Итоговая оценка определяется так: самая наибольшая и самая наименьшая оценки из общей суммы удаляются (если таких оценок несколько, то удаляется только одна из них), затем среди оставшихся подсчитывается среднее арифметическое. Написать программу, которая позволила бы по известным оценкам судей автоматически выставлять итоговую оценку спортсмену.Решая эту задачу хотелось бы чтобы была расписана каждая строчка что в ней происходит.
0 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<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.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Задача по массивам (Паскаль)

Для решения данной задачи по массивам в Паскале, необходимо выполнить следующие шаги:

1. Создать массив, в котором будут храниться оценки судей. В данном случае, массив будет иметь размерность 10, так как у нас 10 судей.

```pascal var scores: array[1..10] of Integer; ```

2. Заполнить массив оценками судей. В данном случае, предположим, что оценки уже известны и хранятся в массиве `scores`.

3. Найти наибольшую и наименьшую оценки в массиве. Для этого, можно использовать две переменные `maxScore` и `minScore`, которые будут хранить наибольшую и наименьшую оценки соответственно. Изначально, можно инициализировать их значениями первого элемента массива.

```pascal var maxScore, minScore: Integer; begin maxScore := scores[1]; minScore := scores[1]; ```

4. Проитерироваться по массиву и обновить значения `maxScore` и `minScore`, если найдены большие или меньшие оценки.

```pascal for i := 2 to 10 do begin if scores[i] > maxScore then maxScore := scores[i]; if scores[i] < minScore then minScore := scores[i]; end; ```

5. Удалить наибольшую и наименьшую оценки из общей суммы. Для этого, можно создать переменную `totalScore`, которая будет хранить сумму всех оценок, и вычесть из нее `maxScore` и `minScore`.

```pascal var totalScore: Integer; begin totalScore := 0; for i := 1 to 10 do begin totalScore := totalScore + scores[i]; end; totalScore := totalScore - maxScore - minScore; ```

6. Подсчитать среднее арифметическое оценок, используя обновленную сумму `totalScore` и количества оценок (в данном случае, 8).

```pascal var averageScore: Real; begin averageScore := totalScore / 8; ```

7. Вывести итоговую оценку спортсмену, округлив ее до нужного количества знаков после запятой.

```pascal writeln('Итоговая оценка спортсмена: ', averageScore:0:2); ```

Таким образом, весь код для решения данной задачи будет выглядеть следующим образом:

```pascal var scores: array[1..10] of Integer; maxScore, minScore, totalScore: Integer; averageScore: Real; i: Integer; begin // Заполнение массива оценками судей scores[1] := 5; scores[2] := 7; scores[3] := 8; scores[4] := 9; scores[5] := 6; scores[6] := 7; scores[7] := 8; scores[8] := 9; scores[9] := 7; scores[10] := 6;

// Нахождение наибольшей и наименьшей оценок maxScore := scores[1]; minScore := scores[1]; for i := 2 to 10 do begin if scores[i] > maxScore then maxScore := scores[i]; if scores[i] < minScore then minScore := scores[i]; end;

// Вычисление общей суммы оценок totalScore := 0; for i := 1 to 10 do begin totalScore := totalScore + scores[i]; end; totalScore := totalScore - maxScore - minScore;

// Вычисление среднего арифметического оценок averageScore := totalScore / 8;

// Вывод итоговой оценки спортсмену writeln('Итоговая оценка спортсмена: ', averageScore:0:2); end. ```

Пожалуйста, обратите внимание, что в данном примере я предположил, что оценки уже известны и заполнил массив `scores` соответствующими значениями. Вы можете изменить значения оценок в массиве в соответствии с вашими данными.

0 0

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

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

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