Veľkonočná akcia je tu a s ňou aj extra kredity ZADARMO na náš interaktívny e-learning. Dobij si teraz kredity a posuň sa vo svojej kariére vpred!
Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

12. diel - Matematické funkcie vo VB.NET a knižnica Math

V minulej lekcii, Podmienky vo VB.NET druhýkrát - ternárne výraz a Select Case , sme sa venovali ďalšie syntax podmienok.

V minulej lekcii, Podmienky vo VB.NET druhýkrát - ternárne výraz a Select Case , sme si predstavili metódy Split() a Join(). Naša výučba VB.NET teraz vlastne ešte len začína, však v tomto kurze najzákladnejších konštrukciách jazyka sme už u konca. Som rád, že sme sa úspešne dostali až sem, ďalšie sekcie sa totiž bude venovať objektovo orientovanému programovania. Budeme tam vytvárať naozaj zaujímavé aplikácie a aj jednu hru. Kurz zakončíme odľahčujúcim Visual Basic .NET tutorialom s prehľadom matematických funkcií, ktoré sa nám v našich programoch iste budú v budúcnosti hodiť.

Základné matematické funkcie sú v .NET obsiahnuté v triede Math. Trieda nám poskytuje dve základné konštanty: PI a E. PI je pochopiteľne číslo Pí (3.1415...) a E je Eulerovo Číslo, teda základ prirodzeného logaritmu (2.7182...). Asi je jasné, ako sa s triedou pracuje, ale pre istotu si na ukážku konštanty Vypíšme do konzoly:

Klikni pre editáciu
  • Console.WriteLine("Pí: {0}", Math.PI)
    Console.WriteLine("e: {0}", Math.E)
    Console.ReadKey()
    
    • Skontroluj, či výstupy programu zodpovedajú predlohe. S inými textami testy neprejdú.

    Vidíme, že všetko voláme na triede Math. Na kódu nie je nič moc zaujímavého okrem toho, že sme v textovom reťazci použili špeciálny konštantu vbCrLf, ktorá spôsobí odriadkovanie.

    Konzolová aplikácia
    Pí: 3.14159265358979
    e: 2.71828182845905

    Poďme si teraz popísať metódy, ktoré trieda poskytuje:

    Metódy na triede Math

    Min (), Max ()

    Začnime s tým jednoduchším :) . Obe funkcie berú ako parameter dve čísla ľubovoľného dátového typu. Funkcia Min() vráti to menšie, funkcia Max() to väčší z nich.

    Round (), Ceiling (), Floor () a Truncate ()

    Všetky tri funkcie sa týkajú zaokrúhľovania. Round() berie ako parameter desatinné číslo a vracia zaokrúhlené číslo typu Double tak, ako to poznáme zo školy (od 0.5 nahor, inak dole). Ceiling() zaokrúhli vždy hore a Floor() vždy dolu. Truncate() nezaokrúhľujú, iba odtrhne desatinnú časť.

    Round() budeme určite potrebovať často, ďalšie funkcie som prakticky často použil napr. Pri zisťovaní počtu stránok pri výpise komentárov v knihe návštev. Keď máme 33 príspevkov a na stránke ich je vypísané 10, budú teda zaberať 3.3 stránok. Výsledok musíme zaokrúhliť nahor, pretože v reále stránky budú samozrejme 4.

    Ak vás napadlo, že Floor() a Truncate() robia to isté, správajú sa inak u záporných čísel. Vtedy Floor() zaokrúhli na číslo viac do mínusu, Truncate() zaokrúhli vždy k nule.

    Abs () a Sign ()

    Obe metódy berú ako parameter číslo ľubovoľného typu. Abs() vráti jeho absolútnu hodnotu a Sign() vráti podľa znamienka -1, 0 alebo 1 (pre záporné číslo, nulu a kladné číslo).

    Sin (), Cos (), Tan ()

    Klasické goniometrické funkcie, ako parameter berú uhol typu Double, ktorý považujú v radiánoch, nie v stupňoch. Pre konverziu stupňov na radiány stupňa vynásobíme * (Math.PI / 180). Výstupom je opäť Double.

    ACOS (), Asin (), Atan ()

    Opäť klasické cyklometrické funkcie (arkus funkcie), ktoré podľa hodnoty goniometrické funkcie vráti daný uhol. Parametrom je hodnota v Double, výstupom uhol v radiánoch (tiež Double). Pokiaľ si prajeme mať uhol v stupňoch, vydelíme radiány / (180 / Math.PI).

    Pow () a sqrt ()

    Pow() berie dva parametre typu Double, prvý je základ mocniny a druhý exponent. Ak by sme teda chceli spočítať napr. 2^3, kód by bol nasledujúci:

    Klikni pre editáciu
    • Console.WriteLine(Math.Pow(2, 3))
      
      • Skontroluj, či výstupy programu zodpovedajú predlohe. S inými textami testy neprejdú.

      VB.NET má pre mocnění aj operátor, to isté môžeme zapísať ako:

      Klikni pre editáciu
      • Console.WriteLine(2^3)
        
        • Skontroluj, či výstupy programu zodpovedajú predlohe. S inými textami testy neprejdú.

        Sqrt() je skratka zo square root a vráti teda druhú odmocninu z daného čísla typu Double. Obe funkcie vracia výsledok ako Double.

        Exp (), Log (), log10 ()

        Exp() vracia Eulerovo Číslo, umocnené na daný exponent. Log() vracia prirodzený logaritmus daného čísla. Log10() vracia potom dekadický logaritmus daného čísla.

        V zozname metód nápadne chýba ľubovoľná odmocnina. My ju však dokážeme spočítať aj na základe funkcií, ktoré Math poskytuje.

        Vieme, že platí: 3. odm. z 8 = 8^(1/3). Môžeme teda napísať:

        Klikni pre editáciu
        • Console.WriteLine(Math.Pow(8, (1.0/3.0)))
          
          • Skontroluj, či výstupy programu zodpovedajú predlohe. S inými textami testy neprejdú.

          Tak to by sme mali. Výučba teraz pokračuje nadväzujúcim kurzom Základy objektovo orientovaného programovania vo Visual Basic .NET. Nabudúce si teda predstavíme objektový svet a pochopíme veľa vecí, ktoré nám až doteraz boli utajované :)

          V nasledujúcom cvičení, Riešené úlohy k 11.-12. lekciu VB.NET, si precvičíme nadobudnuté skúsenosti z predchádzajúcich lekcií.


           

          Ako sa ti páči článok?
          Pred uložením hodnotenia, popíš prosím autorovi, čo je zleZnakov 0 z 50-500
          Predchádzajúci článok
          Podmienky vo VB.NET druhýkrát - ternárne výraz a Select Case
          Všetky články v sekcii
          Základné konštrukcie jazyka Visual Basic (VB .NET)
          Preskočiť článok
          (neodporúčame)
          Riešené úlohy k 11.-12. lekciu VB.NET
          Článok pre vás napísal Michal Žůrek - misaz
          Avatar
          Užívateľské hodnotenie:
          Ešte nikto nehodnotil, buď prvý!
          Autor se věnuje tvorbě aplikací pro počítače, mobilní telefony, mikroprocesory a tvorbě webových stránek a webových aplikací. Nejraději programuje ve Visual Basicu a TypeScript. Ovládá HTML, CSS, JavaScript, TypeScript, C# a Visual Basic.
          Aktivity