Vsebina
Kazalo 🔎︎

# Uporaba spremenljivk

Sledi opis osnov uporabe spremenljivk v LibreOffice Basicu.

## Pravila poimenovanja za identifikatorje spremenljivk

Ime spremenljivke ima lahko največ 255 znakov. Prvi znak imena mora biti črka. V imenu spremenljivke lahko uporabite tudi številke, ločila in ostali posebni znaki pa razen podčrtaja (»_«) niso dovoljeni. LibreOffice Basic pri imenih spremenljivk ne razlikuje med velikimi in malimi črkami. Imena spremenljivk lahko vsebujejo presledke, vendar morajo biti v tem primeru ograjena v zavite oklepaje.

Primeri imen spremenljivk:

        MojaStevilka=5      'Pravilno'
        MojaStevilka5=15    'Pravilno'
        MojaStevilka_5=20   'Pravilno'
        Moja stevilka=20    'Neveljavno. Ime spremenljivke s presledkom mora biti ograjeno z oglatimi oklepaji'
        [Moja stevilka]=12  'Pravilno'
        MojaŠtevilka=25       'Neveljavno, posebni znaki niso dovoljeni.'
        5MojaStevilka=12    'Neveljavno, ime spremenljivke se ne sme začeti s številko.'
        Stevilka,moja=12  'Neveljavno, ločila niso dovoljena.'

## Deklariranje spremenljivk

V LibreOffice Basicu vam spremenljivk ni treba posebej deklarirati. Deklaracijo lahko izvedete z ukazom Dim. Naenkrat lahko deklarirate več spremenljivk tako, da jih navedete in ločite z vejico. Za določitev vrste spremenljivke uporabite znak za deklaracijo vrste za imenom spremenljivke ali ustrezno ključno besedo.

Primeri za deklaracije spremenljivke:

        Dim a$               'Deklarira spremenljivko »a« kot String (niz znakov)'
        Dim a As String      'Deklarira spremenljivko »a« kot String (niz znakov)'
        Dim a$, b As Integer 'Deklarira prvo spremenljivko kot String (niz znakov) in drugo kot Integer – celo število'
        Dim c As Boolean     'Deklarira spremenljivko c kot Boolean, to je logično spremenljivko, ki je lahko res (TRUE) ali ni res (FALSE)'

Ko enkrat deklarirate spremenljivko določene vrste, ne morete deklarirati spremenljivke druge vrste z enakim imenom!

### Obvezno deklariranje spremenljivk

Če želite, da bo deklaracija spremenljivk obvezna, uporabite sledeči ukaz:

    Option Explicit

Ukaz Option Explicit mora biti prva vrstica v modulu, pred prvim ukazom SUB. V splošnem je izrecna deklaracija potrebna samo za polja. Vse ostale spremenljivke se deklarirajo v skladu z znakom za vrsto deklaracije ali pa, če ga ni, kot privzeta vrsta Single.

## Vrste spremenljivk

LibreOffice Basic podpira štiri razrede spremenljivk:

- Numerične spremenljivke lahko vsebujejo številčne vrednosti. Nekatere spremenljivke se uporabljajo za velika ali majhna števila, druge pa za števila s plavajočo vejico ali ulomke.

- Znakovne spremenljivke (String) vsebujejo nize znakov.

- Logične (Boolean) spremenljivke vsebujejo vrednost res ali ne res (TRUE ali FALSE).

- Spremenljivke vrste Object (predmet) lahko hranijo predmete različnih vrst, kot so tabele in dokumenti znotraj dokumenta.

### Spremenljivke celoštevilčne vrste Integer

Spremenljivke vrste Integer imajo razpon od -32768 do 32767. Če spremenljivki vrste Integer dodelite vrednost vrste števila s plavajočo vejico, se decimalna mesta zaokrožijo na naslednje celo število. S spremenljivkami vrste Integer se hitro računa in so primerne za števce znotraj programskih zank. Zasedejo samo dva bajta pomnilnika. Znak za deklaracijo vrste je »%«.

    Dim Variable%
    Dim Variable As Integer

### Spremenljivke vrste Long Integer

Celoštevilčne spremenljivke vrste Long Integer imajo razpon od -2147483648 do 2147483647. Če spremenljivki vrste Long Integer dodelite vrednost vrste števila s plavajočo vejico, se decimalna mesta zaokrožijo na naslednje celo število. S spremenljivkami vrste Long Integer se hitro računa in so zato primerne za števce znotraj programskih zank. Zasedejo štiri bajte pomnilnika. Znak za deklaracijo vrste je »&«.

    Dim Variable&
    Dim Variable As Long

### Decimalne spremenljivke

Decimalne spremenljivke imajo lahko negativno ali pozitivno vrednost ali so enake nič. Natančnost je do 29 decimalk.

Kot predznak za decimalne številke lahko uporabite znak plus (+) ali minus (-) (s presledkom ali brez).

Če je celoštevilčni spremenljivki določena decimalna številka, LibreOffice Basic zaokroži vrednost navzgor ali navzdol.

### Spremenljivke vrste Single

Spremenljivke vrste Single lahko zavzemajo negativno ali pozitivno vrednost z obsegom od 3,402823 x 10E38 do 1,401298 x 10E-45. Gre za števila s plavajočo vejico, pri katerih se natančnost decimalnega dela števila manjša z naraščanjem celega dela števila. Primerne so za matematične izračune s povprečno natančnostjo. Izračuni zahtevajo več časa kot spremenljivke vrste Integer, so pa bolj hitri od izračunov s spremenljivkami vrste Double. Spremenljivka vrste Single zasede 4 bajte pomnilnika. Znak za deklaracijo vrste je »!«.

    Dim Variable!
    Dim Variable As Single

### Spremenljivke vrste Double

Spremenljivke vrste Double lahko imajo negativno ali pozitivno vrednost z obsegom od 1,79769313486232 x 10E308 do 4,94065645841247 x 10E-324. Gre za števila s plavajočo vejico, pri katerih se natančnost decimalnega dela števila manjša z naraščanjem celega dela števila. Primerne so za natančne matematične izračune. Izračuni zahtevajo več časa kot spremenljivke vrste Single. Spremenljivka vrste Double zasede 8 bajte pomnilnika. Znak za deklaracijo vrste je »#«.

    Dim Spremenljivka#
    Dim Variable As Double

### Spremenljivke vrste Currency

Spremenljivke vrste Currency (valuta) so notranje hranjene kot 64-bitna števila (8 bajtov) in prikazana kot številke s 15 celimi mesti in 4 decimalnimi mesti. Njihove vrednost obsegajo od -922.337.203.685.477,5808 do +922.337.203.685.477,5807. Uporabljamo jih za računanje finančnih postavk z visoko natančnostjo. Znak za deklaracijo vrste je »@«.

    Dim Variable@
    Dim Variable As Currency

### Zapisi celih števil

Števila so lahko v osmiški ali šestnajstiški obliki.

      xi = &o13 '    8 + 3
      ci = &h65 ' 6*16 + 5
      MAX_Integer =  &o77777 '  32767 = &h7FFF
      MIN_Integer = &o100000 ' -32768 = &h8000
      MAX_Long = &h7fffffff '  2147483647 = &o17777777777
      MIN_Long = &h80000000 ' -2147483648 = &o20000000000

### Spremenljivke vrste String

Spremenljivke vrste String lahko vsebujejo nize znakov do dolžine 65.535 znakov. Vsak znak je shranjen kot ustrezna koda Unicode. Spremenljivke vrste String so primerne za obdelavo besedil v okviru programa in za shranjevanje poljubnih kombinacij znakov do dolžine 64k. Velikost potrebnega pomnilnika za spremenljivko vrste String je odvisna od števila znakov v njej. Znak za deklaracijo vrste je »$«.

    Dim Variable$
    Dim Variable As String

### Spremenljivke vrste Boolean

Spremenljivke vrste Boolean lahko shranjujejo le dve vrednosti: ali RES ali NI RES. Število 0 velja za FALSE, vse ostale vrednosti pa kot TRUE.

    Dim Variable As Boolean

### Spremenljivke vrste Date

Spremenljivke vrste Date vsebujejo podatke o datumu in času, pretvorjene v notranjo obliko. Vrednosti, dodeljene spremenljivki vrste Date z Dateserial, Datevalue, Timeserial ali Timevalue, se samodejno pretvorijo v notranjo obliko. Datumske spremenljivke pretvorimo v številke z uporabo funkcij Day, Month, Year ali Hour, Minute, Second. Notranja oblika omogoča primerjavo oziroma izračun razlike med dvema številkama. Te spremenljivke je mogoče deklarirati samo s ključno besedo Date.

    Dim Variable As Date

## Začetne vrednosti spremenljivk

Takoj, ko je spremenljivka deklarirana, dobi vrednost »Null«. Pri tem veljajo naslednja pravila:

Spremenljivke vrste Numeric dobijo ob deklaraciji vrednost »0«.

Spremenljivke vrste Date dobijo interno vrednost 0, to je vrednost, ki bi jo dobili, če bi vanje vnesli vrednost »0« s funkcijami Day, Month, Year ali Hour, Minute, Second.

Spremenljivke vrste String ob deklaraciji dobijo vrednost praznega niza ("").

## Polja

LibreOffice Basic podpira eno- ali večdimenzionalna polja spremenljivk z dano vrsto spremenljivke. Polja so primerna za urejanje seznamov ali tabel v programih. Posamezni elementi polja so naslovljivi s številčnim indeksom.

Polja morate deklarirati z ukazom Dim. Za definicijo obsega indeksa polja sta na razpolago dve metodi:

        Dim besedilo$(20)       '21 elementov, oštevilčenih od 0 do 20'
        Dim besedilo$(5,4)      '30 elementov (matrika 6 x 5 elementov)'
        Dim besedilo$(5 to 25)   '21 elementov, oštevilčenih od 5 do 25'
        Dim besedilo$(-15 To 5) '21 elementov, oštevilčenih od -15 do 5 (vključno z 0)'

Obseg indeksa vsebuje lahko pozitivne in negativne številke.

## Konstante

Konstante imajo nespremenljivo vrednost. Določimo jih samo enkrat v programu in jih kasneje ni mogoče znova definirati:

    Const ConstName=Expression