Cvičenie 2 - Dátové typy
V predchádzajúcom cvičení, Cvičenie 1 - Spájanie textu, sme si precvičili získané skúsenosti z predchádzajúcich lekcií.
Zdravím Vás u ďalšieho Cvičenie, kde si ukážeme prácu s celými číslami a tiež si objasníme aký typ údajov použiť a následne ako ho využiť pri programovaní aplikácie.
Základné dátové typy
Dátový typ definuje v programovaní druh alebo význam hodnôt, ktorých môže nadobúdať premenná (alebo konštanta).
Je nutné si uvedomiť, že počítačové spracovanie dát rozlišuje medzi textom a číslom. Ak zadáte číslo do textového poľa, program ho považuje za text. Z matematických operácií sa text môže len sčítať, takže pokus vynásobiť jeden text druhým skončí chybou.
»Vytvorenie celočíselného dátového typu
V tomto príklade si vytvoríme dátový typ integer (celočíselný), ktorý si pomenujeme cislo. Ďalším riadkom je naplnenie premenné cislo a to číslom 25. A posledný riadok vypíše cislo do labelu (popisku) Vysledok. Teda po stlačení tlačidla Vypis sa zobrazí v labelu číslo 25.
Komponenty:
- 1x Button (Vypis)
- 1x Label (Vysledok)
Zdrojový kód:
private void Vypis_Click(object sender, EventArgs e) { int cislo; cislo = 25; Vysledek.Text = cislo.ToString(); }
.ToString () - Metóda, ktorá prevádza číslo na text.
cislo je premenná, rovnako ako v matematike x alebo y. Premenná znamená, že môže obsahovať rôzne hodnoty, a tie sa môžu v priebehu práce s programom meniť. Rôzne neznamená akékoľvek. Naša premenná má priradené kľúčové slovo int, čo znamená, že môže obsahovať iba celé čísla.
»Vstup čísla do premennej + matematické operácie
Táto aplikácia podobná ako tá predchádzajúca len s jedným rozdielom, že používateľ definuje svoje číslo pomocou textového poľa.
Komponenty:
- 1x Button (Vypocet)
- 2x TextBox (pocetKusu, cenaKus)
- 1x Label (Vysledok)
Zdrojový kód:
private void Vypocet_Click(object sender, EventArgs e) { int vypocet; vypocet = int.Parse(pocetKusu.Text) * int.Parse(cenaKus.Text); Vysledek.Text = "Celková cena je " + vypocet + " ,-Kč"; }
int.Parse (String) - je popis funkcie, ktorá prevádza text na celé číslo. String je textový reťazec, zatiaľ sme používali len označenie text. Pokiaľ chcete použiť funkciu int.Parse, nesmiete zabudnúť do okrúhlych zátvoriek zapísať názov premennej, v ktorej je uložený text, prevádzaný na číslo.
»Pre zvedavé
Ak sa vám podarila aplikácie vytvoriť a je funkčný, predsa to má jeden háčik. Ak vyplníme obe polia (pocetKusu, cenaKus) tak aplikácie vynásobí obe čísla a výsledok zobrazí v labelu Vysledok. Ale čo sa stane keď používateľ nevyplní ani jedno pole a alebo len jedno? Bohužiaľ aplikácie spadne. Tejto udalosti sa môžeme vyhnúť viacerými spôsobmi, ale dočasným najideálnejším riešením budú podmienky a nova funkcia int.TryParse.
Int.TryParse - je popis funkcie, ktorá sa pokúša previesť text na celé číslo. Do okrúhlych zátvoriek zapisujte zdroj textu. V našom prípade to sú 2 textové polia. Do zátvoriek nesmieme zabudnúť výstup (out) po prevedení (out nazev_promenne_typu_int)
Zdrojový kód:
//Vytvoření proměnných typu int (pk = počet kusů; ck = cena za kus) int pk, ck; //Vytvoření logického typu vstup1 a funkce TryParse pro pk bool vstup1 = int.TryParse(pocetKusu.Text, out pk); //Vytvoření logického typu vstup2 a funkce TryParse pro ck bool vstup2 = int.TryParse(cenaKus.Text, out ck); //Vytvoří podmínku pro textové pole pocetKusu. Když bude v textovém poli něco jiného než celé číslo a nebo když v poli nebude nic, tak se vypíše hláška resp. MessageBox. if (!vstup1) { MessageBox.Show("Nezadali jste číslo nebo číslo je ve špatném formátu !"); } //Vytvoří podmínku pro textové pole cenaKus. if (!vstup2) { MessageBox.Show("Nezadali jste číslo nebo číslo je ve špatném formátu !"); } //Pokud budou vyplněna všechna pole a v polích bude celé číslo, tak se přeskočí předchozí podmínky a vykoná se část zdrojového kódu v sekci else. else { int vypocet; vypocet = pk * ck; Vysledek.Text = "Celková cena je " + vypocet + " ,-Kč"; }
Ak by sme chceli, aby do textových polí išli zadávať aj čísla s desatinným rozvojom, potom stačí namiesto int vložiť double. Tiež potom nesmieme zabudnúť zmeniť dátový typ u funkcií int.TryParse.
Zdrojový kód:
double pk, ck; bool vstup1 = double.TryParse(pocetKusu.Text, out pk); bool vstup2 = double.TryParse(cenaKus.Text, out ck); if (!vstup1) { MessageBox.Show("Nezadali jste číslo nebo číslo je ve špatném formátu !"); } if (!vstup2) { MessageBox.Show("Nezadali jste číslo nebo číslo je ve špatném formátu !"); } else { double vypocet; vypocet = pk * ck; Vysledek.Text = "Celková cena je " + vypocet + " ,-Kč"; }
Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 272x (1.5 MB)
Aplikácia je vrátane zdrojových kódov v jazyku C#
Na absolvovanie tohto cvičenia prosím splň všetky príklady tým, že ich úspešne odovzdáš na otestovanie.