Modul
Tartalom
Index 🔎︎

# Változók használata

Az alábbi rész a változók alapvető használati módját írja le a LibreOffice Basicben.

## Elnevezési szokások a változók azonosítására

Egy változónév maximum 255 karakterből állhat. A változó első karakternének A-Z vagy a-z betűnek kell lennie. A változónevekben számok is használhatók, de az írásjelek és speciális karakterek nem engedélyezettek az aláhúzásjel („_”) kivételével. A LibreOffice Basic változóazonosítók nem különböztetik meg a kis- és nagybetűket. A változónevek tartalmazhatnak szóközöket, de ilyenkor a nevet szögletes zárójelek közé kell tenni.

Példák a változóazonosítókra:

    MyNumber=5
| Helyes
    MyNumber5=15
| Helyes
    MyNumber_5=20
| Helyes
    My Number=20
| Nem érvényes, a szóközt tartalmazó változónak szögletes zárójelben kell állnia
    [My Number]=12
| Helyes
    DéjàVu=25
| Nem érvényes, a különleges karakterek nem megengedettek
    5MyNumber=12
| Nem érvényes, a változó nem kezdődhet számmal
    Number,Mine=12
| Nem érvényes, az írásjel nem megengedett.

## Változók deklarálása

A LibreOffice Basicben nem kell explicit módon deklarálni a változókat. Egy változódeklaráció megadható a Dim utasítással. Egyszerre több változót is deklarálhat a neveket vesszővel elválasztva. A változótípus definiálásához használhatja a név után a típusdeklarációs jelet vagy a megfelelő kulcsszót.

Példák a változók deklarálására (meghatározására):

    Dim a$
| Az „a” változót string (karakterlánc) változóként deklarálja.
    Dim a As String
| Az „a” változót string (karakterlánc) változóként deklarálja.
    Dim a$, b As Integer
| Egy változót string (karakterlánc) típusúként, egy másikat pedig integer (egész szám) típusúként deklarál.
    Dim c As Boolean
| A c-t boolean (logikai) változóként deklarálja, amely TRUE (igaz) vagy FALSE (hamis) értékű lehet.

Nagyon fontos változók deklarálásakor, hogy mindig használja a típusdeklarációs karaktert, még akkor is, ha azt használta a deklarációban a kulcsszó helyett. Az alábbi utasítások érvénytelenek:

    Dim a$
| Az „a” változót karakterláncként deklarálja.
    a="TestString"
| A típusdeklaráció hiányzik: "a$="

Miután egy változót egy bizonyos típusnak deklarált, ugyanilyen név alatt nem adhat meg újra egy másik változót más típussal!

### Változódeklarációk kényszerítése

A változódeklaráció erőltetésére használja az alábbi parancsot:

    Option Explicit

Az Option Explicit utasításnak a modul első sorában kell állni, az első SUB utasítás előtt. Általában csak a tömböket kell explicit módon deklarálni. Az összes többi változó a típusdeklarációs karakternek megfelelően lesz deklarálva, vagy - ha az nincs megadva - az alapértelmezett Single (egyszeres pontosságú) típusként.

## Változók típusai

A LibreOffice Basic négy változóosztályt támogat:

- A Numerikus változók számértékeket tartalmazhatnak. Néhány változó nagy vagy kis számokat tartalmaz, mások pedig lebegőpontos vagy törtszámokhoz használhatók.

- A String (karakterlánc) változók karakterláncokat tartalmaznak.

- A Boolean (logikai) változók TRUE (igaz) vagy FALSE (hamis) értéket tartalmaznak.

- Az Object (objektum) változók különböző típusú objektumokat tárolhatnak, mint például a dokumentumokon belüli táblázatok vagy dokumentumok.

### Integer (egész szám) változók

Az integer (egész szám) változók értéke -32768-tól 32767-ig terjedhet. Ha egy lebegőpontos értéket rendel egy integer (egész szám) változóhoz, akkor a tizedesjegyek kerekítve lesznek a következő egész számra. Az integer (egész szám) változókat a program gyorsan ki tudja számítani az eljárásokban és megfelelnek a ciklusokban lévő számlálóváltozókhoz. Egy integer (egész szám) változó csak két bájt memóriát foglal el. A „%” a típusdeklarációs karakter.

    Dim Variable%

    Dim Variable As Integer

### Long integer (hosszú egész szám) változók

A long integer (hosszú egész szám) változók értéke -2147483648-tól 2147483647-ig terjedhet. Ha egy lebegőpontos értéket rendel egy long integer (hosszú egész szám) változóhoz, akkor a tizedesjegyek kerekítve lesznek a következő egész számra. A long integer (hosszú egész szám) változók gyorsan számolhatók az eljárásokban, és megfelelnek a ciklusokban lévő nagy számlálóváltozókhoz. A hosszú egész szám változó négy bájt memóriát foglal el. Az „&” a típusdeklarációs karakter.

    Dim Variable&

    Dim Variable As Long

### Decimális változók

A decimális változók pozitív, negatív vagy zérus értéket vehetnek fel. A pontosság legfeljebb 29 számjegy.

A decimális számok elé írhat plusz (+) vagy mínusz (-) jeleket (szóközzel vagy anélkül).

Ha egy decimális szám egy egész változóhoz van hozzárendelve, a LibreOffice Basic fel- vagy lekerekíti a számot.

### Single (egyszeres pontosságú) változók

A single (egyszeres pontosságú) változók pozitív és negatív értékeket vehetnek fel 3.402823 x 10E38 és 1.401298 x 10E-45 között. A single (egyszeres pontosságú) változók lebegőpontos változók, ahol a törtrész pontossága csökken az egészrész pontosságának növekedésével. A single (egyszeres pontosságú) változók az átlagos pontosságú matematikai számításokhoz megfelelőek. A számítás több időt igényel, mint integer (egész szám) változókkal, de gyorsabb, mint double (dupla pontosságú) változókkal. A single (egyszeres pontosságú) változó 4 bájt memóriát foglal el. A típusdeklarációs karakter a „!”.

    Dim Variable!

    Dim Variable As Single

### Double (dupla pontosságú) változók

A double (dupla pontosságú) változók pozitív és negatív értékeket vehetnek fel 1.79769313486232 x 10E308 és 4.94065645841247 x 10E-324 között. A double (dupla pontosságú) változók lebegőpontos változók, ahol a törtrész pontossága csökken az egészrész pontosságának növekedésével. A double (dupla pontosságú) változók pontos számításokhoz megfelelőek. Ezek a számítások több időt igényelnek, mint a single (egyszeres pontosságú) változókkal végzett számítások. A double (dupla pontosságú) változók 8 bájt memóriát foglalnak el. A típusdeklarációs karakter „#”.

    Dim Variable#

    Dim Variable As Double

### Currency (pénznem) változók

A currency (pénznem) változók belsőleg 64 bites számokként (8 bájt) tárolódnak, és rögzített decimális számként jelennek meg 15 egész és 4 tizedes értékkel. Az értékek a -922337203685477.5808 - +922337203685477.5807 tartományba esnek. A currency (pénznem) változók a pénznemértékek nagy pontosságú kiszámításához használhatók. A típusdeklarációs karakter a „@”.

    Dim Variable@

    Dim Variable As Currency

### String (karakterlánc) változók

A string (karakterlánc) változók maximum 65535 karakteres karakterláncokat tárolhatnak. Minden karakter a megfelelő Unicode-érték szerint kerül tárolásra. A string (karakterlánc) változók a programokon belüli szövegszerkesztésre és a nem nyomtatható karakterek ideiglenes tárolására alkalmasak maximum 64 kilobájt méretig. A string (karakterlánc) változók tárolásához szükséges memória a változó karaktereinek számától függ. A típusdeklarációs karakter a „$”.

    Dim Variable$

    Dim Variable As String

### Boolean (logikai) változók

A Boolean (logikai) változók csak a két érték egyikét tartalmazzák: TRUE (igaz) vagy FALSE (hamis). A 0-s szám a FALSE (hamis) értéknek, minden más szám a TRUE (igaz) értéknek felel meg.

    Dim Variable As Boolean

### Date (dátum) változók

A date (dátum) változók csak belső formátumban tárolt dátum- és időértékeket tartalmazhatnak. A date (dátum) változóhoz Dateserial, Datevalue, Timeserial vagy Timevalue függvény segítségével rendelt értékeket a rendszer automatikusan konvertálja belső formátumra. A date (dátum) változókat a Day, Month, Year vagy az Hour, Minute, Second függvénnyel lehet konvertálni normál számmá. A belső formátum lehetővé teszi dátum/idő-értékek összehasonlítását a két szám közötti különbség kiszámításával. Ezek a változók csak a Date kulcsszóval deklarálhatók.

    Dim Variable As Date

## Változók kezdeti értéke

Ha a változó deklarálásra került, akkor a rendszer automatikusan „Null” értékre állítja. Vegye figyelembe az alábbi jelölési szokásokat:

A numerikus változókhoz a rendszer automatikusan hozzárendeli a „0” értéket, deklarálásuk után.

A date (dátum) változókhoz belsőleg hozzá van rendelve a 0 érték, ami ugyanaz, mintha konvertálná a „0” értéket a Day, Month, Year vagy az Hour, Minute, Second függvénnyel.

String (karakterlánc) változókhoz a rendszer deklaráláskor üres karakterláncot rendel ("").

## Tömbök

A LibreOffice Basic egy vagy többdimenziós tömböket ismer, amelyet a megadott változótípus definiál. A tömbök listák és táblázatok szerkesztésére alkalmasak a programokban. A tömb egyedi elemei numerikus indexen keresztül címezhetők.

A tömböket a Dim utasítással kell deklarálni. A tömb indextartománya többféleképp megadható:

    Dim Text$(20)
| 0-tól 20-ig számozott huszonegy elem
    Dim Text$(5,4)
| 30 elem (egy 6 * 5 elemű mátrixban)
    Dim Text$(5 To 25)
| 21 elem, 5-25-ig számozva
    Dim Text$(-15 To 5)
| -15-től 5-ig számozott huszonegy elem (0-val együtt)

Az indextartomány pozitív és negatív számokat is tartalmazhat.

## Állandók

Az állandók rögzített értékkel rendelkeznek. A programban csak egyszer vannak megadva, és később nem adhatók meg újra:

    Const ConstName=Expression