Cvičení 2 - Datové typy

C# .NET Windows Forms Cvičení 2 - Datové typy

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).

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.

» 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)
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)
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.

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č";
}

 

Stáhnout

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

 

  Aktivity (1)

Článek pro vás napsal JoohnnyCZ
Avatar

Jak se ti líbí článek?
Celkem (2 hlasů) :
4444 4


 


Miniatura
Předchozí článek
Cvičení 1 - Spojování textu
Miniatura
Všechny články v sekci
Okenní aplikace v C#
Miniatura
Následující článek
8 dam Windows .NET aplikace

 

 

Komentáře

Avatar
Michal Štěpánek:

Pěkné, jen u toho prvního obrázku ten komentář pod čarou --> Pokud-li máte... to je dost ukrutný :-)

Odpovědět  +2 1.5.2014 19:15
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.