Lekce 1.11
Používání proměnných v programu


předchozí lekce (1.10) obsah kurzu následující lekce (1.12)

Jak jsme si již uvedli v dřívějších lekcích, nazývají se hodnoty uložené v paměti proměnné. Je to proto, že jejich hodnoty mohou v programu změnit. V programu musíte každou proměnnou před jejím prvním použitím nejprve pojmenovat, případně definovat typ uložené hodnoty. Velmi zjednodušeně by se dalo napsat, že typ proměnné je buď číslo, znakový řetězec nebo logická hodnota. Pokud systém ví, s jakým typem proměnné má pracovat, je schopen provádět průběžné kontroly hodnot a hlavně zná, jaké místo má určité proměnné v paměti rezervovat.

Co je číslo, ví určitě každý. Číslo však může být pouze celé, případně může obsahovat také desetinnou část. Znakový řetězec představuje seskupení libovolných znaků - písmen. Logická hodnota uchovává výsledky dotazu a může nabývat pouze hodnot pravda nebo nepravda. Základní přehled možných typů proměnných uvádí následující přehled:


INTEGER - celočíselný typ pro celá čísla
REAL    - číslo obsahující desetinnou část
STRING  - řetězec znaků relativně neomezené délky
CHAR    - jeden alfanumerický znak
BOOLEAN - logická proměnná typu  BOOLEAN (True/False)
VARIANT - proměnná s variabilním obsahem (např. číslo, řetězec)
ARRAY   - proměnná strukturovaného typu s indexovým přístupem
Datový typ INTEGER je určen pro celá kladná i záporná čísla. Neobsahuje proto desetinnou část.

Datový typ REAL se používá pro vyjádření hodnot s pohyblivou řádovou čárkou. To znamená že obsahuje desetinnou část čísla. Vzniká matematickým dělením čísla typu integer, jehož výsledkem není celé číslo.

Datový typ CHAR je určen pro uložení jednoho znaku. Znakové konstanty se vyjadřují tak, že se znak uzavře do apostrofů, například 'A', '1', '&'. Zápis '1' v tomto případě znamená znak pro vyjádření číslice jedna nikoli číselnou hodnotu.

Datový typ STRING představuje posloupnost znaků typu CHAR bezprostředně za sebou. Vytváří tím tzv. řetězec. Řetězec musí být ohraničen apostrofy nebo dvojitou uvozovkou. Řetězec typu string může mít teoreticky neomezenou délkou. Prakticky je však omezen kapacitou volné paměti. Prověřováno bylo například použití řetězců o délce téměř 3 Mb.

Datový typ BOOLEAN má pouze dvě možné hodnoty a to True (pro stav pravda) a False (pro stav nepravda). Lze mu proto v programu přiřadit buď konkrétní hodnotu True nebo False, případně výsledek vyhodnocení logického výrazu. Logické výrazy najdou uplatnění zejména v podmíněných příkazech, příkazech cyklu apod. a probereme si je v některé z dalších lekcích.

Nejzajímavější je typ VARIANT, který může obsahovat libovolnou proměnou výše uvedeného typu. Kromě již uvedených typů může ale obsahovat i pole proměnných, se kterými je možné provádět jednoduše rozsáhlé výpočty za pomoci indexového přístupu. Všechny proměnné jsou ve skutečnosti vnitřně typu VARIANT, doporučuje se ale zachovat pravidlo rozlišování typu proměnných z důvodu přehlednosti programu a možného pozdějšího důslednějšího vyžadování dodržení používaného typu proměnných.

Proměnná typy ARRAY představuje datovou strukturu položek, které se vzájemně odlišují pomocí indexu. Jako index pole slouží hodnoty určitého typu, který nazýváme typem indexu pole a který je spolu s typem složek pole stanoven popisem typu pole. Počet složek pole je dán až dále v programu při inicializaci pole.

Výše uvedený seznam typů proměnných slouží pouze jako přehled možných hodnot. Ve skutečnosti jsou všechny proměnné v jazyce BONANZA zpracovávány jako typ VARIANT. To znamená, že použitý typ proměnné závisí ve skutečnosti na obsahu proměnné. Současně s tím je pro každou proměnnou podle jejího obsahu určena množina možných operací s obsahem proměnné. Není například možné sčítat číselnou proměnnou s řetězcovou proměnnou.

Proměnné v jazyce BONANZA nemusí být v programu na rozdíl od jiných jazyků povinně deklarovány. To znamená, že nemusí být před svým použitím uvedeny v seznamu používaných proměnných. Přesto je možné pro zvýšení přehlednosti programu proměnné deklarovat pomocí příkazu Dim. Proměnná je deklarována automaticky při svém prvním použití. Pokud však vyžadujete povinnou deklaraci proměnných je možné použít v prvním řádku programu příkaz Option Explicit, díky kterému bude v programu vyžadována povinná deklarace proměnných.

Hodnotu proměnné stanovíme jejím přiřazením. To se provede pomocí znaku rovná se (=). Na levé straně od rovnítka je přitom uvedena proměnná, jejíž hodnota má být změněna a na straně pravé je uvedena přiřazovaná hodnota. Hodnotu můžeme uvést buď přímo (číslo, řetězec) nebo jako výraz. Co je to výraz si přesněji probereme v dalších lekcích. Nyní bude stačit, pokud si budete pamatovat, že výraz může být například matematický výpočet.

Deklarovaná proměnná má ihned po deklaraci vždy nulový, číselný obsah. Až po přiřazení konkrétní hodnoty se vnitřně její typ mění podle zadaného obsahu. Přiřadíte-li proměnné řetězec, bude obsahovat alfanumerické znaky. Po dosazení číselné hodnoty bude proměnná buď typu Integer (celé číslo) nebo Real (číslo s desetinami). Systém BONANZA si takto sám zajišťuje vnitřní reprezentaci proměnných. Vy sami budete muset pouze zajistit to, aby jste neprováděli například matematický výpočet dělení s řetězcovou proměnnou.

Dosud jsme sestavovali naše programy tak, že vykonávaly pouze zadanou posloupnost akcí bez možnosti vynechání některých akcí. V následující lekci se proto seznámíme s možností rozdělení činnosti programu na základě vyhodnocení zadané podmínky.


předchozí lekce (1.10) obsah kurzu následující lekce (1.12)

OZOGAN, 1 Máje 97, 460 01 Liberec
tel.,fax: (048) 52 28 338, e-mail: info@ozogan.cz