5. Čísla, znaky a texty

Na čo to je

Hodnotu môžeš do programu napísať štyrmi spôsobmi. Všetky štyri stretneš v každom programe pre Atari.

Ako sa to píše

ZápisPríkladČo to je
desiatkové číslo65, 1000číslo, ako ho poznáš
šestnástkové číslo$41, $D40Eto isté číslo zapísané v šestnástkovej sústave; začína znakom $
znak'A, '*, 'jeden znak; apostrof je len pred ním
reťazec (text)"Hello"text v úvodzovkách, najviac 255 znakov

Šestnástková sústava v skratke

V desiatkovej sústave máš desať číslic (0–9) a ďalšie miesto znamená desaťnásobok. V šestnástkovej je číslic šestnásť: 0 1 2 3 4 5 6 7 8 9 A B C D E F, kde A je desať a F pätnásť. Ďalšie miesto znamená šestnásťnásobok.

ŠestnástkovoVýpočetDesiatkovo
$0A1010
$101 × 16 + 016
$414 × 16 + 165
$FF15 × 16 + 15255
$FFFF65535

Prečo sa to používa: dve šestnástkové číslice sú presne jeden bajt (0 až 255) a adresy v pamäti Atari sa v knihách a časopisoch píšu takmer vždy takto. Počítať v nej nemusíš – stačí vedieť, že $41 a 65 je to isté číslo.

Znak je tiež číslo

Počítač si znaky pamätá ako čísla – každý znak má svoj kód. Písmeno A má kód 65, B 66, medzera 32, číslica 0 48. Zápis 'A je teda len pohodlnejší spôsob, ako napísať 65.

Atari používa vlastnú tabuľku kódov, ATASCII. Pre písmená, číslice a bežné znamienka je rovnaká ako ASCII na dnešných počítačoch. Tabuľka je v prílohe D.

Celý program

Súbor examples/numbers.act:

Action!
; The four ways to write a value

PROC Main()
  Print("Decimal 65: ")
  PrintBE(65)

  Print("Hexadecimal $41: ")
  PrintBE($41)               ; the same number, written in base 16

  Print("Character 'A: ")
  PrintBE('A)                ; a character is a number too - its code

  Print("Put(65): ")
  Put(65)                    ; and a number can be written as a character
  PutE()

  Print("$FFFF: ")
  PrintCE($FFFF)             ; the biggest CARD

  PrintE("A text with ""quotes"" inside.")
RETURN

Preklad a spustenie

action26 numbers.act --sim

Čo uvidíš

Decimal 65: 65
Hexadecimal $41: 65
Character 'A: 65
Put(65): A
$FFFF: 65535
A text with "quotes" inside.

Ako to funguje

Časté chyby

Čo sa staloČo povie prekladač
znak ukončený druhým apostrofom ('A')chyba na nasledujúcom znaku – druhý apostrof začne ďalší znak
číslo s desatinnou čiarkou alebo bodkou (1.5)error ACT211 – Action! desatinné čísla nepozná
medzera v čísle (10 000)error ACT018 – sú to dve čísla za sebou, 10 a 000
text dlhší ako 255 znakoverror ACT001 – rozdeľ ho na viac Print

Šestnástkové číslice píš veľkými písmenami ($FF, nie $ff). action26 prijme aj malé, pôvodný Action! nie.

Vyskúšaj si

  1. Vypíš kódy znakov 'a, 'z, '0 a '9 pomocou PrintBE.
  2. Vypíš Put(72) Put(105) – aké slovo to je?
  3. Koľko je $100? Tipni si a over to cez PrintCE($100).

Zhrnutie

Späť: 4. Výpis · Ďalej: 6. Premenné