ALGORITMIZACE A ZÁKLADY PROGRAMOVÁNÍ CYKLUS S PŘEDEM DANÝM POČTEM OPAKOVÁNÍ – FAKTORIÁL Vytvořila: RNDr. Ivanka Dvořáčková Gymnázium K. V. Raise, Hlinsko, Adámkova 55 březen 2013
N-FAKTORIÁL a) Vytvořte algoritmus pro výpočet n-faktoriálu, tj. součinu přirozených čísel menších nebo rovných N (kde n ∈N). Využijte cyklus s předem daným opakováním 1. se snižující se řídící proměnnou I, 2. se zvyšující se řídící proměnnou I. b) Přepište algoritmus do programovacího jazyka Pascal. c) Spusťte program Free Pascal a přepište program do počítače, odlaďte. d) Vyzkoušejte na počítači, pro které největší číslo N s proměnnou FAKT datového typu integer bude program faktoriál počítat. Změňte datový typ u proměnné na longint a opět zjistěte největší možné číslo N, pro které získáte výsledek. LONGINT – typ celých čísel (větší rozsah celých čísel) Doplňující úkol (pro rychlejší studenty) Upravte první verzi programu i pro n = 0
1! = 1 definujeme 0! = 1 Dále budeme pro zjednodušení uvažovat jen n ∊ N
Doplňující úkol program FAKTORIAL; uses CRT; var N, I, FAKT: integer; {lépe longint pro FAKT} begin clrscr; writeln (’ * * * N-FAKTORIÁL * * * ’); write (’Zadej nezáporné celé číslo N: ’); readln (N); if N = 0 then FAKT := 1 else FAKT := 1; for I := N downto 1 do FAKT := FAKT * I end; writeln (N,’-faktoriál je ’, FAKT : 1, ’. ’); readkey end. if else then B E
Použité zdroje Všechny grafické prvky a obrázky algoritmů jsem vytvořila sama s využitím volně šiřitelného programu Open Office. HUBKA, J. a L. SILVERIO. Sbírka příkladů ze základů programování. Krajský pedagogický ústav Hradec Králové: Sdružení uživatelů počítačů JSEP a SMEP Hradec Králové, 1988.