Lekce 1.12
Podmínky v programu


předchozí lekce (1.11) obsah kurzu následující lekce (1.13)

Jak jsme již uvedli v úvodu probíraných lekcí, je programování vlastně sestavování posloupnosti vykonávaných akcí. V některých případech musíme mít ale možnost některou z akcí buď vynechat, nebo provést akce jiné. Obojí na základě zadané podmínky. Například pokud mám v kapse více než dvacet korun, půjdu do kina, jinak půjdu domů na televizi. Zadaná podmínka by se dala v lidské mluvě popsat následujícím vztahem:

POKUD hotovost > 20 POTOM
   půjdu do kina
JINAK
   budu se dívat na televizi
KONEC
Uvedenému zápisu se říká algoritmus a popisuje schematicky postup prováděných akcí. Vztahu hotovost>20 se říká podmínka. Podmínka nám tedy určuje, jaká akce se bude provádět. Zápis algoritmu je nutné pro počítač převést do programu. Například následujícím způsobem:

Sub Main()
    hotovost = 10          'zadejte vaši hotovost
    If hotovost > 20 then
       Writeln("Kino")     'pokud je podmínka splněna
    Else
       Writeln("Televize") 'pokud není podmínka splněna
    End If
End Sub
Nejprve jsme definovali proměnnou se jménem hotovost a přiřadili ji určitou hodnotu. V podmínce jsme potom zjišťovali, zda odpovídá hodnota našim požadavkům a podle toho jsme provedli určitou akci. Zkuste si zadat sami různé hodnoty stavu vaší hotovosti.

Podmínka se v programu zadává klíčovým slovem If..Then..Else, za kterým musí následovat vyhodnocovaná podmínka. Za klíčovým slovem Then se uvede akce, která se provede při splnění podmínky. Po uvedení klíčového slova Else je možné uvést akci, která se má provést v případě nesplnění podmínky. Uvést je přitom možné vždy i několik příkazů. Viz následující příklad:


Sub Main()
    ConsoleClear
    Writeln("Můj plat je "+CStr(plat)+" Kč.")
    If plat > 15000 then
       Writeln("Do práce jezdím autem.")
       Writeln("Bydlím v rodinném domku.")
       Writeln("Dovolená u moře.")
    Else
       Writeln("Do práce jezdím vlakem.")
       Writeln("Bydlím v paneláku.")
       Writeln("Dovolená na koupališti.")
    End If
End Sub
Všimněte si, že jsme v programech u zápisu podmínky odsadili vykonávané příkazy na řádku o tři znaky. Tím vynikla struktura podmínky a na první pohled je viditelné její rozčlenění. Není to sice nutnost, přesto však doporučujeme uvedenou grafickou podobu zápisu programu ve vlastním zájmu dodržovat.

Podmínku představuje logický výraz, který udává, zda je podmínka splněna nebo ne. Logické výrazy mohou mít proto výsledek pouze pravda nebo nepravda. V počítačové terminologii True (pravda) nebo False (nepravda). Pokud byste chtěli výsledek podmínky deklarovat jako proměnnou, museli byste použít typ BOOLEAN. Logická podmínka zpracovává nejčastěji matematický výraz. Může to však být i výraz zpracovávající řetězce, to však bude psáno až se naučíme s řetězci důkladněji pracovat.

Matematické výrazy porovnávají nejčastěji několik hodnot. Ve výrazu se přitom může také použít libovolného matematického výpočtu, který je v jazyce definován.

Matematické výrazy zpracovávají aritmetické operace. Výrazy se skládají z operátorů a operandů. Operátor je přitom porovnávaná hodnota a operand je způsob porovnání hodnot. Operátor může představovat libovolný matematický výpočet, který je v jazyce definován. Operand slouží k vyhodnocení operátorů. Používají se následující dostatečně známé operandy:


    >        větší než
    >=      větší nebo rovno než
    <        menší než
    <=      menší nebo rovno než
    =        rovná se
    <>      nerovná se
Ve výrazu je samozřejmě možné používat závorky. Příklad výrazů zpracovávajících matematický výpočet:

hotovost >   20
  a/2    <   10
2*(a+b)  = 2*a+2*b
Výrazy můžeme dále v jedné podmínce spojit logickým operátorem s dalším výrazem a vyhodnocovat tak složenou podmínku. Používají se přitom následující logické operátory:

AND       a zároveň platí
OR         platí jeden nebo druhý výraz
NOT       není pravda, negace výrazu
V případě použití logických operátorů mají tyto ve vyhodnocování výrazů přednost před ostatními operátory. Dále se vyhodnocují závorky a až na konci matematické výpočty. Pokud budete chtít zapsat v programu několik výrazů spojených logickým operátorem, musíte umístit výrazy do závorek. Například pro zjištění rozsahu hotovosti od 10 Kč do 30 Kč použijete následující zápis:

If (hotovost >= 10) and (hotovost <= 30) then
   Writeln("Kino")       'pokud je podmínka splněna
Else
   Writeln("Televize")   'pokud není podmínka splněna
End If
V této lekci jsme si probrali mimo možnosti rozvětvení činnosti programu také způsob zápisu podmínek v programu. Podmínky se v programu používají i v dalších příkazech. Například pro zadání počtu opakování zvolené části programu, jak si ukážeme v následující lekci.
předchozí lekce (1.11) obsah kurzu následující lekce (1.13)

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