Определить среднее арифметическое чисел, расположенных между первым из минимальных и последним из максимальных - Pascal ABC
Формулировка задачи:
Составить программу для решения предложенной задачи. N натуральных чисел вводится в массив (N – задано и не более 100). Определить среднее арифметическое чисел, расположенных между первым из минимальных и последним из максимальных чисел (границы включать). Предусмотреть проверку правильности ввода информации.
Решение задачи: «Определить среднее арифметическое чисел, расположенных между первым из минимальных и последним из максимальных»
textual
Листинг программы
var a : array [1..100] of integer; i, min, max, imax, imin, N, k : integer; s : real; begin randomize; {вводим N} repeat write('введите N: '); readln(N); if not (N in [2..100]) then writeln('ошибка ввода!') until N in [2..100]; {заполняем массив, выводим} writeln('исходный массив'); for i := 1 to N do begin a[i] := random(1000); write(a[i]:5) end; writeln; min := 10000; max := -10000; {определяем положение первого минимального} for i := N downto 1 do if a[i] < min then begin min := a[i]; imin := i end; {определяем положение последнего максимального} for i := 1 to N do if a[i] > max then begin max := a[i]; imax := i end; writeln('первый минимальный элемент: A[', imin, '] = ', a[imin]); writeln('последний максимальный элемент: A[', imax, '] = ', a[imax]); {поиск среднего между ними} k := 0; for i := imin to imax do begin s := s + a[i]; inc(k) end; writeln('среднее арифметическое: ', (s / k):0:4); readln end.
Объяснение кода листинга программы
- Создается переменная
a
типаarray [1..100] of integer
. Это означает, что будет создан массив из 100 чисел типаinteger
. - Затем определяются переменные
i
,min
,max
,imax
иimin
. Переменныеi
,min
иmax
инициализируются значениями 1, 10000 и -10000 соответственно. Переменныеimax
иimin
используются для определения положения первого и последнего минимального элемента в массиве. - Далее, в цикле
for
, заполняется массивa
случайными числами от 1000 до 9999. - Затем определяются переменные
N
,k
иs
. ПеременнаяN
используется для хранения введенного пользователем числа, а переменныеk
иs
используются для хранения суммы элементов массива и среднего значения соответственно. - В следующем цикле
for
происходит поиск среднего значения. Для этого переменнаяk
инициализируется значением 0, а переменнаяs
инициализируется значением 0. Затем происходит итерация по элементам массива отimin
доimax
. На каждой итерации значение элемента добавляется к переменнойs
. Переменнаяk
увеличивается на 1 после каждой итерации. - Наконец, выводится среднее значение, которое находится путем деления значения переменной
s
на значение переменнойk
. - Код завершается вызовом функции
readln()
.