Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Вычисление произведения


Автор: Frank 25.6.2006, 10:01
Здравствуйте!

Помогите решить задачу.
Дано натуральное число N. Вычислить произведение первых N сомножителей.
P=(2/3)*(4/5)*(6/7)*...*(2*N)/2*N+1

Заранее спасибо. 

Автор: Palladin 25.6.2006, 11:16
Код

programm RooR;
Var
n,i:integer;
p:real;
begin
p:=1;

Write('vvedite n:');
Readln(n);

for i:=1 to n do 
begin
p:=p*((2*n)/(2*n+1));
end;

Write('P= ',p:4:4);
Readln;
end;


На вскидку не проверял, а вообще тебе в раздел помощи с такими вопросамиsmile  

Автор: Frank 26.6.2006, 12:55
Цитата

begin
p:=p*((2*n)/(2*n+1));
end;

Почему здесь после =p*. И с чего вы взяли, что p=1.
Где вот эта часть формулы 
Цитата

P=(2/3)*(4/5)*(6/7)*...*
 

Автор: comtat 26.6.2006, 13:00
Цитата
Где вот эта часть формулы Цитата
P=(2/3)*(4/5)*(6/7)*...*


Это батенька полиномом называется 
2/3 получится если положить N=1 по формуле ((2*n)/(2*n+1)); 

Автор: Palladin 26.6.2006, 19:08
А P=1 я сделал для того чтобы не получился ноль в первый раз, т.к. получиться такая штука: 

p:=0*((2*n)/(2*n+1));

или какаянить другая, я не проверял, но точно знаю что если переменную не обозначить, то она будет равна либо 0 либо хз какому числу! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)