1. PovrchObjemKoule

1.3. Výsledný kód

Výsledný kód

Následující zdrojový kód je kompletací předešlých zdrojových kódů programu PovrchObjemKoule, 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 PovrchObjemKoule
{
    class Program
    {
        static void Main(string[] args)
        {
            /* Deklarace: 'r' ... poloměr koule (parametr); 's' ... plocha 
             * koule (proměnná); 'v' ... objem koule (proměnná) */
            double r, s, v;
 
            //Výzva k zadání poloměru koule
            Console.Write("Zadejte poloměr koule: ");
            //Načtení poloměru koule (konverze načtených číslic na reálné číslo)
            r = int.Parse(Console.ReadLine());
 
            //Sekce pro výpočet povrchu a objemu koule bez volání podprogramu
            Console.WriteLine("- Výpočet povrchu a objemu koule bez podprogramu -");
            //Výpočet povrchu koule
            s = 4 * Math.PI * r * r;
            //Výpočet objemu koule
            v = (4.0 / 3.0) * Math.PI * r * r * r;
            //Výpis vypočteného porvchu a objemu koule
            Console.WriteLine("Povrch koule je: {0} a objem koule je: {1} ", s, v);
 
            //Sekce pro metody s návratem
            Console.WriteLine("- Metody s návratem -");
            //Volání metody s návratem pro výpočet povrchu koule
            s = PovrchKouleMetodaSNavratem(r);
            //Volání metody s návratem pro výpočet objemu koule
            v = ObjemKouleMetodaSNavratem(r);
            //Výpis vypočteného porvchu a objemu koule
            Console.WriteLine("Povrch koule je: {0} a objem koule je: {1} ", s, v);
 
            //Sekce pro metodu se dvěma návraty
            Console.WriteLine("- Metody s dvěma návraty -");
            //Volání metody se dvěma návraty - návrat povrchu a objemu koule
            (s, v) = PovrchObjemKouleMetodaDvaNavraty(r);
            //Výpis vypočteného porvchu a objemu koule
            Console.WriteLine("Povrch koule je: {0} a objem koule je: {1} ", s, v);
 
            //Sekce pro metody orientované na výraz
            Console.WriteLine("- Metody orientované na výraz -");
            //Volání metody orientované na výraz - povrch koule
            s = PovrchKouleMetodaVyraz(r);
            //Volání metody orientované na výraz - objem koule
            v = ObjemKouleMetodaVyraz(r);
            //Výpis vypočteného porvchu a objemu koule
            Console.WriteLine("Povrch koule je: {0} a objem koule je: {1} ", s, v);
 
            //Sekce pro metodu bez návratu - výpis uvnitř metody
            Console.WriteLine("- Metoda bez návratu -");
            /* Volání metody bez návratu (výpis vypočteného povrchu a objemu
             * koule uvnitř metody */
            PovrchObjemKouleMetodaBezNavratu(r);
 
            //Sekce pro metodu bez návratu - předání parametrů odkazem
            Console.WriteLine("- Metoda bez návratu - předání parametrů odkazem -");
            //Volání metody bez návratu - předání vypočtených parametrů odkazem
            PovrchObjemKoulePredaniOdkazem(r, ref s, ref v);
            //Výpis vypočteného porvchu a objemu koule
            Console.WriteLine("Povrch koule je: {0} a objem koule je: {1} ", s, v);
 
            //Sekce pro metodu bez návratu - výstupní parametry
            Console.WriteLine("- Metoda bez návratu - výstupní parametry -");
            /* Volání metody bez návratu - výstupní parametry - inicializace
             * parametrů (povrchu a objemu koule) je provedeno uvnitř metody */
            PovrchObjemKouleVystupniParametry(r, out s, out v);
            //Výpis vypočteného porvchu a objemu koule
            Console.WriteLine("Povrch koule je: {0} a objem koule je: {1} ", s, v);
 
            //Čekání na stisk klávesy -> ukončení programu
            Console.ReadKey();
        }
 
        //Statická metoda s návratem vypočteného povrchu koule
        //'r' ... poloměr koule (formální parametr předaný hodnotou)
        static double PovrchKouleMetodaSNavratem(double r)
        {
            //Deklarace proměnné: 's' ... povrch koule
            double s;
            //Výpočet povrchu koule (použití konstanty PI ve třídě Math)
            s = 4 * Math.PI * r * r;
            //Návrat vypočteného povrchu 
            return s;
        }
 
        //Statická metoda s návratem vypočteného objemu koule
        //'r' ... poloměr koule (formální parametr předaný hodnotou)
        static double ObjemKouleMetodaSNavratem(double r)
        {
            //Deklarace proměnné: 'v' ... objem koule
            double v;
            //Výpočet objemu koule (použití konstanty PI ve třídě Math)
            v = 4.0 / 3.0 * Math.PI * r * r * r;
            //Návrat vypočteného objemu 
            return v;
        }
 
 
        //Statická metoda s dvěma návraty - povrch a objem koule
        static (double, double) PovrchObjemKouleMetodaDvaNavraty(double r)
        {
            //Deklarace proměnných: 's' ... povrch koule, 'v' ... objem koule
            double s, v;
            //Výpočet povrchu koule (použití konstanty PI ve třídě Math)
            s = 4 * Math.PI * r * r;
            //Výpočet povrchu koule (použití konstanty PI ve třídě Math)
            v = (4.0 / 3.0) * Math.PI * r * r * r;
            //Návrat hodnot uložených ve dvou proměnných
            return (s, v);
        }
 
 
        //Statická metoda orientovaná na výraz pro výpočet povrchu koule
        static double PovrchKouleMetodaVyraz(double r) => 4 * Math.PI * r * r;
 
        //Statická metoda orientovaná na výraz pro výpočet objemu koule
        static double ObjemKouleMetodaVyraz(double r) => 4.0 / 3.0 * Math.PI * r * r * r; 
 
 
        //Statická metoda bez návratu - vypočtení povrchu a objemu koule a výpis jejich hodnot
        //'r' ... poloměr koule (formální parametr předaný hodnotou)
        static void PovrchObjemKouleMetodaBezNavratu(double r)
        {
            //Deklarace proměnných: 's' ... povrch koule, 'v' ... objem koule
            double s, v;
            //Výpočet povrchu koule (použití konstanty PI ve třídě Math)
            s = 4 * Math.PI * r * r;
            //Výpočet objemu koule (použití konstanty PI ve třídě Math)
            v = 4.0 / 3.0 * Math.PI * r * r * r;
            //Výpis vypočteného porvchu a objemu koule uložených v lokálních proměnných
            Console.WriteLine("Povrch koule je: {0} a objem koule je: {1} ", s, v);
        }
 
        /* Statická metoda bez návratu - předání parametrů odkazem, tj. vypočteného povrchu
         * a objemu koule */
        /* Deklarace parametrů: 'r' ... poloměr koule (formální parametr předaný hodnotou); 
         * 's' ... povrch koule (formální parametr předaný odkazem); 'v' ... objem koule 
         * (formální parametr předaný odkazem) */
        static void PovrchObjemKoulePredaniOdkazem(double r, ref double s, ref double v)
        {
            //Výpočet povrchu koule
            s = 4 * Math.PI * r * r;
            //Výpočet objemu koule
            v = 4.0 / 3.0 * Math.PI * r * r * r;
        }
 
        /* Statická metoda bez návratu - výstupní parametry, tj. vypočtený povrch a objem
         * koule */
        /* Deklarace parametrů: 'r' ... poloměr koule (formální parametr předaný hodnotou); 
         * 's' ... povrch koule (výstupní formální parametr); 'v' ... objem koule (výstupní 
         * formální parametr) */
        static void PovrchObjemKouleVystupniParametry(double r, out double s, out double v)
        {
            //Výpočet povrchu koule - inicializace výstupního parametru
            s = 4 * Math.PI * r * r;
            //Výpočet objemu koule - inicializace výstupního parametru
            v = (4.0 / 3.0) * Math.PI * r * r * r;
        }                                   
    }
}

Kód 1: Program PovrchObjemKoule - deklarace hlavní statické metody Main včetně deklarací dalších metod