Модуль сделаем с функцией проверки на чётность чисел.
Основную программу почти не менял - см. комментарии
Объяснение:
в модуле есть функция 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.
var
i,s,n,k,m: integer;
begin
Writeln('...Условие');
Write('Введите n='); Read(n);
Write('Введите k='); Read(k);
s:=0; m:=n mod 3;
if m<>0 then i:=n+3-(n mod 3) else i:=n; { чтобы было кратно 3 }
m:=0;
while i<=k do begin s:=s+i; Inc(m); Inc(i,3) end;
Writeln('Среднее равно ',s/m:6:3)
end.
Тестовое решение:
...Условие
Введите n=19
Введите k=85
Среднее равно 52.500