Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Cvičení 2 - Datové typy

V předešlém cvičení, Cvičení 1 - Spojování textu, jsme si procvičili nabyté zkušenosti z předchozích lekcí.

Zdravím Vás u dalšího Cvičení, kde si ukážeme práci s celými čísly a také si objasníme jaký datový typ použít a následně jak ho využít při programování aplikace.

Základní datové typy

Datový typ definuje v programování druh nebo význam hodnot, kterých smí nabývat proměnná (nebo konstanta).

Zdrojákoviště C# .NET - Okenní aplikace Windows Forms

Je nutné si uvědomit, že počítačové zpracování dat rozlišuje mezi textem a číslem. Pokud zadáte číslo do textového pole, program jej považuje za text. Z matematických operací se text může jenom sčítat, takže pokus vynásobit jeden text druhým skončí chybou.

Zdrojákoviště C# .NET - Okenní aplikace Windows Forms

» Vytvoření celočíselného datového typu

V tomto příkladě si vytvoříme datový typ integer (celočíselný), který si pojmenujeme cislo. Dalším řádkem je naplnění proměnné cislo a to číslem 25. A poslední řádek vypíše cislo do labelu (popisku) Vysledek. Tudíž po stisknutí tlačítka Vypis se zobrazí v labelu číslo 25.

Komponenty:

  • 1x Button (Vypis)
  • 1x Label (Vysledek)
Zdrojákoviště C# .NET - Okenní aplikace Windows Forms

Zdrojový kód:

private void Vypis_Click(object sender, EventArgs e)
{
   int cislo;
   cislo = 25;

   Vysledek.Text = cislo.ToString();
}

.ToString() – Metoda, která převádí číslo na text.

cislo je proměnná, stejně jako v matematice x nebo y. Proměnná znamená, že může obsahovat různé hodnoty, a ty se mohou v průběhu práce s programem měnit. Různé neznamená jakékoliv. Naše proměnná má přiřazeno klíčové slovo int, což znamená, že může obsahovat pouze celá čísla.

» Vstup čísla do proměnné + matematické operace

Tato aplikace podobná jako ta předchozí jen s jedním rozdílem, že uživatel definuje své číslo pomocí textového pole.

Komponenty:

  • 1x Button (Vypocet)
  • 2x TextBox (pocetKusu, cenaKus)
  • 1x Label (Vysledek)
Zdrojákoviště C# .NET - Okenní aplikace Windows Forms

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 funkce, která převádí text na celé číslo. String je textový řetězec, zatím jsme používali jen označení text. Pokud chcete použít funkci int.Parse, nesmíte zapomenout do kulatých závorek zapsat název proměnné, ve které je uložený text, převáděný na číslo.

» Pro zvídavé

Pokud se vám povedla aplikace vytvořit a je funkční, přece to má jeden háček. Pokud vyplníme obě pole (pocetKusu, cenaKus) tak aplikace vynásobí obě čísla a výsledek zobrazí v labelu Vysledek. Ale co se stane když uživatel nevyplní ani jedno pole a nebo jen jedno? Bohužel aplikace spadne. Této události se můžeme vyhnout více způsoby, ale dočasným nejideálnějším řešením budou podmínky a nova funkce int.TryParse.

Zdrojákoviště C# .NET - Okenní aplikace Windows Forms

Int.TryParse – je popis funkce, která se pokouší převést text na celé číslo. Do kulatých závorek zapisujme zdroj textu. V našem případě to jsou 2 textové pole. Do závorek nesmíme zapomenout výstup (out) po převedení (out nazev_promenne_ty­pu_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č";
}

Pokud bychom chtěli, aby do textových polí šli zadávat i čísla s desetinným rozvojem, pak stačí namísto int vložit double. Také pak nesmíme zapomenout změnit datový typ u funkcí 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č";
}

 

Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 272x (1.5 MB)
Aplikace je včetně zdrojových kódů v jazyce C#

 

K absolvování tohoto cvičení prosím splň všechny příklady tím, že je úspěšně odevzdáš k otestování.

Předchozí článek
Cvičení 1 - Spojování textu
Všechny články v sekci
Zdrojákoviště C# .NET - Okenní aplikace Windows Forms
Článek pro vás napsal JoohnnyCZ
Avatar
Uživatelské hodnocení:
2 hlasů
Aktivity