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