Častokrát bývá v programech užitečné, abychom si zapamatovali nějaké číselné hodnoty pro pozdější zpracování. Na této stránce se dozvíš, jak číselné údaje ukládat a jak k nim přistupovat.
Na začátku si ukážeme jeden motivační příklad -- primitivní program, který sečte dvě čísla.
{nejprve vytvoříme proměnné, které budou použity později}
at $cislo1 je cele; {proměnná s názvem $cislo1 je typu celé číslo}
at $cislo2 je cele; {stejně tak proměnná $cislo2}
at $vysledek je cele; {$vysledek je také celočíselná proměnná}
{uživatel zadá dvě čísla, uložíme je do proměnných}
at $cislo1 = cticele ("Zadej cislo 1:");
at $cislo2 = cticele ("Zadej cislo 2:");
{a pak je použijeme}
at $vysledek = $cislo1 + $cislo2;
{nakonec výsledek zobrazíme uživateli}
hodnota $vysledek;
Vytvoř novou proceduru s výše uvedeným kódem a spusť ji. Program se tě
zeptá na dvě čísla a potom vypíše jejich součet. V programu hraje
nejdůležitější roli příkaz at
, který vznikl z českého
slova ať. Je to velmi zvláštní příkaz, protože umí provést tři různé věci
a to, co má provést, pozná podle syntaxe.
Než si ukážeme ony tři způsoby použití příkazu at
, povíme si,
co vlastně je proměnná. Proměnná (toto slůvko se skloňuje
stejně jako např. dovolená) má trochu jiný význam než v matematice --
v programování značí pojmenované místo v paměti. Do proměnné můžeme přiřadit
nějakou číselnou (dokonce nejen číselnou) hodnotu a tuto uloženou hodnotu
můžeme využít -- kdykoliv pak na některém místě v programu napíšeme jméno
proměnné, Želví grafika ze chová tak, jako bychom tam napsali číslo.
Pokud je tedy třeba v proměnné s názvem $a
uložena hodnota
100, příkaz vpred o $a;
bude mít stejný efekt jako příkaz
vpred o 100;
. Jak se může proměnná jmenovat a jak do ní
přiřadit hodnotu? To se dozvíš v následujících odstavcích.
První věc, kterou příkaz at
umí, je vytvoření proměnné.
Syntax příkazu at
je v takovém případě následující:
at název_proměnné je typ;
.
Název proměnné je posloupnost znaků, z nichž první je znak dolar ($) a ostatní
znaky mohou být buď písmena anglické abecedy (tedy bez háčků a čárek) nebo číslice.
Každý programovací jazyk má svá pravidla, co lze použít jako název proměnné.
Želví grafika rozeznává tři typy proměnných: cele
(celé číslo),
desetinne
(desetinné číslo) a logicka
(proměnná
nabývající hodnot ano/ne). Nás budou nyní zajímat pouze první dva typy.
Jakmile je proměnná vytvořená, nelze již měnit její typ ani použít
příkaz at
s výše uvedenou syntaxí s touto proměnnou znovu.
Můžeme však do proměnné přiřadit nějakou hodnotu, což si nyní ukážeme.
Syntax je v takovém případě následující:
at jméno_proměnné = výraz;
.
Příkaz v tomto tvaru přiřadí do proměnné uvedeného názvu hodnotu výrazu
na pravé straně rovnítka. Výrazem se rozumí číslo, jiná proměnná
nebo matematický výraz obsahující operátory sčítání, odčítání, násobení,
dělení, funkce, a tak dále. Ještě o nich bude podrobnější zmínka.
Seznámíme se ještě s jedním příkazem, a to příkazem hodnota
. Syntaxi
má velmi jednoduchou: hodnota výraz
.
Příkaz zobrazí okno s hodnotou výrazu.
Všimněte si jedné důležité věci na uvedeném příkladu -- funkce cticele
.
I slovo funkce je nutno chápat v trochu jiném smyslu než v matematice.
V programování se funkcí rozumí jakási černá skříňka, do níž něco vložíme,
pak se něco zajímavého děje a nakonec z ní něco vyleze ven. Z tomto případě
do funkce cticele
vložíme řetězec (=posloupnost znaků), funkce
zobrazí okno, v němž náš řetězec použije coby sdělení, zároveň uživatele
vyzve, aby zadal celé číslo, no a toto celé číslo pak vyleze z funkce ven coby výsledek.
Všimni si ještě dvou důležitých věcí. Za prvé: řetězce zásadně uzavíráme do uvozovek.
Je to dobrým zvykem skoro ve všech programovacích jazycích (někdy se místo
uvozovek používají apostrofy). Za druhé: parametry funkcí (tedy to, co do nich "leze")
uzavíráme do závorek. I to je zvykem téměř ve všech programovacích jazycích.
Rozeberme si náš motivační příklad krok za krokem. V prvních třech příkazech
se vytvoří proměnné $cislo1
, $cislo2
a $vysledek
.
Do prvních dvou se načtou hodnoty pomocí funkce cticele
,
funkcím se předá výzva, kterou mají zobrazit uživateli. Do proměnné
$vysledek
se uloží součet hodnot prvních dvou proměnných a hodnota
proměnné $vysledek
se zobrazí uživateli.
Pro úplnost si ukážeme ještě třetí způsob použití příkazu at
. Ten
spojuje vytvoření proměnné a přiřazení hodnoty do ní. Jeho syntaxe je
následující: at typ název_proměnné = výraz
.
Tato konstrukce vytvoří proměnnou daného názvu a daného typu a ihned
do ní přiřadí hodnotu uvedeného výrazu.
Pokud jednou vytvoříme proměnnou, nemůžeme změnit její typ, to už bylo řečeno. Nicméně pokud do proměnné přiřadíme nějakou hodnotu, lze tuto hodnotu kdykoliv změnit (odtud název proměnná). Proto následující příklad bude fungovat.
at desetinne $x = ctides ("Zadej hodnotu 1:");
hodnota $x;
at $x = ctides ("Zadej hodnotu 2:"); {tady starou hodnotu proměnné přepíšeme}
hodnota $x;
at $x = ctides ("Zadej hodnotu 3:");
hodnota $x;
První příkaz vytvoří proměnnou typu desetinné číslo s názvem $x
a hned do ní přiřadí hodnotu, kterou vrátí funkce ctides
(tato funkce
dělá úplně stejnou věc jako cticele
, pouze čtenné číslo není
celé nýbrž desetinné). Pak tuto hodnotu zobrazí. Vzápětí proměnnou přepíše novou
hodnotou získanou pomocí ctides
a taktéž ji zobrazí a to samé
provede i po třetí.
Úloha: vytvoř proceduru, která vypočítá aritmetický průměr tří zadaných čísel