Programovánà v C# prakticky - 1.dÃl - Úvod
V tomto seriálu nebudu probírat nic jiného, než praktické pÅ™íklady (nebo jejich urÄitÄ› úryvky) na využití specifického prvku v jazyku C#. Cílem je ÄtenáÅ™e seznámit s tím, jak daný problém v jeho možnostech vyÅ™ešit co nejefektivnÄ›ji. Dále, aby si sám vyzkoušel použít znalosti nabyté pÅ™i studiu jazyka.
Úvod
Vítám vás u prvního Älánku našeho seriálu o programování aplikací v jazyce C#. V každém díle této série Älánků si pÅ™edstavíme pár praktických problémů, nebo i celých aplikací a následnÄ› si pÅ™edvedeme, jak je Å™ešit.Důežité je také Å™íci, že pro aplikace, které budeme vyvíjet, budeme využít WinForms. Pokud s práci s nimi namáte zkušenosti, nemusíte zoufat, nÄ›co bude vysvÄ›tleno v růbÄ›hu Älánku a zbytek padne v seriálu o jazyku C#, který chystáme zde na webu zaÄít zveÅ™ejňovat.
Co budu potřebovat
Všechno, co budete potÅ™ebovat máte z 95% v hlavÄ›. TÄ›ch zbylých pár procent je vývojové prostÅ™edí - Visual Studio (nebo Visual C# express edition) a pÅ™ístup k internetu.Co se znalostí týÄe, budu uvádÄ›t pÅ™íklady z takové oblasti a tak nároÄné, aby je byl schopen vyÅ™ešit žák základní školy. HodnÄ› Äasto budu navazovat na nÄ›jaký matematický aparát, ale nedÄ›ste se, protože v takovém pÅ™ípadÄ› vždy vysvÄ›tlím samotnou podstatu vyžadovaného algorytmu, který budeme systavovat.
Pokud je vše jasné a pÅ™ipravené, s chutí do toho...
ZaÄínáme
První pÅ™íklad bude na jednoduchou práci s textovým polem a na prác s textem. Na formuláÅ™i budeme mít umístÄ›ná dvÄ› textová pole, pÅ™iÄemž do prvního budeme oÄekávat jakékoli jméno a do druhého pole pÅ™íjmení. Po kliknutí na nÄ›jaké tlaÄítko se do textového popisku, který nÄ›jak zvýrazníme, vypíšou iniciály získané ze jmen v textovým polích.
VytvoÅ™ení algorytmu
Jelikož informací, s kterými budeme racovat, nebude obravské množství (resp. jsou to dva údaje - jméno, pÅ™íjmení), můžeme je reprezentovat s pomocí obyÄejných promÄ›nných. V prvé Å™adÄ› si tedy definujeme promÄ›né (napÅ™.) jmeno a prijmeni, do kterých pÅ™i stisku tlaÄítka uložíme textové informace o jménu a pÅ™íjmení.
V dalším kroku získáme první znak (budeme poítat s tím, že uživatel zadal informace svÄ›domitÄ›) z každé promÄ›nné. Tento znak potom pÅ™evedeme na velké písmeno a to i v pÅ™ípadÄ›, že již velké písmeno bylo, žádný vliv to mít nebude. V poslední fázi tento text vypíšeme do komponenty Label.
Získání prvního znaku můžeme provést více způsoby. BuÄ pÅ™evedeme stringovou promÄ›nnou na pole znaků a první znak získáme pod indexem 0.
// Definice promÄ›nných string jmeno, prijmeni // Získání informací o jménÄ› z textových polí jmeno = textBox1.Text; prijmeni = textBox2.Text; //Vypsání výsledku string vysledek = jmeno[0].ToString().ToUpper() + prijmeni[0].ToSt ring().ToUpper()
Druhý způsob a urÄitÄ› zdaleka ne ten poslední je využitít funkce SubString(), která oÄekává dva parametry. První je index znaku, od kterého zaÄneme Äíst a druhý je poÄet znaků, který potÅ™ebujeme vytáhnout. Výsledný kód bude prakticky totožný s kódem výše, až na poslední Å™ádek.
//Vypsání výsledku string vysledek = jmeno.SubString(0, 1) + prijmeni.SubString(0, 1);
Tento výsledek potom jednoduše pÅ™edáte jako obsah pro váš Label, aby uživatel výsledek vidÄ›l.
VýpoÄet faktoriálu
Další aplikace, kterou si udÄ›láme, bude program pro výpoÄet pÅ™ibližné hodnoty funkce faktoriál.
Tuto hodnotu budeme poÄítat s pomocí Stirlingova vzorce.
Sestavení programu
Uživatelské rozhraní bude opÄ›t velice jednoduché. Bude tvoÅ™eno jedním textovým polem, tlaÄítkem a popiskem, do kterého budeme vypisovat výsledek. Algorytmus bude vypadat následovnÄ›. Od uživatele zjistíme Äíslo, pro které chce použít faktoriál (pozn.: Äíslo musí být z množiny N) a po stisku na tlaÄítko zobrazíme v popisku výsledek.
Sestavit zadaný výraz programovÄ› pro nás nebude problém, protože v .NET Frameworku jsou pÅ™ipravené základní matematické konstanty a funkce. Všechny jsou k nalezení ve tÅ™ídÄ› Math.
Níže můžete vidÄ›t jednotlivé metody, které budeme pÅ™i sestavování výrazu používat.
- OdmocnÄ›ní - Math.Sqrt(n), kde n je Äíslo, které chceme odmocnit
- UmocnÄ›ní - Math.Pow(n, e), kde e je exponent, na který Äíslo n chceme povýšit
- Eulerovo Äíslo (e) - Math.E
- Ludolfovo Äíslo (pí) - Math.PI
// Hodnota získaná od uživatele int n; // VýpoÄet faktoriálu double vysledek = Math.Sqrt(2 * Math.PI * n) * Math.Pow(n / Math.E, n);
Pokud si aplikaci vyzkoušíte, vydíme samozÅ™ejmÄ›, že funguje, ale také si povšimneme, že nám v aplikaci .NET sám doplňuje semilogarytmický výsledku.
ZávÄ›r
To je k tomuto dílu vše. V dalším díle se budeme vÄ›novat pÅ™íkladům na rozhodovací struktury. Tedy Äekají nás aplikace na výpoÄet koÅ™enů kvadratické rovnice a na výpoÄet hodnoty funkce tangens.