AMIGA E - III. díl
Vítám Vás u dalšího pokračování seriálu o programování v AMIGA E!
Ani dnes to nebude jinak - jen samá teorie. Přečkáte-li ale ještě několik
dalších dílů, dostaneme se až k samotnému programování (a o to přeci jde!).
Nyní již přejdeme k věci. Tento díl je věnován několika dalším
operátorům, které lze v éčku potkat. Takže...
jedeme z
k
o
p
c
é !
Pole ( [ ] )
Práce s poli je v éčku velmi jednoduchá. Chcete-li proměnnou typu
pole (ARRAY), pak stačí ji deklarovat jako
<jméno proměnné>[<počet prvků>]:ARRAY OF typ
S takovýmto polem se pracuje následovně: <proměnná>[<index>]
Operátor [ ] čte/zapisuje hodnotu z/do pole, na které ukazuje
<proměnná>, pomocí <indexu>. Index může být jakýkoliv výraz.
Poznámka 1: "[]" je zkrácený zápis "[0]"
Poznámka 2: pole o n prvcích má vždy hodnoty indexu od 0 do n-1 !
Příklady:
a[1] := 10 | /* zapíše do druhého prvku 10 */ |
x := table[y*4+1] | /* čtení z pole */ |
x.y[3] | /* přístup k poli v objektu */ |
Struktury (.)
Pracuje-li se v éčku strukturami (OBJECT - ENDOBJECT) používá se
tzv. tečková konvence. Znamenáto, že máme-li např. strukturu (objekt)
OBJECT co
jo:LONG
tak:LONG
aha:CHAR
ENDOBJECT
a proměnou
DEF jako:co (nebo jako:PTR TO co)
pak se na jednotlivé položky objektu odkazujeme zcela jednoduše
jako.tak := 10
jakjetomozny := jako.aha
jinými slovy: <ukazatel na objekt>.<položka v objektu>
Ukazatel na objekt může být deklarován buď jako PTR TO <objekt>
nebo jako ARRAY OF <objekt>.
DEF jakto[100]:ARRAY OF co
killme := jakto[10].tak -> 11. položka v poli, podpoložka tak
Je samozřejmě možné, aby struktura (objekt) obsahoval vnořené objekty.
OBJECT uszase
hmmm:PTR TO co
jej:co
lala[10]:ARRAY OF co
chrch:LONG
ENDOBJECT
DEF xx:uszase
S takovýmto objektem se pak pracuje následovně:
blabla := xx.jej.tak
Jak jednoduché !
Operátor pohyblivé řádové čárky (!)
<výraz>!<výraz>
Tento operátor převádí celočíselné výrazy na reálné a naopak, a
nahrazuje operátory + - * / = <> < > <= >= jejich reálnými ekvivalenty.
Přiřazovací výrazy (:=)
Přiřazení (nastavení hodnoty proměnné) existuje jako příkaz a
jako výraz. Jediný rozdíl je v tom, že příkaz je samostatná část
programu (např. bla := haha + hehe) a výraz leží někde uprostřed jiného
příkazu
(např. IF file:=Open('soubor', NEWFILE) THEN ok:=1).
Je nutné vědět, že je třeba zuřivě závorkovat, chcete-li dostat skutečně
to, co jste chtěli.
Příklad:
IF mem:=New(100)=NIL THEN error()
bude interpretováno jako:
IF mem:=(New(100)=NIL) THEN error()
což rozhodně není to, co jste chtěli: mem by měl být pointer, ne boolean.
Ale můžete napsat:
IF (mem:=New(100))=NIL THEN error()
Je skutečně dobré přiřazovací výrazy vždy uzávorkovat.
Předejdete tím
možným divočinám, které se dost špatně odlaďují.
Pro dnešek už toho necháme. Příště zduř...
END
E.N.I.F.
Další ve frontě:
|
|
|
|
|
|
|
|
Vokecávky |
Hardware | Warez | WBoviny | Dema |
Gfx&Muz | Pařby | Vokecávky 2 |