Процедура ABC. Объявляются переменные A, B и С, в которые записываются значения ячеек [2, 2], [3, 2] и [4, 2] соответственно, переменная S со значением 0 и три переменных для результатов. Для каждой из переменных A, B, C проверяется, является ли её значение чётным: если да, то в соответствующих ей ответ записывается "Число A/B/C - чётное", а S увеличивается на его значение, в противном случае в ответ пишется "Число A/B/C - нечётное". Далее ответы записываются соответственно в ячейки [2, 3], [3, 3], [4, 3], а сумма чётных значений (S) - в ячейку [6, 2].
Из сложностей может возникнуть только генерация случайного значения. Функция random(x) возвращает случайное число от 0 до x-1. Когда функция возвращает 0 (минимальное значение), нам нужно, чтобы оно превратилось в 20. Будем отнимать 20 от значения функции random(x):
a[i] := random(x) - 20;
Самое большое число, которое мы хотим получить - 60. Так как мы отнимаем 20, самое большое число, которое должна вернуть функция random(x) равно 80. Значит, x равен 81:
a[i] := random(81) - 20;
Кстати, произведение может получаться слишком большим, а тип данных integer может хранить числа не больше 32767. Поэтому мы должны хранить произведение как longint. Оно позволяет хранить числа до
var
a: array[1..1000] of integer;
i, n: integer;
ans: longint;
begin
read(n);
ans:=1;
for i:=1 to n do
begin
a[i]:=random(81)-20;
if a[i] > 20 then ans:=ans*a[i];
end;
writeln(ans);
end.
Смотри ниже
Объяснение:
Если в первом целых чисел бесконечно, то и чётных во втором тоже бесконечно! Формула: (2*n)