Největší číslo
2. NejvetsiZe2CiselVcetneRovnosti
2.3. Výsledný kód
Následující zdrojový kód je kompletací předešlých kódů programu NejvetsiZe2CiselVcetneRovnosti, 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 NejvetsiZe2CiselVcetneRovnosti { class Program { static void Main(string[] args) { /* Deklarace: 'a' ... první zadané celé číslo; 'b' ... druhé zadané celé číslo; * 'max' ... hodnota většího čísla */ int a, b, max; // Deklarace: 'text' ... textový řetězec pro uložení prvního výstupu metody se 2 výstupy string nazevMax; // Výzva k zadání prvního celého čísla Console.Write("Zadejte a: "); /* Načtení druhého celého čísla a test, zda proběhla konverze celého * čísla (návrat metody konverze je boolean) */ bool konverze = int.TryParse(Console.ReadLine(), out a); // Pokud neproběhla konverze if (konverze == false) { // Výpis chyby při konverzi Console.WriteLine("Chyba při konverzi na celé číslo"); // Čekání na stisk klávesy Console.ReadKey(); // Ukončení programu return; } // Výzva k zadání druhého celého čísla Console.Write("Zadejte b: "); // Test, zda neproběhla konverze celého čísla (návrat metody konverze je boolean) if (int.TryParse(Console.ReadLine(), out b) == false) { // Výpis chyby při konverzi Console.WriteLine("Chyba při konverzi na celé číslo"); // Čekání na stisk klávesy Console.ReadKey(); // Ukončení programu return; } // Výpis textu pro oddělení porovnání v hlavním programu Console.WriteLine("Porovnání dvou čísel v hlavním programu:"); // Test, zda první číslo je větší než druhé if (a > b) { // První číslo je větší než druhé Console.WriteLine("Největší je a = {0}", a); } else { // Test, zda zadaná čísla jsou si rovny if (a == b) { // Rovnost obou zadaných čísel Console.WriteLine("Největší je a = b = {0}", b); } else { /* První zadané číslo 'a' není rovné druhému číslu 'b' * a zároveň druhé číslo 'b' je větší než první 'a' */ Console.WriteLine("Největší je b = {0}", b); } } // Výpis textu pro oddělení porovnání provedeného pomocí zavolání metody s návratem Console.WriteLine("Porovnání dvou čísel pomocí metody s návratem:"); // Vypsání textu spolu s návratem funkce (výsledek porovnání) Console.WriteLine("Největší je {0}", VetsiRovno(a, b, "a", "b")); // Výpis textu pro oddělení porovnání provedeného pomocí zavolání metody se dvěma návraty Console.WriteLine("Porovnání dvou čísel pomocí metody s dvěma návraty:"); // Volání metody se 2 návraty a přiřazení do proměnných (nazevMax, max) = VetsiRovno2Vystupy(a, b, "a", "b"); // Vypsání textu spolu s návratem názvu proměnné a její hodnoty (výsledek porovnání) Console.WriteLine("Největší je {0}{1}", nazevMax, max); // Výpis textu pro oddělení porovnání provedeného pomocí zavolání metody s výstupními parametry Console.WriteLine("Porovnání dvou čísel pomocí metody s výstupními parametry:"); // Volání metody se 2 návraty a přiřazení do proměnných VetsiRovno(a, b, "a", "b", out nazevMax, out max); // Vypsání textu spolu s návratem názvu proměnné a její hodnoty (výsledek porovnání) Console.WriteLine("Největší je {0}{1}", nazevMax, max); // Čekání na stisk klávesy -> ukončení programu Console.ReadKey(); } // Metoda s celočíselným návratem /* 'x' ... hodnota prvního celého čísla; 'y' ... hodnota druhého celého čísla; * 'identifikatorPrvniCislo' ... identifikátor prvního celého čísla uloženého * do formálního parametru metody; 'y' ... identifikátor druhého celého čísla; */ static string VetsiRovno(int x, int y, string identifikatorPrvniCislo, string identifikatorDruheCislo) { string identifikatorHodnotaVetsiho; // Test, zda první číslo je větší než druhé if (x > y) { // První číslo je větší než druhé číslo identifikatorHodnotaVetsiho = identifikatorPrvniCislo + " = " + x; } else { // Test, zda zadaná čísla jsou si rovny if (x == y) { // Rovnost obou zadaných čísel identifikatorHodnotaVetsiho = identifikatorPrvniCislo + " = " + identifikatorDruheCislo + " = " + y; } else { // První zadané číslo není rovné druhému číslu (a zároveň druhé číslo je větší než první) identifikatorHodnotaVetsiho = identifikatorDruheCislo + " = " + y; } } // Návrat názvu a hodnoty většího čísla return identifikatorHodnotaVetsiho; } // Přetížená metoda s výstupními parametry static void VetsiRovno(int x, int y, string identifikatorPrvniCislo, string identifikatorDruheCislo, out string identifikatorMax, out int max) { // Test, zda první číslo je větší než druhé if (x > y) { // Přiřazení názvu ve formálnímu parametru výstupnímu parametru identifikatorMax = identifikatorPrvniCislo + " = "; // Přiřazení hodnoty většího čísla výstupnímu parametru (první číslo je větší) max = x; } else { // Test, zda zadaná čísla jsou si rovnym if (x == y) { // Přiřazení názvu ve formálnímu parametru výstupnímu parametru identifikatorMax = identifikatorPrvniCislo + " = " + identifikatorDruheCislo + " = "; // Přiřazení hodnoty většího čísla výstupnímu parametru (obě čísla jsou si rovna) max = y; } else { // Přiřazení názvu ve formálnímu parametru výstupnímu parametru identifikatorMax = identifikatorDruheCislo + " = "; // Přiřazení hodnoty většího čísla výstupnímu parametru (první číslo je větší) max = y; } } } //Metoda se dvěma návraty static (string, int) VetsiRovno2Vystupy(int x, int y, string identifikatorPrvniCislo, string identifikatorDruheCislo) { // Test, zda první číslo je větší než druhé if (x > y) { // Návrat názvu a hodnoty většího čísla(první číslo je větší) return (identifikatorPrvniCislo + " = ", x); } else { // Test, zda zadaná čísla jsou si rovny if (x == y) { // Návrat názvu a hodnoty většího čísla (rovnost obou zadaných čísel) return (identifikatorPrvniCislo + " = " + identifikatorDruheCislo + " = ", y); } else { // Návrat názvu a hodnoty většího čísla (druhé číslo je větší) return (identifikatorDruheCislo + " = ", y); } } } } }
Kód 1: Program NejvetsiZe2CiselVcetneRovnosti - 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 největší hodnoty z obou porovnaných hodnot - viz Výstup programu 1 - Kód 1. Jednotlivá porovnání jsou rozdělena do různých sekcí, abychom věděli, zda porovnání bylo provedeno v hlavní metodě, pomocí metody s návratem, metody se dvěma návraty, nebo pomocí metody s výstupními parametry. Po provedení výpisu konzolová aplikace čeká na stisk klávesy, aby po stisku klávesy byla následně ukončena. Na prvním výstupu v konzole vidíme, že největší číslo je druhé zadané číslo.

Výstup programu 1 - Kód 1: Ukázka výpisu větší hodnoty v hlavní statické metodě programu NejvetsiZe2CiselVcetneRovnosti
Pokud bylo zadáno stejné číslo, je vypsána rovnost obou čísel - viz Výstup programu 2 - Kód 1.

Výstup programu 2 - Kód 1: Ukázka výpisu stejných hodnot v hlavní statické metodě programu NejvetsiZe2CiselVcetneRovnosti
Pokud uživatel zadal špatný číselný vstup (např. text "bflm") návrat metody TryParse nabývá hodnoty false a je spuštěn příkaz výpisu chybové hlášky. Abychom si mohli přečíst chybovou hlášku, je za příkaz výpisu v kódu umístěn příkaz pro načtení znaku. Po stisku klávesy následuje ukončení programu pomocí příkazu return - viz Výstup programu 3 - Kód 1.

Výstup programu 3 - Kód 1: Ukázka výpisu chyby při konverzi v hlavní statické metodě programu NejvetsiZe2CiselVcetneRovnosti