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ápis | Príklad | Čo to je |
|---|---|---|
| desiatkové číslo | 65, 1000 | číslo, ako ho poznáš |
| šestnástkové číslo | $41, $D40E | to 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ástkovo | Výpočet | Desiatkovo |
|---|---|---|
$0A | 10 | 10 |
$10 | 1 × 16 + 0 | 16 |
$41 | 4 × 16 + 1 | 65 |
$FF | 15 × 16 + 15 | 255 |
$FFFF | 65535 |
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:
; 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.")
RETURNPreklad 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
- Prvé tri výpisy dajú zakaždým 65:
65,$41a'Asú tri zápisy toho istého čísla. Put(65)vypíšeA. RutinaPutberie číslo ako kód znaku;PrintBho berie ako číslo. Hodnota je tá istá, líši sa len to, čo s ňou rutina spraví.$FFFFje najväčšie číslo, ktoré sa zmestí do dvoch bajtov.- Úvodzovku vnútri textu napíšeš zdvojenú:
"".
Č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 znakov | error 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
- Vypíš kódy znakov
'a,'z,'0a'9pomocouPrintBE. - Vypíš
Put(72) Put(105)– aké slovo to je? - Koľko je
$100? Tipni si a over to cezPrintCE($100).
Zhrnutie
- Číslo sa píše desiatkovo (
65) alebo šestnástkovo ($41). - Znak sa píše s jedným apostrofom pred ním (
'A) a je to číslo – kód znaku. - Text sa píše do úvodzoviek; úvodzovka v texte sa zdvojí.
- Desatinné čísla Action! nemá.
Späť: 4. Výpis · Ďalej: 6. Premenné