Co je proměnná
Proměnná je místo vyhrazené v paměti, které si pojmenujeme a můžeme do něj vkládat určitá data nebo je číst. Jak takovou proměnnou vytvořit? Stačí napsat typ proměnné a její název a ukončit středníkem.
V praxi deklarace proměnné vypadá takto: int cislo;
Klíčové slovo int je jen zkrácený zápis skutečného typu System.Int32, který je určen pro ukládání celých čísel. Datový typ určuje, kolik paměti se má pro data vyhradit, a zároveň určuje, o jaký typ dat půjde tzn. do proměnné typu Int32 text neuložíte. Slovo cislo je pak název naší proměnné. Název proměnné může obsahovat čísla, písmena a podtržítko, nesmí začínat číslem.
V C# záleží na velikosti písmen v názvech, tudíž můžete mít vedle sebe proměnné s názvem Cislo a cislo. Deklarace proměnné je příkaz, jako každý jiný, tudíž se ukončuje středníkem.
Samotná proměná by nám byla k ničemu, a proto si do ní vložíme nějaká data. Konstrukce cislo = 6; přiřadí do proměnné cislo hodnotu 6. Pokud v proměnné nějaká hodnota již byla, bude přepsána.
Do proměnné cislo jsme uložili číslo v tomto případě šestku. Celé se to dá napsat jako jeden příkaz: int cislo = 6; Tím proměnnou rovnou nadeklarujeme a naplníme daty.
Přehled nejzákladnějších datových typů
Datový typ | Použití | Rozsah | Konverzní funkce |
int | Celá čísla | -2147483648 až 2147483647 | Convert.ToInt16(hodnota); Convert.ToInt32(hodnota); Convert.ToInt64(hodnota); |
string | Text | 2147483648 | Convert.ToString(hodnota); hodnota.ToString; |
bool | Ano / Ne | true nebo false | Convert.ToBoolean(hodnota); |
double | Desetinná čísla | cca 15 platných číslic | Convert.ToDouble(hodnota); |
Konverzní funkce slouží k převedení typu proměnné na nějaký jiný konkrétní typ. Uvedu příklad:
string text = textBox1.Text;
double cislo = Convert.ToDouble(text);
Máme proměnnou text typu string, do proměnné uložíme obsah komponenty TextBox (uživatel musí zadat do TextBoxu číslo, tento postup můžeme využít např. při tvorbě kalkulačky).
Dále zde máme proměnou cislo typu double. Tuto proměnou použijeme jako úložiště převedené hodnoty.
Pokud jsou čísla uloženy v proměnné typu string nelze s nimi provádět početní operace, řekneme si proč.
string cislo;
string cislo2;
cislo = "5";
cislo2 = "6" ;
textBox1.Text = cislo + cislo2;
V kódu máme dvě proměnné cislo a cislo2, obě proměnné jsou typu string. Do cislo uložíme číslo 5 a do cislo2 číslo 6. Tím, že dáme součet těchto dvou proměnných, nedosáhneme výsledku 11, ale čísla 56. Je tomu tak proto, že operátorem + se k sobě také připojují textové řetězce. Aby fungoval jako sčítání, je nutné používat ho na číselné datové typy.
Pokud bychom chtěli čísla v proměnných cislo a cislo2 sečíst, museli bychom je nejprve převést na nějaký číselný typ, tj. double (desetinné číslo) nebo int (celé číslo).
int a = Convert.ToInt32(cislo);
int b = Convert.ToInt32(cislo2);
int vysledek = a + b;
textBox1.Text = Convert.ToString(vysledek);
Jak je vidět z příkladu, text na hodnotu int můžeme převést funkcí Convert.ToInt32. Protože vlastnost Text komponenty textBox1 je opět typu string, nelze do ní přiřadit přímo proměnnou vysledek, protože ta je vypu int. Musíme tedy číslo funkcí Convert.ToString převést.
Převést cokoliv (nejen číslo) na string jde také přímo tak, že na tom zavoláme funkci ToString.
textBox1.Text = vysledek.ToString();
Celý předchozí kód by se dal sepsat na jeden řádek bez pomocných proměnných, například takto:
textBox1.Text = (Convert.ToInt32(cislo) + Convert.ToInt32(cislo2)).ToString();
Všimněte si, že jsme výraz Convert.ToInt32(cislo) + Convert.ToInt32(cislo2) dali celý do závorky a za tuto závorku jsme dali .ToString(). Šlo by také tento výraz předat jako parametr do funkce Convert.ToString:
textBox1.Text = Convert.ToString(Convert.ToInt32(cislo) + Convert.ToInt32(cislo2));
Takto spojené výrazy mohou ale být dost složité a nepřehledné, takže je lepší řešit to přes novou proměnnou, do které dáme mezivýsledek.
Spojování řetězců
Operátor + neslouží pouze k aritmetickým operacím, ale lze s ním i spojovat textové řetězce, jak jsme si již řekli v předchozí ukázce.
string text = "Vítejte na ";
MessageBox.Show(text + "www.vbnet.cz");
Pokud tento kód dáme do procedury události nějakého tlačítka, zobrazí se nám text Vítejte na www.vbnet.cz.
Dostupnost proměnné
Při programování přesně záleží, kde danou proměnnou nadeklarujeme. Dle těchto kritérií rozlišujeme lokální proměnné a členské proměnné.
Lokální proměnná se deklaruje vždy v nějaké metodě, kde ji zrovna potřebujeme.
Tato proměnná se dá používat pouze v té metodě, kde byla nadeklarována. Proměnná se vytvoří vždy, když je metoda zavolána. Platnost této proměnné končí po provedení všech příkazů v metodě, jakmile tedy metoda skončí, proměnná zanikne.
Členská proměnná musí být deklarována uvnitř třídy nebo struktury (co to je si vysvětlíme v dalších dílech). Pro teď nám stačí vědět, že vše, co je uvnitř bloku class Form1 { } je třída a pokud uvnitř tohoto bloku nadeklarujeme proměnnou, bude platit pro celý náš formulář. Tato proměnná se vytvoří při vytvoření formuláře a zanikne po jeho zavření.
Aritmetické operátory
V jazyce C# lze využívat aritmetické operátory, pomocí nichž provádíme základní početní operace. Nyní si ukážeme o které jde.
Operátor
|
Funkce
|
Příklad
|
+
|
sčítání
|
4 + 5 = 9
|
-
|
odčítání
|
4 – 5 = -1
|
*
|
násobení
|
4 * 5 = 20
|
/
|
dělení
|
4 / 5 = 0.8
|
%
|
zbytek po dělení
|
12 % 7 = 5
|
První čtyři operátory jsou myslím jasné, jediná odlišnost od normální matematiky, kterou známe, je použití hvězdičky pro násobení a lomítka pro dělení. Zastavíme se u operátoru % (říká se mu modulo), díky tomuto operátoru se dostaneme ke zbytku po dělení. Například číslo 12 / 7 = 1, zbytek činí číslo 5. Tím pádem 12 % 7 = 5.
Kalkulačka se základními funkcemi
Nyní, když umíme pracovat s proměnnými, si ukážeme, jak napsat jednoduchou kalkulačku. Zapněme si tedy vývojové prostředí C# a vytvořte nový projekt Windows Forms Application. Na formulář přidáme 3 textová pole (komponenta TextBox) a 5 tlačítek (komponenta Button). Poslednímu textovému poli (textBox3) nastavme v okně vlastností vlastnost ReadOnly na True.
Tímto krokem zamezíme uživateli vkládat data do textBoxu3, protože do tohoto pole budeme vypisovat výsledek. U komponent Button změňme vlastnost Text tak, aby v ní nic nebylo.
Náš program bude fungovat tak, že do polí textBox1 a textBox2 uživatel napíše nějaké číslo a následně klikne na tlačítko s požadovanou operací. Do komponenty textBox3 se nám vypíše výsledek.
Sčítání
Nyní dvakrát klepněte na tlačítko se znaménkem +. Zobrazí se nám okno s kódem, do kterého napíšeme, co se stane, když uživatel klepne na toto tlačítko. Jak jsem již zmínil, do textBox1 a textBox2 se budou vkládat čísla. Jenomže komponenta textBox pracuje s typem string (textové řetězce). Jak jsme si již řekli, pokud chceme využívat matematiku v programech, musíme použít typ proměnné Int32 nebo double. Musíme použít konverzní funkce, převedeme typ string na double a při vypisování výsledku zase zpět z double na string.
double a = Convert.ToDouble(textBox1.Text);
double b = Convert.ToDouble(textBox2.Text);
double c = a + b;
textBox3.Text = Convert.ToString(c);
Vytvořili jsme tedy dvě proměnné a a b, do kterých ukládáme převedený obsah z textBoxů. Proměnná c obsahuje součet proměnných a a b. Na posledním řádku převádíme výsledek z typu double na string, protože textBox pracuje pouze s typem string.
Tímto jsme vyřešili sčítaní. Odčítaní a další funkce jsou obdobné, stačí vždy vytvořit událostní proceduru tlačítka a vložit do ní kód se změněným znaménkem. Můžete je tedy snadno dopsat sami. Můžete si vyzkoušet, co se stane, když zkusíme vydělit nulou.
Závěrem
V příštím díle si řekneme, co jsou to podmínky.