Lekce 2: Proměnné a datové typy – Práce s daty v C#

V předchozí lekci jsme si představili základní pojmy programovacího jazyka C# a platformy .NET. V této lekci se zaměříme na jeden z nejdůležitějších aspektů programování – proměnné a datové typy. Tyto koncepty jsou základem každého programu, protože umožňují práci s daty, jejich uchovávání a manipulaci. Pochopení proměnných a datových typů je klíčové pro vytváření efektivních a správných aplikací.
Co jsou proměnné?
Proměnné jsou pojmenované oblasti paměti, do kterých můžeme ukládat hodnoty, které potřebujeme během běhu programu. Proměnné můžeme přirovnat k „kontejnerům“, do kterých ukládáme různé typy informací, abychom je mohli později použít nebo s nimi manipulovat. Každá proměnná v C# má dva hlavní atributy: datový typ a název.
- Datový typ: Určuje, jaký typ informací může proměnná uchovávat (například čísla, texty nebo hodnoty true/false).
- Název: Identifikuje proměnnou, aby bylo možné k ní přistupovat během programu. Název proměnné musí být jedinečný a musí splňovat určitá pravidla (např. nesmí začínat číslem).
Pro deklaraci proměnné v C# používáme jednoduchou syntaxi:
datový_typ název_proměnné;
Pokud bychom například chtěli vytvořit proměnnou pro uložení věku uživatele, můžeme napsat:
int vek;
Iniciace proměnných
Po deklaraci proměnné můžeme do ní uložit hodnotu pomocí operátoru = (rovná se). Tomu říkáme inicializace proměnné. Proměnnou můžeme inicializovat při jejím vytvoření nebo později v programu.
Příklad:
int vek = 30; // Iniciace při deklaraci
Nebo:
int vek;
vek = 30; // Iniciace později
Jakmile je proměnná inicializována, můžeme s ní v programu dále pracovat, například ji použít v matematických operacích nebo ji zobrazit uživateli.
Datové typy v C
V C# existuje několik různých datových typů, které definují, jaký druh dat může být uložen v proměnné. Tyto typy jsou rozděleny do dvou hlavních kategorií: primitivní typy a složené typy.
Primitivní (jednoduché) datové typy
Primitivní datové typy jsou základní datové typy, které jsou přímo podporovány jazykem C#. Patří mezi ně:
- Celá čísla (integer types):
int
: Uchovává celá čísla v rozsahu od -2,147,483,648 do 2,147,483,647. Používá se pro většinu běžných číselných výpočtů.long
: Uchovává větší celá čísla nežint
(v rozsahu od -9,223,372,036,854,775,808 do 9,223,372,036,854,775,807).short
: Uchovává menší celá čísla nežint
(v rozsahu od -32,768 do 32,767).byte
: Uchovává velmi malá čísla (v rozsahu od 0 do 255).
- Desetinná čísla (floating-point types):
float
: Uchovává desetinná čísla s menší přesností (7 číslic). Používá se, pokud je potřeba pracovat s menšími daty, kde není vyžadována vysoká přesnost.double
: Uchovává desetinná čísla s větší přesností (15-16 číslic). Nejčastěji používaný typ pro práci s reálnými čísly.decimal
: Uchovává desetinná čísla s velmi vysokou přesností (28-29 číslic), což je ideální pro finanční výpočty.
- Znakové a textové typy:
char
: Uchovává jediný znak (např. ‚A‘, ‚5‘ nebo ‚!‘).string
: Uchovává řetězec znaků (např. „Ahoj svět!“). Je to nejpoužívanější typ pro práci s textem v C#.
- Logické hodnoty (boolean types):
bool
: Uchovává logickou hodnotutrue
nebofalse
. Používá se pro podmíněné rozhodování (např. zda je nějaká podmínka splněna).
Složené (komplexní) datové typy
Kromě primitivních typů existují v C# složené typy, které umožňují pracovat s více hodnotami nebo složitějšími datovými strukturami.
- Pole (arrays): Umožňují uchovávat více hodnot stejného typu v jedné proměnné. Například pole čísel může obsahovat více hodnot typu
int
.
int[] cisla = { 1, 2, 3, 4, 5 };
- Struktury (structs): Umožňují definovat nové datové typy, které seskupují různé hodnoty.
- Třídy (classes): Základní stavební bloky objektově orientovaného programování. Třídy umožňují definovat komplexní typy s vlastnostmi a metodami.
Konverze datových typů
V praxi často potřebujeme převádět data mezi různými typy. Například chceme převést číslo na text nebo text na číslo. C# nabízí několik způsobů, jak konverzi mezi typy provést.
- Implicitní konverze: Automatická konverze, která probíhá, pokud nehrozí ztráta informací. Například z typu
int
nalong
:
int vek = 30;
long velkeCislo = vek; // Implicitní konverze z int na long
- Explicitní konverze (přetypování): Pokud hrozí ztráta informací, musíme konverzi provést explicitně, což znamená, že musíme sami říct programu, aby změnu provedl:
double desCislo = 9.78;
int celaCisla = (int)desCislo; // Explicitní přetypování z double na int (ztráta desetinných míst)
- Metody pro konverzi: C# obsahuje také metody pro převod mezi typy, například:
string cisloJakoText = "123";
int cislo = Convert.ToInt32(cisloJakoText); // Převod textu na celé číslo
Konstanty
Někdy potřebujeme uložit hodnotu, která se během běhu programu nikdy nezmění. Pro tyto případy můžeme použít konstanty. Konstanty jsou proměnné, jejichž hodnota je pevně stanovena při deklaraci a nelze ji změnit. V C# se konstanta deklaruje pomocí klíčového slova const
.
Příklad:
const double Pi = 3.14159;
Pokud se pokusíme změnit hodnotu konstanty Pi
, program nám ohlásí chybu, protože konstanty jsou neměnné.
Závěr
V této lekci jsme si vysvětlili, jak proměnné a datové typy fungují v programovacím jazyce C#. Proměnné nám umožňují ukládat a manipulovat s daty během běhu programu, zatímco datové typy určují, jaký druh informací můžeme v proměnné uchovávat. Naučili jsme se také základní typy proměnných, jako jsou celá čísla, desetinná čísla, texty a logické hodnoty, a uvedli jsme si způsoby, jak převádět data mezi různými typy.
Správné pochopení proměnných a datových typů je zásadní pro efektivní psaní kódu a vytváření stabilních aplikací. V následujících lekcích se podíváme na složitější operace a principy, které