Použití proměnných

From LibreOffice Help
Jump to: navigation, search

Následující část popisuje základní použití proměnných v LibreOffice Basic.

Konvence pro pojmenování identifikátorů proměnných

Název proměnné může obsahovat maximálně 255 znaků. První znak názvu proměnné musí být písmeno A-Z nebo a-z. V názvu proměnné lze také použít čísla, ale interpunkční a speciální symboly nejsou povoleny, s výjimkou podtržítka ("_"). V LibreOffice Basic nezáleží na velikosti písmen v názvech proměnných. Názvy proměnných mohou obsahovat mezery, ale v tom případě musí být uzavřeny do hranatých závorek.

Příklady identifikátorů proměnných:

MyNumber=5 Správné
MyNumber5=15 Správné
MyNumber_5=20 Správné
My Number=20 Neplatné, proměnné s mezerou v názvu musí být uzavřeny do hranatých závorek
[My Number]=12 Správné
DéjàVu=25 Neplatné, speciální znaky nejsou povoleny
5MyNumber=12 Neplatné, proměnné nemohou začínat číslicí
Number,Mine=12 Neplatné, interpunkce není dovolena

Deklarace proměnných

V LibreOffice Basic nemusíte proměnné explicitně deklarovat. Deklaraci proměnné lze provést příkazem Dim. Jedním příkazem je možné deklarovat několik proměnných, stačí oddělit názvy čárkou. Chcete-li definovat typ proměnné, použijte po názvu buď znaménko typové deklarace nebo odpovídající klíčové slovo.

Příklady deklarace proměnných:

DIM a$ Deklaruje proměnnou "a" jako datový typ String.
DIM a As String Deklaruje proměnnou "a" jako datový typ String.
DIM a$, b As Integer Deklaruje jednu proměnnou jako String a druhou jako Integer
DIM c As Boolean Deklaruje c jako proměnnou typu Boolean, která může být TRUE nebo FALSE

Při deklarování proměnných je velmi důležité vždy použít znak deklarující typ, a to i tehdy, pokud byl v deklaraci použit namísto klíčového slova. Následující příkazy jsou tedy neplatné:

DIM a$ Deklaruje proměnnou "a" jako datový typ String.
a="TestString" Chybí deklarace typu: "a$="
Warning.png Jakmile v deklaraci přiřadíte proměnné určitý typ, není již možné deklarovat proměnnou stejného názvu jako jiný typ!

Vynucení deklarace proměnných

Chcete-li, aby každá proměnná byla deklarována, použijte následující příkaz:

OPTION EXPLICIT

Příkaz Option Explicit musí být na prvním řádku modulu, před prvním SUB. Obecně je třeba explicitně deklarovat pouze pole. Všechny ostatní proměnné se deklarují podle znaku typové deklarace nebo (je-li vynechán) jako implicitní typ Single.

Typy proměnných

LibreOffice Basic podporuje čtyři typy proměnných:

  • Proměnné typu Numeric mohou obsahovat číselné hodnoty. Některé proměnné se používají k ukládání velkých či malých čísel, jiné pro čísla s plovoucí desetinnou čárkou.
  • Proměnné typu String obsahují znakové řetězce.
  • Proměnné typu Boolean obsahují hodnotu TRUE nebo FALSE.
  • Proměnné typu Object mohou obsahovat objekty různých typů, např. tabulky nebo dokumenty.

Proměnné typu Integer

Proměnné typu Integer (celá čísla) mohou být v rozsahu od -32768 do 32767. Pokud celočíselné proměnné přiřadíte hodnotu s desetinnou čárkou, zaokrouhlí se na nejbližší celé číslo. Celočíselné proměnné se počítají velmi rychle a jsou vhodné pro počítadla ve smyčkách. Proměnná typu integer vyžaduje v paměti jen dva bajty. Znak typové deklarace je "%".

Dim Variable%

Dim Variable As Integer

Proměnné typu Long Integer

Proměnné typu Long integer (dlouhá celá čísla) mohou být v rozsahu od 2147483648 do 2147483647. Pokud dlouhé celočíselné proměnné přiřadíte hodnotu s desetinnou čárkou, zaokrouhlí se na nejbližší celé číslo. Celočíselné proměnné se počítají velmi rychle a jsou vhodné pro počítadla ve smyčkách. Proměnná typu Long integer vyžaduje v paměti čtyři bajty. Znak typové deklarace je "&".

Dim Variable&

Dim Variable as Long

Proměnné typu Float

Proměnné typu Float mohou obsahovat kladná nebo záporná čísla s přesností až na 29 desetinných míst.

Jako prefix desetinných čísel můžete použít znaky plus (+) nebo mínus (-) (s mezerami nebo bez).

Pokud přiřadíte desetinné číslo do celočíselné proměnné, LibreOffice Basic zaokrouhlí číslo nahoru nebo dolů.

Proměnné typu Single

Proměnné typu Single mohou obsahovat kladné či záporné hodnoty v rozsahu od 3.402823 x 10E38 do 1.401298 x 10E-45. Proměnné Single jsou proměnné v pohyblivé řádové čárce, kde se počet desetinných míst snižuje při zvyšování počtu míst celé části. Proměnné Single jsou vhodné pro matematické výpočty střední přesnosti. Výpočty jsou náročnější než pro celočíselné proměnné, ale jsou rychlejší než výpočty s proměnnými Double. Proměnná typu Single vyžaduje v paměti čtyři bajty. Znak typové deklarace je "!".

Dim Variable!

Dim Variable as Single

Proměnné typu Double

Proměnné typu Double mohou obsahovat kladné či záporné hodnoty v rozsahu od 1.79769313486232 x 10E308 do 4.94065645841247 x 10E-324. Proměnné Double jsou proměnné v pohyblivé řádové čárce, kde se počet desetinných míst snižuje při zvyšování počtu míst celé části. Proměnné Double jsou vhodné pro přesné matematické výpočty. Výpočty jsou náročnější než pro proměnné Single. Proměnná typu Double vyžaduje v paměti osm bajtů. Znak typové deklarace je "#".

Dim Variable#

Dim Variable As Double

Proměnné typu Currency

Proměnné typu Currency (měna) se interně ukládají jako 64bitová čísla (8 bajtů) a zobrazují se s pevným počtem desetinných míst - 15 míst v celé části a 4 desetinná místa. Rozsah hodnot je od -922337203685477.5808 do +922337203685477.5807. Proměnné Currency se používají pro výpočty s měnami s vysokou přesností. Znak typové deklarace je "@".

Dim Variable@

Dim Variable As Currency

Proměnné typu String

Proměnné typu String mohou obsahovat řetězce o délce až 65 535 znaků. Každý znak je ukládán v odpovídající Unicode hodnotě. Proměnné String jsou vhodné pro zpracování slov v programech a dočasné ukládání netisknutelných znaků až do maximální délky 64 KB. Paměť potřebná k uložení proměnné String závisí na počtu znaků v proměnné. Znak typové deklarace je "$".

Dim Variable$

Dim Variable As String

Booleovské proměnné

Booleovské proměnné mohou obsahovat jen dvě hodnoty: TRUE nebo FALSE. Číslo 0 se vyhodnotí jako FALSE, všechna ostatní jako TRUE.

Dim Variable As Boolean

Proměnné typu Date (datum)

Proměnné typu Date mohou obsahovat jen data nebo časy uložené v interním formátu. Hodnoty přiřazené proměnným Date pomocí Dateserial, Datevalue, Timeserial nebo Timevalue se automaticky převedou na interní formát. Datové proměnné převedete na normální čísla pomocí funkcí Day, Month, Year nebo Hour, Minute, Second. Interní formát umožňuje porovnání dvou datových/časových hodnot pomocí výpočtu rozdílu mezi čísly. Tyto proměnné lze deklarovat jen klíčovým slovem Date.

Dim Variable As Date

Počáteční hodnoty proměnných

Jakmile je proměnná deklarována, její hodnota je automaticky nastavena na "Null". Platí následující pravidla:

Proměnným typu Numeric se automaticky přiřadí hodnota "0", jakmile jsou deklarovány.

Proměnným typu Date se interně přiřadí 0, což odpovídá převodu hodnoty na "0" pomocí funkce Day, Month, Year nebo Hour, Minute, Second.

Proměnným typu String se při deklaraci přiřadí prázdný řetězec ("").

Pole

LibreOffice Basic zná jedno- či vícerozměrná pole, definovaná určeným typem proměnné. Pole jsou vhodná pro seznamy a tabulky v programu. K jednotlivým prvkům pole lze přistupovat pomocí číselného indexu.

Pole musí být deklarována příkazem Dim. Existuje několik možností, jak definovat rozsah pole:

DIM text$(20) 21 prvků číslovaných od 0 do 20
DIM text$(5,4) 30 prvků (matice o 6 x 5 prvcích)
DIM text$(5 to 25) 21 prvků číslovaných od 5 do 25
DIM text$(-15 to 5) 21 prvků (včetně 0) číslovaných od -15 do 5

Index může obsahovat kladná i záporná čísla.

Konstanty

Konstanty mají pevnou hodnotu. V programu se definují jen jednou a nelze je později předefinovat:

CONST Jméno=Výraz