Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 3 - Small Basic - Podmínky

V minulém tutoriálu o programování v jazyce Small Basic jsme se naučili používat proměnné a vstup/výstup. Dnes se zaměříme na podmínky.

Program se může tzv. větvit, tedy spouštět různé své části na základě hodnot v proměnných. Nejjednodušší příklad je reakce na nějakou akci uživatele, aby náš program nedělal stále to samé, ale dal se ovládat.

Příkaz If

Podmínky zapíšeme pomocí příkazů If a Endif. Podmínkou níže se ptáme, jestli výraz 'a = 0' platí a pokud ano, tak se spustí kód, který podmínka obsahuje.

a = 0
If a = 0 Then
    TextWindow.WriteLine("PRAVDA")
Endif

V prvním řádku se do 'a' dosazuje '0', takže se obsah podmínky provede a do konzole se vypíše řetězec "PRAVDA". Podmínku nesmíme zapomenout ukončit příkazem Endif.

Operátory

V podmínce můžeme používat následující operátory:

= rovná se
<> nerovná se
> vetší než
< menší než
>= větší, nebo rovno
<= menší, nebo rovno

Else

Dále můžeme použít příkaz Else, čímž oddělíme v podmínce 2 bloky příkazů. První se spustí když podmínka platí a druhý když neplatí:

a = 0
b = 1
If a = 0 Then
    TextWindow.WriteLine("PRAVDA")
Else
    TextWindow.WriteLine("NEPRAVDA")
EndIf

Skládání výrazů

Logické výrazy můžeme v podmínkách skládat pomocí operátorů AND a OR. Ty označují "a zároveň" a "nebo".

a = 8;
If a > 5 AND a < 13 Then
    TextWindow.WriteLine("V a je číslo od 5 do 13ti")
EndIf

V ostatních programovacích jazycích se většinou AND zapisuje jako && a nebo jako ||.

Výraz můžeme negovat pomocí operátoru NOT:

a = 8;
If NOT a = 8 Then
    TextWindow.WriteLine("V a není osmička")
EndIf

Sekvence If... ElseIf

Pokud chceme reagovat na více hodnot jedné proměnné, zkrátíme obvykle následující kód:

If promena = 1 Then

EndiIf
If promena = 2 Then

EndIf

do této podoby pomocí příkazu Elseif:

If promena = 1 Then

ElseIf promena = 2 Then

Endif

Příklady

Určení věku

Vytvořme si jednoduchý příklad s tím, co jsme se zatím naučili. Necháme uživatele zadat jeho věk a ten mu okomentujeme.

TextWindow.Write("Zadejte svůj věk: ")
vek = TextWindow.ReadNumber()
If vek <= 4 And vek >= 0 Then
    TextWindow.WriteLine("Jsi malý a nic si nebudeš z tohoto období pamatovat.")
ElseIf vek > 4 And vek <= 6 Then
    TextWindow.WriteLine("Chodíš do školky.")
ElseIf vek > 6 And vek <= 15 Then
    TextWindow.WriteLine("Jsi někde mezi 1. až 9. třídou nebo chodíš na gymnázium.")
ElseIf vek > 15 And vek <= 19 Then
    TextWindow.WriteLine("Chodíš na střední školu nebo na gymnázium.")
ElseIf vek > 19 And vek <= 24 Then
    TextWindow.WriteLine("Morduješ se na vysoké škole.")
ElseIf vek > 24 And vek <= 70 Then
    TextWindow.WriteLine("Umíráš touhou se vrátit do školky a nikdy nepracovat.")
ElseIf vek > 70 And vek <= 90 Then
    TextWindow.WriteLine("Jsi v důchodu a máš už svá léta za sebou.")
ElseIf vek > 90 And vek <= 110 Then
    TextWindow.WriteLine("Jsi rád že žiješ.")
ElseIf vek > 110 Then
    TextWindow.WriteLine("Jsi čaroděj\nice. ")
Else
    Textwindow.WriteLine("Ještě ses nenarodil. ")
EndIf

Zadání číslice

Podmínky si procvičme ještě rozpoznáním hodnoty zadané číslice.

TextWindow.Write("Zadej libovolnou číslici")
i = TextWindow.Read()
If i < 5 Then
    TextWindow.WriteLine("i < 5")
ElseIf i > 5 Then
    TextWindow.WriteLine("i > 5")
ElseIf i = 5
    TextWindow.WriteLine("i = 5")
Else
    TextWindow.WriteLine("Nezadal jsi číslici. ")
EndIF

Goto

Goto je příkaz, který bychom měli používat pouze ze začátku, když ještě neumíme deklarovat cykly a funkce. Je to vlastně skok do určité části programu, ukažme si to na jednoduchém příkladu:

skok:
TextWindow.WriteLine("Toto je nekonečný cyklus")
Program.Delay(40)
Goto skok

skok: je tzv. návěstí. To je nějaký bod v programu. Dvojtečka dává znamení, že to není obyčejná proměnná. Na druhém řádku je normální výstup a na třetím nová věc z třídy Program a to operace Delay. Ta zastaví program na určitý počet milisekund. No a na konci je příkaz Goto, který skočí zpět na popisek skok: a opakuje se to takhle stále dokola. Použijeme to v naší kalkulačce.

Program

Rovnou si můžeme popsat některé funkce na třídě Program, využijeme je spíše až později.

  • Program.End - Ukončí program.
  • Program.Directory - Vrátí cestu ke složce s programem.
  • Program.GetAr­gument(1) - Vrací 1. argument našeho programu (pokud ho s nějakým spouštíme, např. když napíšeme program.exe nejaky_argument).
  • Program.Argumen­Count - Vrací počet zadaných argumentů.
  • Program.Delay(1000) - Pozastaví provádění programu na 1000 milisekund.

Menší program na konec

Vytvořme si takový jednoduchý příkazový řádek (má jen dva příkazy :) ).

start:
TextWindow.WriteLine("Command Line, all rights reserved. ")
TextWindow.Write("Enter command: ")
command = TextWindow.Read()
If command = "cls" Or command = "clear" Then
  TextWindow.Clear()
ElseIf command = "end" Or command = "exit" Then
  Program.End()
Else
  TextWindow.WriteLine("'" + command + "' is not an internal or external command of the Command Line")
EndIf
Goto start

Příště si ukážeme cykly a pole.


 

Předchozí článek
Small Basic - Cvičení
Všechny články v sekci
SmallBasic
Přeskočit článek
(nedoporučujeme)
Small Basic - Cykly, funkce a pole
Článek pro vás napsal Michael Škrášek
Avatar
Uživatelské hodnocení:
7 hlasů
Autor se věnuje programování v C# a Kotlinu.
Aktivity