Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 04. 11. 2013 15:48

Sandrastrelcova
Příspěvky: 36
Škola: VŠE
Reputace:   
 

eulerovo číslo v pascalu

Ahoj,
snažím se pomocí součtu nekonečné řady v pascalu zapsat eulerovo číslo, bohužel mi program nejde ani spustit, natož abych si ověřila jestli je to správně :(   použiju u toho vzoreček že eulerovo číslo je vlastně suma od 0 po n, 1/0! + 1/1! + ... + 1/n! , takže si k tomu asi budu muset zadefinovat funkci faktoriál, ale ani to mi nějak nejde :/ prosím můžete někdo pomoct? moc porsím..

Offline

 

#2 04. 11. 2013 20:23

Bati
Příspěvky: 2469
Reputace:   192 
 

Re: eulerovo číslo v pascalu

Ahoj,
faktoriál můžeš v Pascalu napsat takto

Code:

function factorial(n : integer) : longint;
var i : integer;
begin
    factorial := 1;
    for i := 1 to n do
        factorial := i * factorial;
end;

Sumu uděláš for cyklem.

Offline

 

#3 05. 11. 2013 14:35 — Editoval Honzc (05. 11. 2013 14:39)

Honzc
Příspěvky: 4641
Reputace:   248 
 

Re: eulerovo číslo v pascalu

↑ Bati:
Spíš bych tu funkci na faktroriál napsal takto:

Code:

function factorial(n : Integer) : Int64;
var i : integer;
begin
    factorial := 1;
    for i := 1 to n do
        factorial := i * factorial(i-1);
end;

nebo

Code:

function factorial(n : Integer) : Int64;
var i : integer;
begin
    Result:= 1;
    for i := 1 to n do
        Result := i * Result;
end;

Offline

 

#4 05. 11. 2013 14:42

Formol
Místo: Praha
Příspěvky: 782
Pozice: krotitel mikroskopů (UHIEM 1. LF UK)
Reputace:   42 
 

Re: eulerovo číslo v pascalu

↑ Honzc:
Ahoj,
obávám se, že v prvním případě bys vyrobil nekonečnou rekurzi. Spíše bych to, když už bych chtěl počítat faktoriál rekurzí (a nechtěl, protože cyklus je podstatně rychlejší), počítal takhle:

Code:

function factorial(n : Integer) : Int64;
begin
   if n<2 then
      factorial := 1
   else
      factorial := n * factorial(n-1);
end;

Доктор сказал «в морг» — значит в морг!

Offline

 

#5 05. 11. 2013 17:36

check_drummer
Příspěvky: 5513
Reputace:   106 
 

Re: eulerovo číslo v pascalu

Ahoj, nemá Pascal funkci exp? Co potom použít exp(1)?


"Máte úhel beta." "No to nemám."

Offline

 

#6 05. 11. 2013 18:55

Bati
Příspěvky: 2469
Reputace:   192 
 

Re: eulerovo číslo v pascalu

↑ Honzc:
Můj postup je totožný s tvým druhým návrhem. Pascal používá jméno funkce jako proměnnou, jejíž hodnota se na konci vrátí. Rekurze je zde zbytečná.

↑ check_drummer:
To samozřejmě lze, ale počítal jsem s tím, že tahle možnost je známá a že toto je pouze cvičení.

Offline

 

#7 08. 11. 2013 10:04

Honzc
Příspěvky: 4641
Reputace:   248 
 

Re: eulerovo číslo v pascalu

↑ Bati:
Píšeš "Můj postup je totožný s tvým druhým návrhem. Pascal používá jméno funkce jako proměnnou, jejíž hodnota se na konci vrátí. Rekurze je zde zbytečná.", to jesice pravda, ale pokd nenapíšeš Result := i * Result;, ale factorial := i * factorial; pak ti to vyhodí chybu, že máš málo parametrů.

Offline

 

#8 08. 11. 2013 13:57

Bati
Příspěvky: 2469
Reputace:   192 
 

Re: eulerovo číslo v pascalu

↑ Honzc:
Žádnou chybu mi to nevyhazuje. Pokud napíšu jen factorial, tak totiž nevolám žádnou funkci, ale používám lokální proměnnou. Nicméně to už je jen otázka programovacího jazyka; připouštím že v Pascalu to vypadá podivně.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson