Výpočet Faktoriálu
Zadání:
Vytvořte program, ve kterém uživatel zadá hodnotu, z níž program vypočte faktoriál.
Vstup programu: jedna hodnota Výstup programu: faktoriál z hodnoty
Rozbor:
Vzorec pro výpočet faktoriálu:
݊! = 1 ∙ 2 ∙∙∙ ݊
Nesmíme ovšem zapomenout, že faktoriál je definován pouze pro hodnoty větší nebo rovny 0. A faktoriál hodnoty 0 je 1.
Upozornění: Pokud zadáte vstupní hodnotu větší než 12, výsledek již přesáhne maximální hodnotu datového typu Integer a jeho hodnota tedy nebude odpovídat správnému výsledku.
Proměnné použité v programu:
N ... zadaná hodnota [Integer]
F ... faktoriál ze zadané hodnoty [Integer]
j ... řídící proměnná cyklu [Integer]
Logické sestavení programu:
Nejdříve načteme hodnotu N. Dále musíme do F (faktoriálu) uložit 1. Nyní musíme rozhodnout, zda je N větší nebo rovno 0.
1. Pokud je N větší nebo rovno 0, pokračujeme dalším rozhodnutím, zda je N větší než 1.
I. Pokud je N větší než 1, pokračujeme cyklem, kterému zadáme, že jeho řídicí proměnná j do sebe v prvním cyklu uloží hodnotu 2 a bude se každý další cyklus zvětšovat až do N.
a) Dokud je j menší než N, bude se dokola provádět tělo cyklu, v kterém budeme F násobit řídící proměnnou j, která se bude s každým cyklem zvětšovat o 1.
b) Pokud je j rovno N, provede se cyklus naposledy a pokračuje dalším příkazem za cyklem.
II. Pokud N není větší než 1, tedy může být pouze 0 nebo 1, tak již máme výsledek a nemusíme provádět výpočet. (Do F jsme uložili 1, což je výsledný faktoriál pro hodnoty 0 a 1)
Vypsání výsledného faktoriálu F.
2. Pokud je N menší než 0, musíme vypsat chybovou hlášku. (pro záporná čísla faktoriál neexistuje)