Найти произведение только тех чисел, которые больше заданного числа m - PascalABC.NET
Формулировка задачи:
Составить программу на Паскале, содержащую минимум 4 подпрограммы.
Дан одномерный массив, выполнить следующие действия:
-вычислить произведение отрицательных элементов P1 произведение положительных элементов P2, сравнить модуль P2 с модулем P1, указать какое из произведений по модулю больше.
-найти произведение только тех чисел,которые больше заданного числа m.
-подсчитать,сколько в нем положительных элементов.
-поменять местами соседние элементы, стоящие на четырех местах,с элементами, стоящими на нечетных местах.
Решение задачи: «Найти произведение только тех чисел, которые больше заданного числа m»
textual
Листинг программы
program pr;
type
arr = array [1..100] of integer;
var
i, n, h, c: integer;
a: arr;
p1, p2: integer;
procedure fis(var x: arr; var av, avv: integer);
var
j, k: integer;
begin
av := 1;
avv := 1;
for j := 1 to n do
if a[j] > 0 then
begin
av := av * a[j];
end;
for k := 1 to n do
begin
if a[k] < 0 then
avv := avv * a[k];
end;
writeln;
if abs(p1) > abs(p2) then
writeln('Произведение положительных элементов по модулю больше')
else writeln('Произведение отрицательных элементов по модулю больше');
end;
procedure secon(var x: arr; var hh: integer);
var
m, j: integer;
begin
hh := 1;
writeln('Введите число m');
readln(m);
for j := 1 to n do
if a[j] > m then
hh := hh * a[j];
end;
procedure three(var x: arr; var cout: integer);
var
j: integer;
begin
cout := 0;
for j := 1 to n do
if a[j] > 0 then
begin
cout := cout + 1;
end;
end;
procedure four(var x: arr);
var
j, t: integer;
begin
j := 0;
while j < n - 1 do
begin
inc(j, 1);
t := A[j];
A[j] := A[j + 1];
A[j + 1] := t;
inc(j, 1);
end;
for j := 1 to n do
write(A[j]:4);
end;
begin
writeln('Введите размер массива');
readln(n);
for i := 1 to n do
begin
a[i] := -10 + random(21);
write(a[i]:3);
end;
fis(a, p1, p2);
writeln('Произведение положительных элементов: ', p1);
writeln('Произведение отрицательных элементов: ', p2);
secon(a, h);
writeln('Произведение элементов больше числа m: ', h);
three(a, c);
writeln('Количество положительных элементов: ', c);
four(a);
end.
Объяснение кода листинга программы
Список действий в коде:
- Ввод размера массива.
- Инициализация массива случайными числами.
- Вычисление произведения положительных и отрицательных элементов массива.
- Ввод числа m.
- Вычисление произведения элементов массива, больших числа m.
- Вывод количества положительных элементов в массиве.
- Реверсирование элементов массива.
- Вывод элементов массива в обратном порядке.