исправте мой неправельный текст на более правильный :
Ай нид хелп...
плиз...
Она просто недописана.
Где-то я что-то забыл..
в синтаксе паскаля не силен.
А условие задачи - подсчитать P?
Тогда просто в цикле считай
for i:=1 to n do
begin
y:=podchet(x, i-1);
P:=p+y
end;
Условие подсчитать?
А то что дал, куда вставить ?
А то паскалю куда не пиши че та не нравиться...
Тьфу ты, там произведение, а не сумма.
Program Rfunction;
var
p,x:real;
i,n: integer;
function step (x: real;n: integer):real;
begin if n=1 then step:=x
else step:= step( x, n-1)*x;
end;
function podchet(x:real; n: integer):real;
Var x1: real;
begin if n=1 then podchet:= 2*x
else x1:= step (x,n);
podchet:= podchet(x, n-1)*(2*x1)/n;
end;
BEGIN
WRITE ('VVOD X N ');
readln( x, n);
p:=1;
for i:=1 to n do
begin
y:=podchet(x, i-1);
p:=p*1;
end;
writeln;( ' p= ', p);
readln;
end.
Оззя, ты begin/end нигде не забыл
function podchet(x:real; n: integer):real;
Var x1: real;
begin if n=1 then podchet:= 2*x
else BEGIN x1:= step (x,n); { <--- здесь}
podchet:= podchet(x, n-1)*(2*x1)/n;
END; { <--- здесь }
end;
function podchet(x:real; n: integer):real;
Var x1: real;
begin if n=1 then podchet:= 2*x
else BEGIN x1:= step (x,n); { <--- здесь}
podchet:= podchet(x, n-1)*(2*x1)/n;
END; { <--- здесь }
end;
Основная программа немного неверная... Вот так вызывать:
BEGIN
WRITE ('VVOD X N '); readln( x, n);
p:=1;
for i:=1 to n do begin
y:=podchet(x, i); { <--- Не (i - 1) !!!}
p:=p*y; { <--- Умножать надо на Y }
end;
writeln( ' p= ', p);
readln;
end.
всем огромное спасибо))))