IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

3. diel - Small Basic - Podmienky

V minulom tutoriále o programovaní v jazyku Small Basic sme sa naučili používať premenné a vstup / výstup. Dnes sa zameriame na podmienky.

Program sa môže tzv. Vetviť, teda spúšťať rôzne svoje časti na základe hodnôt v premenných. Najjednoduchšie príklad je reakcia na nejakú akciu používateľa, aby náš program nerobil stále to isté, ale dal sa ovládať.

Príkaz If

Podmienky zapíšeme pomocou príkazov If a Endif. Podmienkou nižšie sa pýtame, či výraz 'a = 0' platí a ak áno, tak sa spustí kód, ktorý podmienka obsahuje.

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

V prvom riadku sa do 'a' dosadzuje '0', takže sa obsah podmienky vykoná a do konzoly sa vypíše reťazec "PRAVDA". Podmienku nesmieme zabudnúť ukončiť príkazom Endif.

Operátormi

V podmienke môžeme používať nasledujúce operátory:

= rovná sa
<> nerovná sa
> väcší než
< menšie ako
> = väčšie, alebo rovné
<= menšie, alebo rovné
Else

Ďalej môžeme použiť príkaz Else, čím oddelíme v podmienke 2 bloky príkazov. Prvá sa spustí keď podmienka platí a druhý keď neplatí:

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

Skladanie výrazov

Logické výrazy môžeme v podmienkach skladať pomocou operátorov AND a OR. Tie označujú "a zároveň" a "alebo".

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 jazykoch sa väčšinou AND zapisuje ako && a alebo ako ||.

Výraz môžeme negovať pomocou operátora NOT:

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

Sekvencie If ... ElseIf

Ak chceme reagovať na viaceré hodnoty jednej premennej, skrátime obvykle nasledujúci kód:

If promena = 1 Then

EndiIf
If promena = 2 Then

EndIf

do tejto podoby pomocou príkazu ElseIf:

If promena = 1 Then

ElseIf promena = 2 Then

Endif

Príklady

Určenie veku

Vytvorme si jednoduchý príklad s tým, čo sme sa zatiaľ naučili. Necháme užívateľa zadať jeho vek a ten mu okomentuje.

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

Zadaní číslice

Podmienky si precvičme ešte rozpoznaní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 príkaz, ktorý by sme mali používať iba zo začiatku, keď ešte nevieme deklarovať cykly a funkcie. Je to vlastne skok do určitej časti programu, ukážme si to na jednoduchom príklade:

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

skok: je tzv. návestí. To je nejaký bod v programe. Dvojbodka dáva znamenie, že to nie je obyčajná premenná. Na druhom riadku je normálne výstup a na treťom nová vec z triedy Program a to operácie Delay. Tá zastaví program na určitý počet milisekúnd. No a na konci je príkaz Goto, ktorý skočí späť na popisok skok: a opakuje sa to takto stále dokola. Použijeme to v našej kalkulačke.

Program

Rovno si môžeme popísať niektoré funkcie na triede Program, využijeme je skôr až neskôr.

  • Program.End - Ukončí program.
  • Program.Directory - Vráti cestu k priečinku s programom.
  • Program.GetArgument (1) - Vracia 1. argument nášho programu (ak ho s nejakým spúšťame, napr. Keď napíšeme program.exe nejaky_argument).
  • Program.Argumen­Count - Vracia počet zadaných argumentov.
  • Program.Delay (1000) - Pozastaví vykonávanie programu na 1000 milisekúnd.

Menšie program na koniec

Vytvorme si taký jednoduchý príkazový riadok (má len dva prí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

Nabudúce si ukážeme cykly a polia.


 

Predchádzajúci článok
Small Basic - Cvičenie
Všetky články v sekcii
SmallBasic
Preskočiť článok
(neodporúčame)
Small Basic - Cykly, funkcie a polia
Článok pre vás napísal Michael Škrášek
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje programování v C# a Kotlinu.
Aktivity