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:

Program hotovost;
var
   hotovost : Integer;
begin
   hotovost := 15;          {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;
end.
Nejprve jsme deklarovali proměnnou se jménem hotovost. Dále jsme jí v programu přiřadili určitou hodnotu. V podmínce jsme potom zjišťovali, zda odpovídá 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, 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. Všimněte si, že mezi then a else je možné uvést pouze jeden příkaz, který nesmí být navíc ukončen středníkem. Pokud byste požadovali uvést v rámci podmínky více příkazů, museli byste je uvést v bloku ohraničeném klíčovými slovy begin a end. Viz následující příklad:


Unit podminka;
interface
implementation
var
   plat : Integer;
begin
   plat := 12000;          {zadejte vaši hotovost}
   IF plat > 15000 then
   begin
      Writeln('Do práce jezdím autem');
      Writeln('Bydlím v rodinném domku');
      Writeln('Dovolená u moře');
   end
   else
   begin
      Writeln('Do práce jezdím vlakem');
      Writeln('Bydlím v paneláku');
      Writeln('Dovolená na koupališti');
   end;
end;
end.
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ž
    =       rovno
    <>      nerovno
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}
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