Практикум по программированию на языке Turbo Pascal. Часть 1. Портнягина В.В - 92 стр.

UptoLike

2) суммирование элементов (безусловное и условное);
3) подсчет (замена) элементов, удовлетворяющих заданному условию;
4) поиск заданного элемента:
а) в неупорядоченном массиве;
б) в упорядоченном массиве;
5) определение заданного расположения элементов;
6) удаление элемента, включение элемента в заданную позицию;
7) переразмещение (инвертирование, циклический сдвиг) элементов;
8) случайная выборка элементов (с повторениями и без повторений);
9) слияние двух упорядоченных массивов в упорядоченный массив;
10) сортировка массива (простые методы).
Мы рассмотрим некоторые задачи из перечня 1–10. Они обязательны, так
как формируют основные навыки и некоторые приемы обработки массивов.
К сожалению, на таких задачах часто останавливаются, а для решения
нестандартных задач нужно учиться придумывать новые алгоритмы. Дости-
гается это тренировкой построения, анализом и запоминанием алгоритмов.
К сложным задачам можно отнести улучшенные методы сортировки
массивов, поиск моды и медианы массива; алгоритмы генерирования комби-
наторных объектов, алгоритмы на графах и т. д.
Задача 4
В некоторых видах спортивных состязаний выступление каждого спорт-
смена оценивается независимо несколькими судьями. Затем из всей совокуп-
ности оценок удаляются наиболее высокая и низкая, а для оставшихся оценок
вычисляется среднее арифметическое, которое и идет в зачет спортсмену. Ес-
ли наиболее высокую оценку выставило несколько судей, то удаляется только
одна такая оценка. Аналогично поступают с наиболее низкими оценками.
Дано натуральное число n, положительные действительные числа a
1
, ...,
a
n
(n > 3). Считая, что числа a
1
, ..., a
n
это оценки, выставленные судьями од-
ному из участников соревнований, определить оценку, которая пойдет в зачет
этому спортсмену.
Program LAB7_4;
Const n = 10;
A : Array [l..n] of Real = (5.4, 5.6, 5.3, 5.8, 5.4, 5.5, 5.5, 5.6, 5.0, 5.7);
Var i : 1. .n;
min, max, sum: Real;
BEGIN {1}
min : = a[1];
max : = a[1];
sum : = a[1];
for i : = 2 to n do
begin {2}
sum : = sum + a[i];
if a[i] > max Then max : = a[i];
if a[i] < min Then min : = a[i];
end; {2}
92
     2) суммирование элементов (безусловное и условное);
     3) подсчет (замена) элементов, удовлетворяющих заданному условию;
     4) поиск заданного элемента:
     а) в неупорядоченном массиве;
     б) в упорядоченном массиве;
     5) определение заданного расположения элементов;
     6) удаление элемента, включение элемента в заданную позицию;
     7) переразмещение (инвертирование, циклический сдвиг) элементов;
     8) случайная выборка элементов (с повторениями и без повторений);
     9) слияние двух упорядоченных массивов в упорядоченный массив;
     10) сортировка массива (простые методы).
     Мы рассмотрим некоторые задачи из перечня 1–10. Они обязательны, так
как формируют основные навыки и некоторые приемы обработки массивов.
     К сожалению, на таких задачах часто останавливаются, а для решения
нестандартных задач нужно учиться придумывать новые алгоритмы. Дости-
гается это тренировкой построения, анализом и запоминанием алгоритмов.
     К сложным задачам можно отнести улучшенные методы сортировки
массивов, поиск моды и медианы массива; алгоритмы генерирования комби-
наторных объектов, алгоритмы на графах и т. д.

     Задача 4
     В некоторых видах спортивных состязаний выступление каждого спорт-
смена оценивается независимо несколькими судьями. Затем из всей совокуп-
ности оценок удаляются наиболее высокая и низкая, а для оставшихся оценок
вычисляется среднее арифметическое, которое и идет в зачет спортсмену. Ес-
ли наиболее высокую оценку выставило несколько судей, то удаляется только
одна такая оценка. Аналогично поступают с наиболее низкими оценками.
     Дано натуральное число n, положительные действительные числа a1, ...,
an (n > 3). Считая, что числа a1, ..., an – это оценки, выставленные судьями од-
ному из участников соревнований, определить оценку, которая пойдет в зачет
этому спортсмену.
      Program LAB7_4;
      Const n = 10;
      A : Array [l..n] of Real = (5.4, 5.6, 5.3, 5.8, 5.4, 5.5, 5.5, 5.6, 5.0, 5.7);
     Var i : 1. .n;
          min, max, sum: Real;
     BEGIN {1}
              min : = a[1];
              max : = a[1];
              sum : = a[1];
              for i : = 2 to n do
                  begin {2}
                  sum : = sum + a[i];
                  if a[i] > max Then max : = a[i];
                  if a[i] < min Then min : = a[i];
                  end; {2}
                                            92