Проверьте пожалуйста программу - Pascal ABC
Формулировка задачи:
Помогите найти ошибку
В одномерном массиве, состоящем из n вещественных элементов, вычислить
1) сумму положительных элементов массива
2) произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами.
Решение задачи: «Проверьте пожалуйста программу»
textual
Листинг программы
program Labaaaa3;
//uses crt;
const
n = 10;
var
a: array[1..n] of single;
i, x, imax, imin: integer;
max, min, b, Rt: single;
s: single;
mult: integer;
tempmin, tempmax: integer;
begin
write('Введите массив: ');
for i := 1 to n do
read(a[i]);
imax := 1; {индекс max}
imin := 1; {индекс max}
for i := 1 to n do
begin
if abs(a[imax]) < abs(a[i]) then imax := i;
if abs(a[imin]) > abs(a[i]) then imin := i;
end;
if imax < imin
then swap(imax, imin);
s := 0;
for i := 1 to n do
if a[i] > 0 then
begin
s := s + a[i];
end;
Rt := 1;
//---
for i := imin + 1 to imax - 1 do
Rt := Rt * a[i];
Writeln('Произведение между максимальным и минимальным=', Rt);
Writeln('Сумма положительных элементов =', s:5);
end.
Объяснение кода листинга программы
- В программе объявлены переменные: a (массив), i, x, imax, imin, max, min, b, Rt (single), s (single), mult (integer), tempmin (integer), tempmax (integer).
- В цикле for считывается массив из стандартного ввода.
- Переменные imax и imin инициализируются значением 1.
- Затем происходит сравнение абсолютных значений элементов массива и обновление значений переменных imax и imin.
- Если imax меньше imin, то происходит обмен их значениями.
- Переменная s инициализируется значением 0.
- В цикле for происходит суммирование положительных элементов массива и сохранение суммы в переменной s.
- Переменная Rt инициализируется значением 1.
- В цикле for происходит умножение всех элементов массива, начиная с индекса imin+1 и заканчивая индексом imax-1, и сохранение произведения в переменной Rt.
- Выводится сообщение с произведением между максимальным и минимальным элементами массива и с суммой положительных элементов.