VÝUKOVÝ MATERIÁL Identifikační údaje školy
Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Anotace Vytvořeno Určeno pro Přílohy
Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 CZ.1.07/1.5.00/34.1076 Pro vzdělanější Šluknovsko 32 – Inovace a zkvalitnění výuky prostřednictvím ICT 0207 Mgr. Bc. Jan Škoda Programování VY_32_INOVACE_0207_0319 Visual C# Žák si upevní učivo o matematických funkcích v programovacím jazyce Visual C# 27. 7. 2013 3. ročník oboru Informační technologie Bez příloh
Metodický list • Učitel: • Výklad s projekcí elektronického učebního materiálu. • Ukázka obecného postupu činností. • Monitorování činnosti žáků.
• Žák: • Sleduje výkladovou projekci a demonstraci učitele. • Procvičuje.
Visual C# Matematické funkce
Matematické funkce a konstanty • Jako většina programovacích jazyků i C# poskytuje prostředky pro běžné matematické operace. • Jsou jimi funkce obsažené ve třídě Math. • Poskytuje statické metody pro trigonometrické, logaritmické a další běžné matematické funkce. • V této třídě najdeme kromě funkcí také běžné matematické konstanty e nebo π.
Příklad • Na úvod se podívejme se na program, který používá metodu Math.Sin. • Tato metoda vrátí sinus zadaného úhlu v radiánech. • Tímto způsobem lze použít většinu matematických metod. • Příklad: double sin = Math.Sin(2.5); Console.WriteLine(sin); • Výstup 0.598472144103957
Radiány a stupně • Někdy potřebuje převádět ze stupňů na radiány a naopak. • Převody najdeme v následujících dvou funkcích: private double StupneNaRadiany(double uhel) { return Math.PI * uhel / 180.0; } private double RadianyNaStupne(double uhel) { return uhel * (180.0 / Math.PI); }
N-tá odmocnina čísla • Následující příklad ukazuje n-tou odmocninu čísla:
double Odmocni(double cislo, double n) { if (exp == 0) return 1; exp = 1 / exp; return Math.Pow(cislo, exp); }
Vygenerování náhodného čísla • Pokud chceme vytvořit pseudonáhodné celé číslo, použijeme přetíženou metodu Next třídy System.Random. • Jako argument očekává čísla typu int představující spodní a horní hranici zvýšenou o 1. • Toto číslo by mělo být o 1 větší než námi požadovaná vrchní hranice intervalu. • Příklad:
Random r = new Random(); int spodniHranice = 4; int horniHranice = 20; double nahodneCislo = r.Next(spodniHranice,horniHranice + 1);
Desetinná část čísla • Chceme-li získat desetinnou část určitého čísla, nejprve zaokrouhlíme metodou Floor třídy System.Math. • Toto číslo dolů a následně jej odečteme od původního čísla. • Příklad: double cislo = 3.14159; double desCast = cislo - Math.Floor(cislo); Console.WriteLine(„Desetinná část čísla {0} je {1}“, cislo, desCast);
Čas • Chceme-li převést čas v sekundách na minuty, hodiny či dny, vytvoříme pomocí metody FromSeconds novou instanci struktury TimeSpan, která bude obsahovat potřebné vlastnosti: int sekundy = 36523; TimeSpan ts = TimeSpan.FromSeconds(sekundy); Console.WriteLine(„{0} sekund je {1} dní, {2} hodin, {3} minut a {4} sekund“, sekundy, ts.Days,ts.Hours, ts.Minutes, ts.Seconds); • Výstup: 36523 sekund je 1 dní, 10 hodin, 8 minut a 43 sekund
Přehled funkcí Metoda
Význam
Abs()
absolutní hodnota
Atan()
arkustangens
Ceiling()
nejbližší vyšší celé číslo
Exp()
ex
Log()
přirozený logaritmus
Min()
menší ze dvou čísel
Sqrt()
druhá odmocnina
Tanh()
hyperbolický tangens
Zdroj: Math - třída. Microsoft Developer Network [online]. 2013 [cit. 2013-07-23]. Dostupné z: http://msdn.microsoft.com/cs-cz/library/system.math.aspx.
Přehled funkcí Metoda
Význam
Asin()
arkussinus
Atan2
arkustangens podílu
Cos()
kosinus
Floor()
celá část čísla
Max()
větší ze dvou čísel
Sin()
sinus
Tan()
tangens
Round()
zaokrouhlení
Zdroj: Math - třída. Microsoft Developer Network [online]. 2013 [cit. 2013-07-23]. Dostupné z: http://msdn.microsoft.com/cs-cz/library/system.math.aspx.
Zdroje • BĚHÁLEK, Marek. Programovací jazyk C# [online]. 2007, 134 s. [cit. 2013-07-23]. Dostupné z: http://www.cs.vsb.cz/behalek/vyuka/pcsharp/text.pdf. • Math - třída. Microsoft Developer Network [online]. 2013 [cit. 2013-07-23]. Dostupné z: http://msdn.microsoft.com/cs-cz/library/system.math.aspx.
• PEŇAŠKA, Jaroslav. Malý úvod do programování v .NET C# [online]. 2006, 64 s. Dostupné z: http://physics.ujep.cz/~jkrejci/vyuka/prg2/MalyUvodDoCsharp.pdf. • Projekty SIPVZ Gymnázia Olomouc-Hejčín 2005/2006. KOVÁŘ, Dušan. Programování se zaměřením na .NET a jazyk C#: Programovací jazyk C# [online]. 2006 [cit. 2013-07-23]. Dostupné z: http://projektysipvz.gytool.cz/ ProjektySIPVZ/Default.aspx?uid=3. • PUŠ, Petr. Poznáváme C# a Microsoft .NET. In: O počítačích, IT a internetu Živě.cz [online]. 2004 [cit. 2013-07-23]. Dostupné z: http://possitive.wz.cz/ files/Poznavame_CSharp.pdf. • ŠÍMA, František a David VILÍMEK. Microsoft Visual Studio .NET: praktické programování krok za krokem. 1. vyd. Praha: Grada, 2006, 254 s. Průvodce (Grada). ISBN 80-247-1418-3. • VIRIUS, Miroslav. C# pro zelenáče. Praha: Neocortex, 2002, 255 s. ISBN 80-8633011-7. • VIRIUS, Miroslav. Programování pro .NET. Praha: ČVUT, 2011, 260 s. ISBN 978-8001-04866-4.