4. Výpis: Print, Put a výpis čísel

Na čo to je

Program, ktorý nič nevypíše, nevieš skontrolovať. Rutiny na výpis preto potrebuješ v každej kapitole. Sú súčasťou knižnice – netreba ich deklarovať, stačí ich zavolať.

Ako sa to píše

RutinaČo vypíšePríklad
Print("text")text; kurzor ostane za nímPrint("Name: ")
PrintE("text")text a koniec riadkaPrintE("Hello")
Put('A)jeden znakPut('*)
PutE()len koniec riadkaPutE()
PrintB(číslo)číslo 0 až 255PrintB(200)
PrintC(číslo)číslo 0 až 65535PrintC(50000)
PrintI(číslo)číslo so znamienkom, −32768 až 32767PrintI(-150)

Písmeno E na konci mena (z anglického End of line) znamená „a potom prejdi na nový riadok“. Majú ho aj rutiny na čísla: PrintBE, PrintCE, PrintIE.

Prečo sú na čísla tri rutiny, vysvetlí kapitola 6: písmená B, C a I sú tri druhy čísel – BYTE, CARD a INT.

Celý program

Súbor examples/print.act:

Action!
; Writing texts, characters and numbers

PROC Main()
  Print("One ")              ; a text, the cursor stays on the line
  Print("line.")
  PutE()                     ; the end of the line

  PrintE("A line of its own.")

  Put('A)                    ; one character
  Put('B)
  Put('C)
  PutE()

  Print("A small number: ")
  PrintBE(200)               ; BYTE: 0 to 255

  Print("A big number: ")
  PrintCE(50000)             ; CARD: 0 to 65535

  Print("A number below zero: ")
  PrintIE(-150)              ; INT: -32768 to 32767

  PrintB(1) Put(' ) PrintB(2) Put(' ) PrintB(3)
  PutE()
RETURN

Preklad a spustenie

action26 print.act --sim

Čo uvidíš

One line.
A line of its own.
ABC
A small number: 200
A big number: 50000
A number below zero: -150
1 2 3

Ako to funguje

Časté chyby

Čo sa staloČo povie prekladač alebo program
číslo sa do PrintB nezmestí (PrintB(300))warning ACT215: value 300 does not fit into a BYTE a vypíše sa 44
znak s apostrofom aj za ním (Put('A'))error ACT018: unmatched parentheses – druhý apostrof začal nový znak )
text v Put (Put("A"))prekladač mlčí, program vypíše nezmysel
číslo v PrintE (PrintE(5))prekladač mlčí, program vypíše nezmysel

Posledné dva riadky stoja za zapamätanie: Action! nekontroluje, či rutine dávaš to, čo čaká. Text patrí do Print, znak do Put, číslo do PrintB, PrintC alebo PrintI. Keď program vypíše niečo čudné, pozri najprv, či si nepomiešal tieto rutiny.

Odkiaľ sa vzalo 44? Do BYTE sa zmestí 256 hodnôt (0 až 255). 300 je o 44 viac ako 256, a práve ten zvyšok ostane.

Vyskúšaj si

  1. Vypíš svoje meno a vek na jeden riadok: Name: … Age: ….
  2. Vypíš pomocou Put a PutE trojuholník z hviezdičiek na tri riadky.
  3. Zmeň PrintIE(-150) na PrintCE(-150). Čo sa vypíše? (65386 – PrintC nepozná záporné čísla a to isté číslo číta inak.)

Zhrnutie

Späť: 3. Rutiny · Ďalej: 5. Čísla, znaky a texty