C/C++

Найти произведение элементов массива а, состоящего из 25 целых чисел, кратных 2 на Паскаль

Составить программу для задачи: Найти произведение элементов массива а, состоящего из 25 целых чисел, кратных 2(числа вводятся случайным образом из интервала [0;48])
Паскаль
Дима Гуц
Дима Гуц
210
От 0 до 48 всего 49 вариантов.
Чтобы задать массив, достаточно пройтись по нему циклом и каждому элементу присвоить случайное целое число Random(49) — один из 49 вариантов (как раз от 0 до 48):

for i := 1 to 25 do
a[i] := Random(49);

Теперь выведем этот массив. Для этого снова пройдемся по нему циклом и каждый элемент напишем в консоль. Под каждое число выделим три символа (три знакоместа). Для числа от 0 до 48 хватит и двух знаков, но мы сделаем три, чтобы еще были пробелы.

for i := 1 to 25 do
Write(a[i]:3);

После этого цикла перейдем на новую строчку, чтобы продолжать внизу, а не справа:

WriteLn;

Как найти произведение?
Пусть мы хотим сохранить произведение в переменной p.
Тогда должно быть p = a[2] * a[4] * a[7] * a[11]... и так далее, в зависимости от того, какие элементы массива a кратны двум. Не факт, что индексы будут именно такие.

Такое произведение можно получить, домножая p на тот или иной элемент массива:
p := p * a[i];

Но какое значение p должно быть в начале?

Если в начале будет p = 0, то при домножении получим:
p = 0 * a[2] * a[4] ...= 0
Не годится. Сколько ни домножай — будет 0.

А если p = 2?
p = 2 * a[2] * a[4] ...

Теперь произведение получается в два раза больше, чем мы хотим.

А если p = 1?

p = 1 * a[2] * a[4] ...= a[2] * a[4] ...

Идеально! Единица никак не влияет на результат, и мы получаем желаемое произведение. Это подходит.

Итак, изначально p = 1.

Мы будем снова перебирать все элементы массива, но домножать наше p будем только на те элементы, которые кратны двум.

А что значит «кратны двум»?
Это значит, что число делится на 2 без остатка.
То есть если мы узнаем остаток от деления a[i] на 2, то он должен быть равен нулю.

А чтобы узнать остаток, есть операция mod.
10 mod 2 = 0 — число 10 кратно двум.
11 mod 2 = 1
12 mod 2 = 0 — число 12 кратно двум.
13 mod 2 = 1
И так далее.

Поэтому каждый элемент массива a мы сначала проверим, делится ли он на 2, то есть нулевой ли остаток.

p := 1;
for i := 1 to 25 do
if a[i] mod 2 = 0 then
p := p * a[i];

Теперь в переменной p находится произведение элементов массива, которые кратны двум! Осталось вывести это произведение:

WriteLn(p);

Объявлением переменных a, i, p предлагаю заняться самостоятельно. Также вам придется добавить begin и end без моей помощи. Готовых ответов не даю, думайте и развивайтесь.

Успехов в учебе!
БС
Борисенок Сергей
53 520
Лучший ответ
Игорь Чмирук Я так понял, что все элементы массива задаются кратными 2. В противном случае на русском языке формулировка была бы
"Найти произведение кратных 2 элементов массива а, состоящего из 25 целых чисел".
На PascalABC.NET:

begin
var p:biginteger:=1; var a:array[1..25]of integer;
for i:integer:=1 to 25 do a[i]:=random(25)*2; a.print;
writeln; for i:integer:=1 to 25 do p:=p*a[i]; writeln(p);
end.
Игорь Чмирук
Игорь Чмирук
64 914
?????????µ?? ???????°???µ?????? что значат цифры которые выводятся ниже?
Игорь Чмирук Верхний ряд - сгенерированные элементы массива. Число ниже - их произведение.

Похожие вопросы