Для вычисления произведения элементов массива нужно переменной, в которой будет накапливаться произведение (например, p), присвоить начальное значение, равное единице, а затем последовательно умножать содержимое этой переменной на соответствующий элемент массива.
Пример 8. Найти среднее геометрическое положительных элементов массива D, состоящего из n элементов (n£20). Среднее геометрическое – это корень k – ой степени из произведения k элементов массива.
Программа Схема алгоритма
Program Prim8;
var
d: array[1..20] of real;
i,n,k: integer;
p: real;
begin
writeln('Введите n');
readln(n);
writeln('Введите массив');
for i:=1 to n do
read(d[i]);
p:=1;
k:=0;
for i:=1 to n do
if d[i]>0 then
begin
p:=p*d[i];
k:=k+1;
end;
if k=0 then
writeln('Положительных элементов нет')
else
begin
p:=exp(1/k*ln(p));
writeln('p=', p:7:2);
end;
end.
Исходные данные: Результат:
I вариант
n = 11
Массив D
3 5 4 -7 1 2 -9 6 -8 3 -10 p= 2.99
II вариант
n = 5
Массив D
-2 -5 -6 -9 -7 Положительных элементов нет
Пример 9. Найти произведение элементов массива С, состоящего из n элементов, имеющих чётные индексы (n£20).
Для вычисления произведения элементов массива в этом примере будем использовать оператор repeat - until.
Для получения значения чётного индекса введем переменную i, начальное значение которой зададим равным двум (i:=2), а после каждого выполнения цикла будем последовательно увеличивать значение i на два (i:=i+2).
Программа Схема алгоритма
Program Prim9;
var
c: array[1..20] of real;
i,n: integer;
р: real;
begin
writeln('Введите n');
readln(n);
writeln('Введите массив');
for i:=1 to n do
read(c[i]);
р:=1;
i:=2;
repeat
p:=p*c[i];
i:=i+2;
until i>n;
writeln('p=', p:8:2);
end.
Исходные данные: Результат:
n = 9 p= 210.00
Массив C
3 2 -1 7 5 -3 8 -5 1
Поиск элементов массива по заданному критерию
Пример 10. Переписать положительные элементы массива А, состоящего из n элементов, в массив В (n£20).
Программа Схема алгоритма
Program Prim10;
var
a,b: array[1..20] of real;
i,n,k: integer;
begin
writeln('Введите n');
readln(n);
writeln('Введите массив');
for i:=1 to n do
read(a[i]);
k:=0;
for i:=1 to n do
if a[i]>0 then begin
k:=k+1;
b[k]:=a[i];
end;
for i:=1 to k do
writeln('b[', i, ']=', b[i]:5:2);
end.
Исходные данные: Результат:
n = 10 b[1]= 4.00
Массив A b[2]= 5.00
4 5 -3 1 7 -2 12 -8 -14 26 b[3]= 1.00
b[4]= 7.00
b[5]=12.00
b[6]=26.00
Пример 11. Найти первый отрицательный элемент массива B, содержащего n элементов (n£20).
Программа Схема алгоритма
Program Prim11;
label 1;
var
b:array[1..20] of real;
i,n:integer;
begin
writeln('Введите n');
readln(n);
writeln('Введите массив');
for i:=1 to n do read(b[i]);
for i:=1 to n do
if b[i]<0 then begin
writeln('b[',i,']=',b[i]:6:2);
goto 1;
end;
writeln('Отрицательных элементов нет');
1: end.
Исходные данные: Результат:
I вариант n = 7 I вариант b[3]= -5.00
Массив B
3 8 -5 -2 6 -9 12
II вариант n = 6 II вариант
Массив B Отрицательных элементов нет
4 7 2 9 4 1