C# – Math osztály


Itt találhatók a matematikai függvények. Ezek közül is tekintsünk át pár fontos függvényt.

Abs( )

Abszolút értéket képezhetünk vele. A függvény neve előtt meg kell adni a Math osztály nevét is. Itt egy egyszerű példa egész számra.

int szam = -18;
int abs_szam = Math.Abs(szam);

Console.WriteLine(“Az eredeti szám:\t{0}”, szam); //-18
Console.Write(“A szám abszolút értéke:\t{0}”, abs_szam); //18

Ugyanez valós számmal. Figyelem! Tizedes pontot kell írnunk, és nem vesszőt! Az eredményben viszont már tizedes vesszővel jelenik meg a szám.

double szam = -325.6078;
double abs_szam = Math.Abs(szam);

Console.WriteLine(“Az eredeti szám:\t{0}”, szam); //-325,6078
Console.Write(“A szám abszolút értéke:\t{0}”, abs_szam); //325,6078

Sqrt( )

Egy szám négyzetgyökét adja meg. Az alábbi példában egy valós számot látunk, természetesen egész számra is működik. Ha pedig negatív számot adunk meg, akkor annak nincs négyzetgyöke, így azt kapjuk eredményül, hogy NaN!

double szam = 10.5625;
double negyzetgyok = Math.Sqrt(szam);

Console.WriteLine(“Az eredeti szám:\t{0}”, szam); //10,5625
Console.Write(“A szám négyzetgyöke:\t{0}”, negyzetgyok); //3,25

Pow( )

Hatványozásra használható függvény. Két paramétere van: mit emelünk és hanyadik hatványra. A típusnál csak double típust adhatunk meg!

double hatvany_alap = 6;
double hatvany_kitevo = 3;
double hatvany_ertek = Math.Pow(hatvany_alap,hatvany_kitevo);

Console.WriteLine(“A hatvány alapszáma:\t{0}”, hatvany_alap); //6
Console.Write(“A hatványkitevő:\t{0}”, hatvany_kitevo); //3
Console.Write(“\nA hatvány értéke:\t{0}”, hatvany_ertek); //216

Exp( )

Speciális hatványozás! Az Euler-féle szám (e = 2,718281828…) hatványát lehet vele megkapni. Az alábbiakban a 3. hatványát adja meg a függvény.

double szam = 3;
double term_alapszam_hatvanya = Math.Exp(szam);

Console.Write(term_alapszam_hatvanya); //20,0855369231877

Round( )

Számok kerekítésére hsználhatjuk ezt a függvényt. Ha csak azt adjuk meg, hogy melyik számot kerekítse, akkor azt a legkozelebbi egész számra kerekíti. Megadhatjuk azonban azt is, hogy hány tizedes jegyre kerekítsen. Lássunk erre példákat.

double szam = 83.5445678912;
double egeszre_kerekitett = Math.Round(szam);
double negy_jegyre_kerekitett = Math.Round(szam,4);

Console.WriteLine(“Az eredeti szám:\t\t\t{0}”, szam); //83,5445678912
Console.Write(“Az egészre kerekített szám:\t\t{0}”,egeszre_kerekitett); //84
Console.Write(“\nA négy tizedes jegyre kerekített szám:\t{0}”, negy_jegyre_kerekitett); //84,5446

Sin( ), Cos( ), Tan( )

Trigonometrikus függvények. A szög megadásánál vigyázni kell, mert a C# csak radiánban fogadja el a szöget. Nekünk viszont egyszerűbb lenne fokban megadni. A megoldást ismerjük a matematikából, számoljuk át a fokot radiánba! Ehhez a fokban beírt számot szorozzuk meg PI-vel, majd osszuk el a szorzatot 180-al. Így helyes eredményt fogunk kapni.  Ha pedig kotangens értékre is kíváncsiak vagyunk, akkor vegyük a tangens érték reciprokát (szintén tudjuk matematikából). Külön kotangens függvény nincs a Math osztályban. Megjegyzem még, hogy az olyan szögeknél, ahol valamelyik számított érték nulla lenne, vagy azon a helyen nincs értelmezve a függvény, helytelen eredményeket kapunk!! Ilyen szögek például fokban: 0, 90, 180, 270 és 360. A probléma kiküszöbölhető, ha kerekítést is használunk, és a tangens, illetve kotangens függvényeket a matematikából jól ismert osztásokkal számoljuk ki (tan = sin/cos, cot = cos/sin). Lássunk erre néhány példát, itt most 9 tizedes jegyre kerekítettünk. Természetesen, ha átírjuk a 38 fokot másra, akkor is helyesen számolnak a függvények.

double szog_fokban = 38;
double szog_radianban = szog_fokban*Math.PI/180;
double szinusz = Math.Round(Math.Sin(szog_radianban),9);
double koszinusz = Math.Round(Math.Cos(szog_radianban),9);
double tangens = Math.Round(szinusz/koszinusz,9);
double kotangens = Math.Round(koszinusz/szinusz,9);

Console.Write(“A szög szinusza:\t{0}”, szinusz); //0,615661475
Console.Write(“\nA szög koszinusza:\t{0}”, koszinusz); //0,788010753
Console.Write(“\nA szög tangense:\t{0}”, tangens); //0,781285626
Console.Write(“\nA szög kotangense:\t{0}”, kotangens); //1,279941632

Log( ), Log10( )

Egy pozitív szám logaritmusát adják meg ezek a függvények. Az első a természetes alapú (e = 2,718281828…) logaritmust, a másik pedig a 10-es alapú logaritmust. Negatív szám esetén hibaüzenetet kapunk (NaN).

double szam = 48.75;
double logaritmus = Math.Log(szam);
double logaritmus_tizes = Math.Log10(szam);

Console.WriteLine(“A logaritmus alapszáma:\t\t\t\t{0}”, szam); //48,75
Console.WriteLine(“A szám természetes alapú (e) logaritmusa:\t{0}”, logaritmus); //3,88670519744386
Console.Write(“A szám 10-es alapú logaritmusa:\t\t\t{0}”, logaritmus_tizes); //1,68797462003456

PI, E

Ezekkel a konstansokkal ki tudjuk iratni a PI, illetve az Euler-féle állandó értékét.

double pi = Math.PI;
double e = Math.E;

Console.WriteLine(“A PI értéke:\t\t\t{0}”,pi); //3,14159265358979
Console.Write(“Az Euler-féle állandó értéke:\t{0}”,e); //2,71828182845905