Const maxn=15; var a: array[1..maxn] of integer; skv,prod,gr,i: integer; begin writeln('введите ',maxn,' чисел'); skv:=0; prod:=1; gr:=0; for i:=1 to maxn do begin write(i,': '); readln(a[i]); if a[i]<0 then skv:=skv+a[i]*a[i]; if (a[i] mod 2 = 0) and (i mod 2 = 0) then prod:=prod*a[i]; if abs(a[i])>100 then gr:=gr+1; end; writeln('сумма квадратов отрицательных: ',skv); writeln('произведение четных на четных местах: ',prod); writeln('больше 100 по модулю: ',gr); end.
введите 15 чисел 1: 151 2: -231 3: 104 4: 19 5: 36 6: -112 7: 5 8: 8 9: 11 10: 13 11: 45 12: 5 13: 6 14: 17 15: 19 сумма квадратов отрицательных: 65905 произведение четных на четных местах: -896 больше 100 по модулю: 4
Любое произведение чисел будет четным, если оно содержит хотя бы оин четный сомножитель, поэтому задача сводится к определению того, есть ли в массиве хоть один четный элемент с нечетным порядковым номером. Почему просто не попытаться перемножить эти элементы? Например потому, что максимальное целое значение в компьютерной математике ограничено количеством байт, отводимых для представления данных такого типа и редко превышает 2³². А представление с плавающей точкой - приближенное и проверять четность для подобных чисел часто оказывается бессмысленным.
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016 begin var a:=ArrRandom(10,-15,15); a.Println; if a.Where((x,i)->i.IsEven).Any(x->x.IsEven) then Writeln('Четное') else Writeln('Нечетное') end.
Пояснения. 1. var a:=ArrRandom(10,-15,15); - описывается динамический массив "а", который создается и заполняется данными. 2. a.Println; - вывод элементов массива. 3. a.Where((x,i)->i.IsEven) выделяет из массива "а" элементы, у которых индекс четный (массив "а" - динамический и его элементы индексируются от нуля, поэтому элементы с нечетным порядковым номером имеют четные индексы). Полученная последовательность элементов посредством Any(x->x.IsEven) проверяется на наличие хотя бы одного элемента с четным значением. Проверка возвращает логическое значение, на основе которого формируется вывод.
1. 5-5120-40960
2. 1.5-1536-12288