2. Prvý program

Na čo to je

Prejdeš celú cestu od prázdneho súboru po bežiaci program: napísať, uložiť, preložiť, spustiť. Všetky ďalšie kapitoly robia to isté, len s inými príkazmi.

Celý program

Otvor textový editor a napíš (alebo si otvor hotový súbor examples/hello.act):

Action!
; My first program in Action!

PROC Main()
  PrintE("Hello, Atari!")
RETURN

Ulož ho ako hello.act. Prípona .act hovorí, že je to zdroják v jazyku Action!.

Pozor pri ukladaní z Poznámkového bloku: v okne Uložiť ako zvoľ typ Všetky súbory, inak sa súbor uloží ako hello.act.txt.

Preklad a spustenie

V príkazovom riadku prejdi do priečinka, kde súbor leží, a napíš:

action26 hello.act --sim

Prekladač program preloží a voľba --sim ho hneď spustí vo vstavanom simulátore.

Čo uvidíš

Hello, Atari!

To je všetko, čo program robí: vypíše jeden riadok a skončí.

Ako to funguje

Action!
; My first program in Action!

Riadok, ktorý začína bodkočiarkou, je komentár. Prekladač ho preskočí. Je to poznámka pre človeka.

Action!
PROC Main()

PROC začína procedúru – pomenovaný kus programu. Táto sa volá Main. Prázdne zátvorky hovoria, že procedúra nedostáva žiadne údaje. Meno si môžeš zvoliť sám; Main (anglicky „hlavná“) je zvyk.

Action!
  PrintE("Hello, Atari!")

PrintE je hotová rutina z knižnice: vypíše text v zátvorkách a prejde na nový riadok. Text sa píše do úvodzoviek.

Action!
RETURN

RETURN končí procedúru. Keďže Main je jediná procedúra, končí tým aj celý program.

Medzery na začiatku riadka nie sú povinné. Píšu sa preto, aby bolo vidieť, čo patrí dovnútra procedúry.

Čo vzniklo na disku

Po preklade pribudol vedľa zdrojáka súbor hello.xex. To je hotový program pre Atari – má 277 bajtov. Dá sa skopírovať na disketu alebo spustiť v emulátore.

Keď chceš program len preložiť a nespúšťať, voľbu --sim vynechaj:

action26 hello.act

Keď sa preklad podarí, prekladač nevypíše nič. Ticho znamená „v poriadku“.

Spustenie v emulátore

Simulátor ukáže len to, čo program vypíše. Emulátor ukáže celé Atari. Ak ho máš (priečinok atari800 vedľa action26.exe), spustíš program takto:

action26 hello.act --run

Tento program však skončí hneď po výpise a Atari po skončení programu ukáže svoju vlastnú obrazovku, takže text nestihneš prečítať. Preto sa do programov pre emulátor na koniec pridáva čakanie na kláves (examples/hello-key.act):

Action!
; Hello for the emulator: it waits for a key before it ends

PROC Main()
  PrintE("Hello, Atari!")
  PutE()
  Print("Press any key")
  GetD(7)
RETURN
action26 hello-key.act --run

GetD(7) čaká, kým na klávesnici Atari stlačíš kláves. Čo presne znamená sedmička, vysvetlí kapitola 30; zatiaľ ber GetD(7) ako „počkaj na kláves“.

Keď prekladač nájde chybu

Chyby sú pri programovaní bežné. Skús úmyselne jednu spraviť: zmaž druhú úvodzovku.

Action!
PROC Main()
  PrintE("Hello, Atari!)
RETURN

Prekladač odpovie:

hello.act(2,10): error ACT001: missing double quote in string
hello.act(4,1): error ACT018: unmatched parentheses: expected ')', got 'end of file'

Každé hlásenie má štyri časti:

ČasťV príkladeČo znamená
súborhello.actv ktorom súbore je chyba
miesto(2,10)riadok 2, stĺpec 10
druh a čísloerror ACT001error je chyba, warning len upozornenie; číslo sa dá nájsť v prílohe C
popismissing double quote in stringčo prekladaču vadí (po anglicky)

Dve rady:

Kým má program chybu, súbor .xex nevznikne a nič sa nespustí.

Časté chyby

Čo sa staloČo povie prekladač
preklep v mene rutiny (Prit namiesto Print)error ACT008: undeclared name 'Prit'
chýba úvodzovka na konci textuerror ACT001: missing double quote in string
chýba zátvorkaerror ACT018: unmatched parentheses
súbor sa volá inak, ako píšeš v príkazefatal error ACT201: file not found: hello.act

Veľké a malé písmená prekladač nerozlišuje: PrintE, printe aj PRINTE je to isté. V knihe sú slová jazyka veľkými písmenami (PROC, RETURN) a mená rutín s veľkým začiatočným písmenom, aby sa program dobre čítal.

Vyskúšaj si

  1. Zmeň text v úvodzovkách na svoje meno a program znova prelož a spusti.
  2. Pridaj druhý riadok PrintE("…") s iným textom pod prvý.
  3. Zmaž slovo RETURN a pozri, čo sa stane. (Nič – posledná procedúra programu sa skončí aj tak. Píš ho však vždy; v kapitole 3 uvidíš, prečo.)

Zhrnutie

Späť: 1. Úvod · Ďalej: 3. Rutiny