1.2.2. Prvý program
Doteraz ste sa naučili, že po odoslaní príkazového riadku klávesom ENTER sa príkazy tohto riadku ihneď vykonali. Takýto režim práce sa označuje ako priamy režim práce. Výhodou tohto režimu je, že výsledky vidíte okamžite na obrazovke. Nevýhodou je, že počítač si nepamätá všetko, čo vykonal predtým.
Teraz sa naučíte vkladať údaje uloží do pamäti a v prípade potreby vie uložené údaje použiť. Tým sa dostávame k programovému režimu práce, naučíte sa, čo je to program a ako sa zostavuje.
Zhruba môžeme povedať, že program v jazyku BASIC je postupnosť príkazov, ktoré sú usporiadané podľa určitých pravidiel (syntax jazyka). Tieto pravidlá sa musíme naučiť, lebo počítač ich pozná a riadi sa presne podľa nich. Každú odchýlku od syntaxe počítač spozná a obyčajne ohlási chybu výpisom správy do spodného riadku.
Program sa skladá z riadkov programu (programových riadkov). Programový riadok je taký príkazový riadok, ktorý začína číslicou.
Vložte tieto 2 riadku programu do počítača:
20 PRINT "tabulku"
10 PRINT "Hlavicka ";
a obrazovka vyzerá takto:
10>PRINT
"Hlavicka ";
20 PRINT "tabulku"
Tieto riadky začali číslicami a preto neboli hneď vykonané, ale uchované ako riadky programu. Všimnite si, že čísla riadkov v programe sú zoradené. Je to dôležité pre jeho beh a tiež sa to prejaví vo výpise riadkov, ktoré teraz môžete vidieť na obrazovke. Teraz odošlite riadok
15 PRINT "pre ";
Ak by boli riadky číslované bez medzier, nebolo by možné medzi dva napísané riadky už vložiť ďalší riadok. Preto je výhodné číslovať riadky namiesto 1, 2, … radšej 10, 20, … avšak maximálne 9999. Dodatočné vkladanie riadkov je dôvod, prečo číslovať riadky s krokom 10.
Teraz chceme zmeniť riadok 20 na:
20 PRINT "tabulku vysledkov"
Môžete to urobiť tak, že riadok 20 napíšete znova. Ak odošlete nový riadok s číslom 20, nový riadok prepíše starý.
Výhodnejšie je však využiť možnosť režimu EDIT (CAPS SHIFT + 1). Šípka > pri riadku 15 sa nazýva programový kurzor a riadok, na ktorý ukazuje, sa nazýva bežný riadok. Pri vkladaní programu je to posledný riadok, ktorý bol vložený, ale na nastavenie programového kurzora môžete použiť šípku dole alebo hore. Skúste si pohyb programového kurzora a nechajte ho nastavený na riadok 20. Keď stlačíte EDIT, objaví sa kópia bežného riadku v spodnej časti obrazovky – vo Vašom prípade je to kópia riadku 20. Pomocou šípky doprava presuňte kurzor L na koniec riadku pred úvodzovku a potom vložte text
vysledkov
Riadok by mal teraz mať tvar:
20 PRINT "tabulku vysledkov"
Po stlačení ENTER sa nahradí starý riadok 20 a obrazovka vyzerá takto:
10 PRINT "Hlavicka ";
15 PRINT "pre ";
20>PRINT "tabulku
vysledkov"
Program máte uložený v pamäti. Na odštartovanie programu slúži príkaz RUN (kláves R). Takže zadajte RUN a stlačte ENTER.
Na obrazovku sa vypíše text:
Hlavicka pre tabulku vysledkov
Príkaz RUN zmaže obrazovku a odštartuje program od začiatku. Ale program môžete odštartovať od ľubovoľného riadku programu príkazom
RUN číslo riadku
Tak po odoslaní príkazu
RUN 20
dostanete na obrazovku výpis
tabulku vysledkov
Ešte sa vrátime k režimu EDIT. Môžete ho použiť na vymazanie spodnej časti obrazovku. Niečo napíšte (bez ENTER) a potom sa rozhodnete, že to nechcete. Jedna z možností, ako to vykonať, je držať kláves DELETE, dokiaľ nie je riadok zrušený. Existuje i nasledujúca možnosť. Pokiaľ stlačíte EDIT, bude text v spodnej časti obrazovky nahradený kópiou bežného riadku. Pokiaľ teraz stlačíte ENTER, bežný riadok sa uloží do programu bez zmeny a spodná časť obrazovky ostane voľná. Pokiaľ odošlete riadok s chybou, napr.
12 PRINT "zly riadok ";
uloží sa tento riadok do programu a až potom si uvedomíte chybu. Pre vynechanie tohto riadku odošlite:
12
Teraz si s údivom všimnete, že programový kurzor zmizol. Môžete si predstaviť, že je niekde medzi 10. a 15. riadkom. Pokiaľ stlačíte šípku hore, bude sa nachádzať na riadku 10, ak stlačíte šípku dole, bude na riadku 15. Odošlite
12
Programový kurzor bude opäť medzi riadkami 10 a 15. Teraz stlačte EDIT a dole bude kópia riadku 15. Keď je programový kurzor medzi riadkami, potom EDIT vyberie riadok s vyšším číslom. Napíšte ENTER na zmazanie spodnej časti obrazovky. Potom odošlite
30
Teraz je programový kurzor za koncom programu. Pokiaľ stlačíte EDIT, bude riadok 20 vypísaný dole.
Doteraz vždy po stlačení ENTER sa vypísal program na obrazovku. Tento výpis nazvime automatický listing (listing je výpis programu). Existuje však špeciálny príkaz pre výpis programu na obrazovku a to príkaz
LIST
ktorý vypíše program od prvého riadku.
Ak chcete vypísať program od určitého riadku, zadáte číslo požadovaného riadku za slovo LIST v tvare
LIST číslo riadku
Zadajte napr. príkaz:
LIST 15
a na obrazovke vidíte:
15>PRINT
"pre ";
20 PRINT "tabulku
vysledkov"
Riadok 10 nie je zobrazený, ale je stále vo Vašom programe. Môžete si to overiť stlačením ENTER. Výsledkom príkazu LIST 15 je, že sa vykoná výpis programu, začínajúci riadkom 15 a ďalej je na tomto riadku nastavený programový kurzor. Pokiaľ máte veľmi dlhý program, potom príkazom LIST nastavíte programový kurzor oveľa rýchlejšie ako šípkami.
Vložte do programu nasledujúci riadok:
5 REM hlavicka tabulky
a odštartujte program príkazom RUN.
Určite ste si všimli, že ste dostali ten istý výsledok, ako keď v programe tento riadok nebol. Príkaz REM je totiž nevýkonný. Ak sa dostane vykonávanie programu na príkaz REM, text za príkazom REM sa preskočí a pokračuje sa na ďalšom riadku. Preto môže vyť za REM akýkoľvek text. Príkaz REM s používa ako poznámka v programe, ktorou môžete označiť časti programu pre Vašu informáciu, na vykonávanie programu nemá žiadny vplyv.
Program môžete odštartovať aj príkazom GOTO, ktorý má tvar
GO TO číslo riadku
kde číslo riadku má ten istý význam ako v príkaze RUN. Tým odštartujte program od zadaného čísla riadku. Napr.:
GO TO 20
Zdá sa Vám, že medzi príkazmi RUN a GOTO nie je žiadny rozdiel. V uvedenom programe je pravda. Všeobecne to však neplatí. Príkaz GOTO vykonáva program od zadaného miesta, pričom berie do úvahy stav, v ktorom sa počítač nachádza. Príkaz RUN je nebezpečnejší, lebo pri jeho odoslaní sa vždy nastaví časť pamäti do počiatočného stavu, čím stratíte výsledky, ktoré má počítač uložené v pamäti, zmaže sa obrazovka atď. (podrobne sa to dozviete neskôr).
Ak v príkaze RUN a GOTO zadané číslo riadku v programe neexistuje, pokračuje vykonávanie programu na najbližšom vyššom riadku.
To, že príkaz GOTO ponecháva doterajšie výsledky v pamäti, je veľmi výhodné. Príkaz GOTO môžete totiž použiť priamo v programe, čím sa dostávame k pojmu programový cyklus. Je to časť programu, ktorá sa vykonáva opakovanie. Doplňme program o nasledujúci riadok
30 GO TO 10
a program odštartujte. Na celú obrazovku sa vypíše opakovane text
hlavicka pre tabulku vysledkov
a v dolnom riadku sa objaví výpis
scroll?
Čo sa vlastne stalo? Po prvom výpise riadku sa dostaneme na riadok 30, ktorý nás opäť vráti na riadok 10, nasleduje výpis a zase riadok 30, ktorý nás opäť vráti na riadok 10, nasleduje výpis a zase riadok 30 atď. Keď je na obrazovke zobrazených 22 riadkov, výpis sa zastaví a v dolnom riadku sa vypíše scroll?.
Výpis sa zastavil preto, aby ste si mohli prezrieť výpis na obrazovke a výpisom scroll? sa počítač pýta, či má pokračovať ďalej vo výpise, alebo má prerušiť program.
Ak stlačíte kláves N, kláves SPACE alebo kláves BREAK (CAPS SHIFT + SPACE), vykonávanie programu sa preruší a v dolnom riadku sa vypíše správa
D BREAK – CONT repeats, 10:1
Ak stlačíte iný kláves, na obrazovku sa vypisujú ďalšie riadky tým spôsobom, že predchádzajúce riadky sa posúvajú smerom nahor a nasledujúci riadok sa vypisuje vždy na uvoľnené miesto dole.
Správa pri prerušení oznamuje, že program bol prerušený na riadku 10 v príkaze 1 (10:1) a v prerušenom programe je možné pokračovať príkazom
CONTINUE
Zaujímavé je, že počas prerušenia programu môžete s počítačom vykonávať inú činnosť, napr. odoslať iné príkazy (PRINT), prezerať program príkazom LIST, ba dokonca je možné opravovať program v režime EDIT. Počítač si "pamätá", na ktorom mieste bol program prerušený a v programe môžete pokračovať príkazom CONTINUE. Skúste to!
V programe urobíte niekedy chybu a program beží v cykle bez výpisu na obrazovku, napr. program obsahuje tento riadok:
200 GO TO 200
Ak sa dostane vykonávanie programu na tento riadok (môžete ho odštartovať príkazom RUN 200), dostali ste sa do programového cyklu, z ktorého zdanlivo niet úniku. Na ukončenie činnosti stačí stlačiť kláves BREAK (CAPS SHIFT a SPACE). Vykonávanie programu sa zastaví a v dolnom riadku sa zobrazí
L BREAK into program, 200:1
čo znamená prerušenie programu klávesom BREAK. Pokračovať môžete opäť príkazom CONTINUE od toho miesta programu, kde bol prerušený. Kláves BREAK možno použiť kedykoľvek počas vykonávania programu. Jeho nevýhodou (a zároveň výhodou) je však to, že prerušenie môže nastať na ľubovoľnom mieste programu. Pri testovaní programu je vhodné zastaviť program na presne určenom mieste programu. Na to slúži príkaz
STOP
Doplňte predchádzajúci program o riadok
25 STOP
a odštartujte program. Po výpise textu sa objaví hlásenie
9 STOP statement, 25:1
čo znamená, že program bol prerušený príkazom STOP. Ďalšia činnosť je podobná ako pri BREAK.
Ak ukončíte prácu s vytvoreným programom a chcete vytvoriť iný, potrebujete starý program zmazať. Mohli by ste to robiť rušením riadkov, ako ste sa to už naučili. V tomto prípade by to ešte išlo, ale u dlhých programov by ste sa "narobili". Preto je k dispozícii príkaz
NEW
ktorý zmaže starý program. Používajte ho však veľmi opatrne, lebo po jeho odoslaní je program beznádejne stratený!
Videli ste použitie príkazov PRINT, RUN, LIST, GO TO, CONTINUE, NEW a REM. Všetky mohli byť použité v programe alebo v priamom režime. To platí takmer o všetkých príkazoch jazyka BASIC. Príkazy RUN, LIST, CONTINUE a NEW nie sú často používané v programoch, ale môžu byť použité.