Faktoriál
Completion requirements
1. Faktorial
1.3. Výsledný kód
Následující zdrojový kód je kompletací předešlých kódů programu Faktorial, který je umístěn v souboru Program.cs - viz Kód 1.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Faktorial { class Program { static void Main(string[] args) { // Výpis textu Console.WriteLine("Výpočet faktoriálu"); // Výzva k zadání čísla pro výpočet faktoriálu Console.Write("Zadejte číslo: "); /* Načtení čísla - 'n' ... číslo, pro které bude vypočten * faktoriál (výstupní parametr TryParse) */ int.TryParse(Console.ReadLine(), out int n); /* Výpis textu a hodnoty faktoriálu, který je výstupem zavolané funkce * s předaným parametrem 'n'; specifikace výstupního formátu * čísla "N0", tj. bez čísel za desetinnou čárkou */ Console.WriteLine("Faktoriál (cyklus while): " + FaktorialWhile(n).ToString("N0")); Console.WriteLine("Faktoriál (cyklus do-while): " + FaktorialDoWhile(n).ToString("N0")); Console.WriteLine("Faktoriál (cyklus for): " + FaktorialFor(n).ToString("N0")); Console.WriteLine("Faktoriál (rekurze): " + FaktorialVolaniRekurze(n).ToString("N0")); // Čekání na stisk klávesy -> ukončení programu Console.ReadKey(); } // Metoda s celočíselným návratem (datový typ long) pro výpočet faktoriálu pomocí cyklu while static long FaktorialWhile(int n) { /* Deklarace: 'i' ... čítač (aktuální číslo v součinu); * 'f' ... hodnota faktoriálu */ int i; long f; // Inicializace i = 1; f = 1; // Opakuj, pokud je čítač menší, nebo roven číslu pro výpočet faktoriálu while (i <= n) { // Výpočet faktoriálu f = f * i; // Inkrementace čítače i++; } // Návrat vypočtené hodnoty faktoriálu return f; } // Metoda s celočíselným návratem pro výpočet faktoriálu pomocí cyklu do-while static long FaktorialDoWhile(int n) { /* Deklarace: 'i' ... čítač (aktuální číslo v součinu); * 'f' ... hodnota faktoriálu */ int i; long f; // Inicializace i = 1; f = 1; do { // Výpočet faktoriálu f = f * i; // Inkrementace čítače i++; } // Opakuj, dokud je čítač menší, nebo roven číslu pro výpočet faktoriálu while (i <= n); // Návrat vypočtené hodnoty faktoriálu return f; } // Metoda s celočíselným návratem pro výpočet faktoriálu pomocí cyklu for static long FaktorialFor(int n) { // Deklarace: 'f' ... hodnota faktoriálu long f; // Inicializace f = 1; // Cyklus s krokem; deklarace: 'i' ... čítač (aktuální číslo v součinu) for (int i = 1; i <= n; i++) { // Výpočet faktoriálu f = f * i; } // Návrat vypočtené hodnoty faktoriálu return f; } // Metoda s celočíselným návratem pro výpočet faktoriálu pomocí rekurze static long FaktorialRekurze(int n) { // Deklarace: 'f' ... hodnota faktoriálu long f; // Pokud je předaná hodnota v parametru rovna nule if (n == 0) { // Faktoriál je 1 f = 1; } else { // Rekurzivní volání metody s návratem (metoda volá sama sebe) f = n * FaktorialRekurze(n - 1); } // Návrat vypočtené hodnoty faktoriálu return f; } /* Metoda s celočíselným návratem pro výpočet faktoriálu pomocí * volání metody využívající rekurzi */ static long FaktorialVolaniRekurze(int n) { /* Návrat vypočtené hodnoty faktoriálu pomocí * volání metody pro výpočet faktoriálu pomocí rekurze */ return FaktorialRekurze(n); } } }
Kód 1: Program Faktorial - deklarace hlavní statické metody Main včetně deklarací dalších metod
Výstup programu
Na následujícím výstupu programu vidíme výpis vypočtených hodnot faktoriálu pomocí různých typů cyklu a za použití rekurze - viz Výstup programu - Kód 1.

Výstup programu - Kód 1: Ukázka výpisu vypočtených hodnot faktoriálu v hlavní metodě programu Faktorial