Найти произведение элементов массива, расположенных между максимальным и минимальным элементами - Free Pascal (1050)
Формулировка задачи:
Дан одномерный массив, состоящий из N вещественных элементов. Найти произведение элементов массива, расположенных между максимальным и минимальным элементами.
Формат выходных данных
Выведите в выходной файл искомое произведение с 3 знаками после десятичной точки или 0, если между максимальным и минимальным элементом нет других элементов.
Примеры:
Вход
5
-3.12 -5.25 2.5 1.2 6
Выход
3.000
Вход
2
1.24 5.36
Выход
0.000
Решение задачи: «Найти произведение элементов массива, расположенных между максимальным и минимальным элементами»
textual
Листинг программы
const n=100; var a: array [1..n] of real; p: real; n, i, imin, imax: integer; begin Assign(input,'in.txt'); Assign(output,'out.txt'); Reset(input); Rewrite(output); ReadLn(n); imin:=1; imax:=1; for i:=1 to n do begin Read(a[i]); if a[i]<a[imin] then imin:=i; if a[i]>a[imax] then imax:=i; end; p:=1; if imin<imax then for imin+1 to imax-1 do p:=p*a[i] else for imin+1 downto imax-1 do p:=p*a[i]; if abs(imin-imax)<=1 then p:=0; WriteLn(p:0:3) ; end.
Объяснение кода листинга программы
- Задается константа
n
равная 100, которая определяет размер массиваa
. - Создается массив
a
размеромn
для хранения чисел. - Создается переменная
p
для хранения произведения элементов массива. - Создаются три переменные
n
,i
иimin
для контроля цикла и определения индексов минимального и максимального элементов массива. - Открываются файлы
in.txt
для чтения иout.txt
для записи. - Считывается число из файла
in.txt
в переменнуюn
. - Инициализируются переменные
imin
иimax
равными 1. - Цикл считывает числа из файла
in.txt
и записывает их в массивa
. - Внутри цикла проверяется, является ли текущий элемент минимальным или максимальным, и обновляются значения переменных
imin
иimax
при необходимости. - После окончания цикла, цикл для вычисления произведения элементов массива начинается.
- Если
imin
меньшеimax
, то цикл перебирает элементы отimin+1
доimax-1
и вычисляет произведение элементов, которое затем присваивается переменнойp
. - Если
imin
больше или равноimax
, то цикл перебирает элементы отimin+1
доimax-1
в обратном порядке и вычисляет произведение элементов, которое затем присваивается переменнойp
. - Если разница между
imin
иimax
меньше или равна 1, то переменнаяp
присваивается 0. - Записывается значение переменной
p
в файлout.txt
. - Закрываются файлы
in.txt
иout.txt
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д