===== PascalABC.NET =====
begin
// 1
var a := ArrRandom(7, -4, 5);
a.Println;
// 2
var b := ReadArrInteger('Введи 8 чисел:', 8);
Println('Сумма четных:', b.Where(p -> p.IsEven).Sum);
var p := b.Where(p -> p > 4).DefaultIfEmpty.Product;
if p >0 then
Println('Произведение элементов, больших 4:', p)
else
Println('Нет элементов, больших 4');
// 3
var c := ArrRandom(10, -14, 7);
c.Println;
Print('Минимальный элемент, больший 5');
var m := c.Where(p -> p > 5).DefaultIfEmpty.Min;
if m = 0 then
Println('отсутствует')
else
Println('равен', m);
var im := c.IndexMin;
Println('Миниммальный элемент номер', im + 1, 'равен ', c[im])
end.
Модуль сделаем с функцией проверки на чётность чисел.
Основную программу почти не менял - см. комментарии
Объяснение:
в модуле есть функция getChet которой передаётся число, и на после проверки возвращает чётное это число или нет
модуль
unit pr1u;
interface
function getChet(i:integer):boolean;
implementation
function getChet(i:integer):boolean;
begin
getChet := i mod 2 = 0;
end;
begin
end.
основная программа
program pr1;
(*добавляем модуль pr1u для использования в программе*)
uses crt, pr1u ;
var
a:array[1..100]of integer;
i,p,p0,p1,sum,temp,n,j:integer;
begin
clrscr;
write('n=');
read(n);
for i:=1 to n do begin
write('a[',i,']=');
read(a[i]);
end;
writeln;
p:=1;
for i:=1 to n do
(* тут идёт использование функции getChat из модуля pr1u, которая проверяет отправленное ей число на чётность*)
if getChet(i) then p:=p*a[i];
writeln('proizvedenie=',p);
writeln;
for i:=n downto 1 do
if a[i]=0 then p0:=i;
writeln('pervyi 0 v pozicii - ',p0);
writeln;
for i:=1 to n do
if a[i]=0 then p1:=i;
writeln('poslednii 0 v posicii - ',p1);
writeln;
sum:=0;
for i:=p0 to p1 do
sum:=sum+a[i];
writeln('summa=',sum);
writeln;
readkey;
end.