IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

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:

Console.WriteLine("Pí: {0}", Math.PI)
Console.WriteLine("e: {0}", Math.E)
Console.ReadKey()

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:

Console.WriteLine(Math.Pow(2, 3))

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

Console.WriteLine(2^3)

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ť:

Console.WriteLine(Math.Pow(8, (1.0/3.0)))

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í.


 

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