- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
program z1;
function func (x: real): real;
const e = 0.000000000000001; {15 знаков после запятой}
var f: real; {переменая для расчета двойного факториала}
i, k: integer; {счетчик проходов, i-общий, k-частный}
d: real; {добавляемая дельта}
y: real; {переменная искомого значения}
begin
y := 1.0;
i := 1;
repeat
f := 1; {----------}
k := i; {--расчет--}
while (k >= 2) do begin {-двойного-}
f := f * k; {факториала}
k := k - 2; {----------}
end; {----------}
d := 1; {---------------------}
for k := 1 to i do {считаем степень числа}
d := d * x; {---------------------}
d := d / f; {-----------------находим d-----------------}
if (d < e) then break; {проверяем ее на попадание в разрядную сетку}
y := y + d;
i := i + 1;
until (false);
func := y;
end;
var x: real;
begin
write ('Введите x: ');
readln (x);
writeln ('y = ', func (x):3:15);
end.
3.14159265 09.11.2010 14:57 # 0
Crazyzubr 09.11.2010 15:20 # 0
bugmenot 09.11.2010 15:33 # +1
TarasB 09.11.2010 15:02 # +3
Этот говнокод хоть и не смешон, но его надо сохранить, чтобы показывать студентам, как не надо считать ряды.
Не топите его.
Kornew 09.11.2010 18:35 # +3
после:
const e = 0.000000000000001; {15 знаков после запятой}
можно даже и не надеяться на нормальное решение...
Crazyzubr 09.11.2010 18:56 # 0
bugmenot 09.11.2010 19:13 # 0
Crazyzubr 09.11.2010 19:21 # +1
Lure Of Chaos 09.11.2010 21:28 # 0
TarasB 10.11.2010 12:14 # +1
Arigato 11.11.2010 18:44 # +1