VOBSAH           DalÓÉ           PŇedeÓlej           info           mod                     prefsy

logo

×   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ě:
 
KodeŇina   Sekání koncovek v Éčku


VokeCáVKy HarDWare warez WorkBenchoviny DeMa Gfx&Muzika PaŇBY VokecÁvky II
Vokecávky Hardware Warez WBoviny Dema Gfx&Muz Pařby Vokecávky 2