Вычисление произведение. Как доделать программу? - Pascal ABC

Формулировка задачи:

program proizv;
var q3,x,p: real;
         i:integer;
begin
writeln('введите число'); readln(x);
q3 := exp(ln(x) / 3);
begin
p := 1.0;
for i := 1 to 10 do
p := p * (2 + cos(i*2+x)*cos(i*2+x) / (i*2 + q3));
writeln(' Значение произведения равно ',p:4:2 );
end;
end.
Не знаю как оформить проверку на то, что знаменатель не равен нулю и что x должен быть равен больше нуля?

Код к задаче: «Вычисление произведение. Как доделать программу? - Pascal ABC»

textual
var q3,x,p: real;
    i,k:integer;
begin
writeln('введите число');
readln(x);
if x=0 then q3:=0
else if x>0 then q3 := exp(ln(x) / 3)
else q3 := -exp(ln(-x) / 3);
p := 1.0;
k:=0;
i:=2;
while(i<=20)and(k=0) do
if i+q3=0 then k:=1
else
 begin
  p := p * (2 + sqr(cos(i+x)) / (i + q3));
  i:=i+2;
 end;
if k=1 then writeln('Произведение не определено')
else writeln(' Значение произведения равно ',p:0:2 );
end.

11   голосов, оценка 4.364 из 5


СОХРАНИТЬ ССЫЛКУ