Найти произведение элементов массива, удовлетворяющих условию - Free Pascal
Формулировка задачи:
задав одномерный массив целочисленных данных А в одном из заданных форматов (BYTE, WORD, SHORTINT, INTEGER или LONGINT), реализовать обработку массива, как указано в варианте.
длина массива N<=20.
исходные данные задать самостоятельно, учитывая формат элементов массива A.
7 - WORD
Найти произведение элементов массива A={a[i]}, удовлетворяющих условию:
с<= a[i] <= d.
Код программы:
const NN=5;
procedure Input(var x:word);
begin {$I-}
readln(x);
whileioresult<>0 do
begin
write('Ошибка ввода, повторите: ');
readln(x);
end;
{$i+}
end;
var
a:array[1..NN]of word;
c,d,n,i:word;
res:longint;
begin
write('введите длину массива n<20: ');
Input(n);
while(n<1)or(n>20)do
begin
write('Неверно введен параметр n, повторите: ');
Input(n);
end;
writeln('Введите элементы массива');
for i:=1 to n do
begin
write('a[',i,']=');
Input(a[i]);
end;
write('введите C: ');
Input(c);
write('введите D: ');
Input(d);
while(c>d)do
begin
write('Неверно введен параметр d, повторите: ');
Input(d);
end;
res:=0;
for i:=1 to NN do
if (c<=a[i])and(a[i]<=d) then
inc(res);
write('Oтвет: ',res);
readln;
end.Решение задачи: «Найти произведение элементов массива, удовлетворяющих условию»
textual
Листинг программы
res:=1; for i:=1 to NN do if (c<=a[i])and(a[i]<=d) then res:=res*a[i];
Объяснение кода листинга программы
- В переменной
resинициализируется единицей. Это будет результатом умножения всех элементов массива, удовлетворяющих условию. - Задается диапазон для цикла
for, который будет перебирать все элементы массива от первого до последнего. - Внутри цикла проверяется условие: элемент массива
a[i]должен быть меньше или равенcи больше или равенd. - Если условие выполняется, то значение элемента
a[i]умножается на значение переменнойres. - После завершения цикла, в переменной
resбудет храниться произведение всех элементов массива, удовлетворяющих условию.