Programovanie makier v LibreOffice: Deklarácie premenných

LO.png Minule sme si rozobrali o typoch premenných. Otázkou však je, ako vysvetlíme počítaču, aký typ premenných od neho požadujeme? Použijeme deklaráciu premenných.  

V jazyku Basic nie je povinná ale pri orientácii v dlhých kódoch sa vyplatí. Bez deklarovania premenných sa vytvorí premenná Variant, ktorá sa správa ako box a môže obsahovať akýkoľvek typ premennej.

Deklaráciu premenných je dobrým zvykom používať na začiatku kódu (ukážeme si to na príkladoch), ale jediným pravidlom je deklarovať premennú pred jej prvým využitím. Je označená špeciálnym slovom Dim, za ktorým nasleduje názov jednej alebo viacerých premenných oddelených čiarkou.

Príklad 1: S využitím deklarácie premennej

Sub Main   REM začiatok procedúry
Dim Retazec  REM deklarácia premennej
Retazec = "V slnečnej sústave je 8 planét"   REM priradenie reťazca
Print Retazec   REM vypísanie obsahu
End Sub   REM koniec procedúry

Výstup: V slnečnej sústave je 8 planét

Môžme použiť príkaz Option Explicit, ktorý automatický skontroluje čí sú premenné deklarované. Máme tak istotu, či sme niečo nezabudli deklarovať.

Ak by sme v príklade 1 napísali Print Retazec2, vypísalo by to chybu.

Určenie typu premenných

Typ premenných vieme určiť dvojakým spôsobom. Prvý je pri počiatočnej deklarácii, druhý spôsob pomocou znakov typu premenných, predstavené v minulom diele.

Pri prvom spôsobe určenia typu premennej použijeme kľúčové slovo As.

Príklad 2: S využitím automatickej kontroly Option Explicit a určením typu premenných pri deklarácii

Option Explicit  REM automatická kontrola

Sub Objemkvadra
 REM začiatok procedúry
Dim Dlzka As Double, Sirka As Double, Vyska As Double, Objem As Double  REM deklarácie premenných s určením typov premenných

Dlzka = 15.878 
REM prideľovanie hodnôt
Sirka = 6.11
Vyska = 4.55
Objem = Dlzka*Sirka*Vyska  REM vypočítanie objemu
Print Objem 
REM výpis hodnoty

End Sub 
REM koniec procedúry

Výstup: 441,416339

Príklad 3: Druhý spôsob určenia typu premenných sú pomocou znakov. Keďže nepotrebujeme deklaráciu premenných, Option Explicit je zbytočný použiť

Sub Objemkvadra  REM začiatok procedúry

Dlzka# = 15.878  REM určenie typu premenných pomocou znakov
Sirka# = 6.11
Vyska# = 4.55
Objem# = Dlzka*Sirka*Vyska   REM vypočet objemu
Print Objem   REM vypísanie výsledku

End Sub   REM koniec procedúry

Výsledok: 441,416339

Príklad 4: Teraz použijeme kód s 2 príkladu a pridáme tam nedeklarovanú premennú

Option Explicit  REM automatická kontrola

Sub Objemkvadra  REM začiatok procedúry
Dim Dlzka As Double, Sirka As Double, Vyska As Double, Objem As Double  REM deklarácie premenných s určením typov premenných

Dlzka = 15.878   REM prideľovanie hodnôt
Sirka = 6.11
Vyska = 4.55
Vyska2 = 5.66
Objem = Dlzka*Sirka*Vyska2  REM vypočítanie objemu
Print Objem   REM výpis hodnoty

End Sub   REM koniec procedúry

Výstup: Premenná nie je definovaná

Vidíme, že premenná Vyska2 nebola deklarovaná, čiže Option Explicit funguje tak ako má.

Rôzne premenné v kóde

Jazyk Basic nemá problém kombinovať premenné rôzneho typu. Avšak, pri kombinovaní racionálnych a celočíselných premenných môže nastať menšia presnosť výslednej hodnoty.

Najvýraznejšie je to vidieť pri prevode z racionálnych čísel do celočíselných.

Príklad 5: Príklad na rôzne premenné v makre

Sub PlochaObdlzniku  REM začiatok procedúry
Dim Dlzka As Double, Sirka As Double  REM deklarácie premenných
Dim Plocha1 As Double, Plocha2 As Long

Dlzka = 10   REM priradenie hodnôt
Sirka = 5.275
Plocha1 = Dlzka * Sirka    REM výpočty
Plocha2 = Dlzka * Sirka
Print Plocha1   REM výpis výsledkov
Print Plocha2

End Sub   REM koniec procedúry

Výsledok: prvý je 52,75 a druhý 53

Čo sa stalo? Vynásobenie síce prebehlo v racionálnych číslach, ale druhý výsledok je v celočíselnom type. Celočíselný typ podporuje len celé čísla a preto sú racionálne čísla zaokrúhľované.

(Jako ve škole) Průměr: 1,00 | Hodnotilo: 3
 

Přidat názor

 

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě. Diskuzi můžete sledovat pomocí RSS kanálu.

 
Eduard Boldižár

Eduard Boldižár

Som redaktorom stránky ExoSpace. Medzi moje záľuby patrí astronómia, sci-fi literatúra a programovanie.

 
 
 
woo jaw demo hz