Процедура: вычисление произведения отрицательных элементов массива - Free Pascal
Формулировка задачи:
Помогите пожалуйств составить подпрограмму - процедуры вычисления произведения отрицательных элементов массива B(2×3)rightarrow PO и использовать ее для вычисления выражения: X(i - нижний индекс)= а^2(i - нижний индекс)/2РО
В(i,j -нижний индекс)=|-0.4 2.8 -12.6|
|5.5 -0.5 6.2 |
a(i -нижний индекс)=10.2;8;25. Буду очень благодарен.
Решение задачи: «Процедура: вычисление произведения отрицательных элементов массива»
textual
Листинг программы
type arr = array[1..3] of double;
matrix = array[1..2, 1..3] of double;
procedure pn(const x: matrix; var p: double);
var i, j: integer;
begin
p := 1;
for i := 1 to 2 do
for j := 1 to 3 do
if x[i, j] < 0 then p := p * x[i, j]
end;
const b: matrix = ((-0.4, 2.8, -12.6), (5.5, -0.5, 6.2));
var a: arr = (10.2, 8, 25);
x: arr;
po: double;
i, j: integer;
begin
writeln('Матрица B:');
for i := 1 to 2 do
begin
for j := 1 to 3 do write(b[i, j]:5:1);
writeln
end;
pn(b, po);
writeln('Произведение отрицательных элементов = ', po:0:2);
writeln('Вектор A:');
for i := 1 to 3 do write(a[i]:6:2);
writeln;
writeln('Вектор X:');
for i := 1 to 3 do
begin
x[i] := sqr(a[i]) / 2 / po;
write(x[i]:19:13)
end;
readln
end.
Объяснение кода листинга программы
В данном коде на языке Free Pascal реализована процедура вычисления произведения отрицательных элементов матрицы.
- Тип данных arr определен как массив из трех элементов типа double.
- Тип данных matrix определен как массив из двух строк и трех столбцов элементов типа double.
- В процедуре pn(const x: matrix; var p: double) происходит итеративное перемножение отрицательных элементов матрицы x, результат сохраняется в переменной p.
- В начале программы определена константная матрица b типа matrix, заполненная отрицательными числами.
- Далее определены переменные a типа arr, po типа double, а также i и j типа integer.
- Выводится матрица b на экран.
- Вычисляется произведение отрицательных элементов матрицы b и сохраняется в переменной po.
- Выводится сообщение с произведением отрицательных элементов матрицы b.
- Выводится вектор a на экран.
- Вычисляется вектор X по формуле sqr(a[i]) / (2*po) для каждого элемента массива a.
- Выводится вектор X на экран.
- Ввод с клавиатуры ничего не требуется в данной программе.