30.12.2009, 10:40
общий
это ответ
Здравствуйте, angel.nero. Код в приложении.
Приложение:
{
1)Дано натуральное число n. Найти двойной факториал n:
n!!=n•(n – 2)•(n – 4)•...
2)Дано натуральное число n. Вычислить число ? (по Архимеду ? = 3 10/71 ), используя:
1) ряд Грегори пи/4=1-1/3+1/5-1/7+.....(n слагаемых)
2)произведение Валлиса пи/2=2/1*2/3*4/3*4/5*6/5*6/7.........(n сомножителей)
}
program prog;
var
i, n: integer;
f2: LongInt;
a, pi4, pi2: real;
begin
repeat
write('n=');
readln(n);
until (n>=0);
f2 := 1;
i:= n;
while i>0 do
begin
f2 := f2 * i;
i := i-2;
end;
{ Грегори }
pi4 := 0.0;
a:= 1.0;
for i:= 1 to n do
begin
if odd(i) then
pi4 := pi4+1.0/a
else
pi4 := pi4-1.0/a;
a:= a+2;
end;
{ Валлис }
pi2 := 1.0;
i:= 1;
while i<=n do
begin
pi2 := pi2 *(i+1)/i;
i:= i+2;
end;
i:= 2;
while i<=n do
begin
pi2 := pi2 *i/(i+1);
i:= i+2;
end;
writeln(n, '!!=', f2);
writeln('n=', n, ' Грегори pi/4=', pi4:0:6, ' Валлис pi/2=', pi2:0:6);
readln
end.