Příkazy

editovat

IF...THEN

editovat

Slouží k vytváření podmínek. Jeli nastavená podmínka splněná (pravdivá) tak se vykoná příkaz nebo blok příkazů. Tím lze program donutit, aby reagoval podle vytvořených podmínek.

Základní konstrukce

editovat
IF podmínka THEN příkaz který se provede pokud je podmínka splněna

Příklady užití

IF a=5 THEN PRINT "Napiš text"
IF a$="ANO" THEN PRINT "Napiš text"
IF b<8 THEN PRINT "Napiš text"
IF a<>b THEN PRINT "Napiš text"

První řádek říká, že pokud se proměnná a rovná číslu 5 tak se na obrazovku vypíše Napiš text.
Druhý řádek říká, že pokud se proměnná a$ rovná textovému řetězci ANO, tak se na obrazovku vypíše Napiš text.
Třetí řádek říká, že pokud je proměnná b menší než číslo 8, tak se na obrazovku vypíše Napiš text.
Čtvrtý řádek říká, že pokud se proměnná a nerovná (je jiná než) proměnná b, tak se na obrazovku vypíše Napiš text.

Konstrukce do bloku

editovat
IF podmínka THEN
příkaz 1
příkaz 2
příkaz n
END IF

Příklad užití

IF o$="+" THEN
INPUT "a=",a
INPUT "b=",a
PRINT "a+b=";a+b
END IF

Pokud se proměna o$ rovná řetězci + (znaménko plus), tak požádej uživatele, aby vložil hodnoty do proměnných a potom tyto proměnné sečti.

Konstrukce s využitím příkazu ELSE

editovat
IF podmínka THEN příkaz1 ELSE příkaz2
IF podmínka THEN
příkaz nebo blok příkazů 1
ELSE
příkaz nebo blok příkazů 2
END IF

Příklad užití

IF a=>10 THEN PRINT "Cislo je rovno nebo vetsi nez 10" ELSE PRINT "Cislo je mensi nez 10"

Pokud je hodnota proměnné a rovno nebo větší než 10, tak na obrazovku vypiš text Cislo je rovno nebo vetsi nez 10, jinak vypiš na obrazovku text Cislo je mensi nez 10.

IF A$="ANO" THEN
PRINT "Napis text 1"
PRINT "Napis text 2"
ELSE
PRINT "Napis text 3"
PRINT "Napis text 4"
END IF

Pokud se proměnná a$ rovná textovému řetězci ANO, tak napiš na obrazovku text Napis text 1 a Napis text 2, jinak napiš na obrazovku text Napis text 3 a Napis text 4.

Konstrukce ELSEIF a ELSE

editovat
IF podmínka 1 THEN
blok příkazů 1
ELSEIF podmínka 2 THEN
blok příkazů 2
ELSEIF podmínka n THEN
blok příkazů n
ELSE
blok příkazů 3
END IF

Příklad užití

IF m=1 THEN
 PRINT "Dostal jsi jednicku z Matematiky"
 PRINT "Vynikajíci vysledek"
ELSEIF m=2 THEN
 PRINT "Dostal jsi dvojku z Matematiky"
 PRINT "Chvalitebny vysledek"
ELSEIF m=3 THEN
 PRINT "Dostal jsi trojku z Matematiky"
 PRINT "Dobrý vysledek"
ELSEIF m=4 THEN
 PRINT "Dostal jsi ctirku z Matematiky"
 PRINT "Dostatečný vysledek"
ELSEIF m=5 THEN
 PRINT "Dostal jsi petku z Matematiky"
 PRINT "Nedostatecny vysledek"
ELSE
 PRINT "Známka není v platném rozsahu hodnot"
END IF

Operátory

editovat
Porovnávací operátory
symbol příklad užití popis operátoru
=
IF a=5 THEN PRINT a;" se rovna 5"
je rovno
>
IF a>5 THEN PRINT a;" je vetsi než 5"
je větší
<
IF a<5 THEN PRINT a;" je mensi nez 5"
je menší
>=
IF a>=5 THEN PRINT a;" je vetsi nebo rovno 5"
je větší nebo rovno
<=
IF a<=5 THEN PRINT a;" je mensi nebo rovno 5"
je menší nebo rovno
<>
IF a<>5 THEN PRINT a;" je jiný než 5"
je různý (nerovná se)
Logické operátory
symbol příklad užití popis operátoru
AND
IF a=5 AND b>10 THEN PRINT "text"
Logický součin (pokud platí a=5 a současně platí b>10 tak napiš text
EQV
IF a EQB b THEN PRINT "text"
Rovnost - příkaz se provede jen pokud se a=b
NOT
IF NOT a=5 THEN PRINT "text"
Jedničkový doplněk (negace)provede se jen pokud platí opak a=5 (tedy pokud platí a<>5)
OR
IF a=5 OR b>10 THEN PRINT "text"
Logický součet (pokud platí a=5 nebo platí b>10 nebo platí obě podmínky současně tak napiš text
XOR
IF a=5 XOR b>10 THEN
Výhradní součet (musí platit pouze jedna z podmínek, pokud platí obě příkaz se neprovede)
Využití operátorů při vyhodnocování podmínek s čísly
editovat
IF a>=5 AND a<=10 THEN PRINT "text"

Příkaz PRINT "text" se vykoná jen v případě, že je hodnota a v rozsahu mezi 5 až 10.

IF a>5 AND a<10 THEN PRINT "text"

Příkaz PRINT "text" se vykoná jen v případě, že je hodnota a v rozsahu mezi 6 až 9.

IF a=1 OR a=2 THEN PRINT "text"

Příkaz PRINT "text" se vykoná jen v případě, že je hodnota a rovna 1 nebo 2.

IF a=1 OR a=2 OR a=3 OR a=4 THEN PRINT "text"

Příkaz PRINT "text" se vykoná jen v případě, že je hodnota a rovna 1, 2, 3 nebo 4.

IF NOT(a=1 OR a=2 OR a=3 OR a=4) THEN PRINT "text"

Příkaz PRINT "text" se vykoná jen v případě, že není hodnota a rovna 1, 2, 3 nebo 4.

IF (a>=0 AND a<=10) OR (a>=20 AND a<=30) THEN PRINT "text"

Příkaz PRINT "text" se vykoná jen v případě, že je hodnota a v rozsahu mezi 0 až 10 nebo v rozsahu 20 až 30.

IF (a>=0 AND a<=10) EQV (b>=20 AND b<=30) THEN PRINT "text"

Příkaz PRINT "text" se vykoná jen v případě, že podmínka (a>=0 AND a<=10) a podmínka (b>=20 AND b<=30) jsou obě buď pravdivé nebo obě nepravdivé.

IF (a>=0 AND a<=10) XOR (b>=20 AND b<=30) THEN PRINT "text"

Příkaz PRINT "text" se vykoná jen v případě, že podmínka (a>=0 AND a<=10) je pravdivá anebo je pravdivá podmínka (b>=0 AND b<=10). Výraz se vyhodnotí za pravdivý jen pokud je pravdivá právě jedna z podmínek, tj. pokud jsou obě podmínky pravdivé nebo nepravdivé, výraz se vyhodnotí jako nepravdivý.

Využití operátorů při vyhodnocování podmínek s textovými řetězci
editovat
IF a$="Ahoj" AND b$="Nazdar" THEN PRINT "text"

Příkaz PRINT "text" se vykoná jen v případě, že řetězec a$ se rovná Ahoj a současně řetězec b$ se rovná Nazdar.

IF a$="Ahoj" OR a$="Nazdar" THEN PRINT "text"

Příkaz PRINT "text" se vykoná jen v případě, že je řetězec a$ roven Ahoj nebo Nazdar.

IF "Adam" < "Karel" THEN PRINT "text"

Příkaz PRINT "text" se vykoná jen v případě, že je Adam v abecedě níž než Karel.

IF a$ < b$ THEN PRINT "text"

Příkaz PRINT "text" se vykoná jen v případě, že je řetězec a$ v abecedě níž než řetězec b$. Tato podmínka se využívá jako součást algoritmu, který řadí textové řetězce podle abecedy (sestupně nebo vzestupně).

Programy

editovat

Program č. 1

editovat

Program, který porovná dvě čísla a vypíše, které je větší, menší nebo zdali se sobě rovnají.

CLS
PRINT "Program na porovnani dvou cisel"
PRINT
INPUT "Zadejte prvni cislo";a
INPUT "Zadejte druhe cislo";b
IF a<b THEN PRINT a;" je mensi nez ";b
IF a>b THEN PRINT a;" je vetsi nez ";b
IF a=b THEN PRINT a;" je rovno ";b

Výstup na obrazovce po spuštění programu

Program na provnani dvou cisel

Zadejte prvni cislo? _

Po zadání náhodně zvolených čísel (v tomto případě byly zadány čísla 18 a 39)

Program na provnani dvou cisel

Zadejte prvni cislo? 18
Zadejte druhe cislo? 39
 18 je mensi nez 39

Program č. 2

editovat

Program který podle věku určí v jaké fázi života se nacházíte.

CLS
PRINT "Faze zivota"
PRINT
INPUT "Zadej svuj vek",v
IF v<0 THEN PRINT "Zatim ses nenarodil"
IF v=0 THEN PRINT "Gratuluji jsi cerstve narozeny"
IF v=2 OR v=3 THEN PRINT "Jsi Batole"
IF v=4 OR v=5 THEN PRINT "Predskolni vek"
IF v>=6 AND v<=11 THEN PRINT "Mladsi skolni vek"
IF v>=12 AND v<=15 THEN PRINT "Jsi v obdobi dospivani (Pubescence)"
IF v>=16 AND v<=20 THEN PRINT "Adolescence"
IF v>=21 AND v<=30 THEN PRINT "Mladsi dospelost"
IF v>=31 AND v>=45 THEN PRINT "Stredni dospelost"
IF v>=46 AND v>=60 THEN PRINT "Starsi dospelost"
IF v>=62 AND v>=74 THEN PRINT "Obdobi starnuti"
IF v>=75 AND v<=89 THEN PRINT "Obdobi stari"
IF v>=90 THEN PRINT "Stareckost"

Výstup na obrazovce po spuštění programu

Faze zivota

Zadej svuj vek:_

Výstup na obrazovce po zadání věku (v našem případě 8)

Faze zivota

Zadej svuj vek:8
Mladsi skolni vek

Program č. 3

editovat

Kalkulačka

CLS
PRINT "Program Kalkulacka"
PRINT
INPUT "A=",a
INPUT "B=",b
PRINT
PRINT "1... a+b"
PRINT "2... a-b"
PRINT "3... a*b"
PRINT "4... a/b"
PRINT "5... a^b mocnina"
PRINT "6... a^(1/b) odmocnina"
PRINT
INPUT "Zadej pocetni operaci";p
IF p=1 THEN
 PRINT a;"+";b;"=";a+b
ELSEIF p=2 THEN
 PRINT a;"-";b;"=";a-b
ELSEIF p=3 THEN
 PRINT a;"*";b;"=";a*b
ELSEIF p=4 THEN
 PRINT a;"/";b;"=";a/b
ELSEIF p=5 THEN
 PRINT a;"^";b;"=";a^b
ELSEIF p=6 THEN
 PRINT a;"^(1/";b;")=";a^(1/b);
ELSE
 PRINT "zadano spatne cislo operace"
END IF

Program po spuštění a zadání hodnot:

Program kalkulačka

A=25
B=5

1... a+b
2... a-b
3... a*b
4... a/b
5... a^b mocnina
6... a^(1/b) odmocnina

Zadej pocetni operaci? 5
25^5=9765625