Ús de variables

From LibreOffice Help
Jump to: navigation, search

Tot seguit es descriu l'ús bàsic de variables al Basic de l'LibreOffice.

Convencions de nomenclatura per a identificadors de variables

Un nom de variable pot constar d'un màxim de 255 caràcters. El primer caràcter d'un nom de variable ha de ser una lletra A-Z o a-z. També es poden utilitzar nombres en un nom de variable, però els signes de puntuació i els caràcters especials no es permeten, excepte el caràcter de subratllat ("_"). Al Basic de l'LibreOffice els identificadors de variable no distingeixen les majúscules de les minúscules. Els noms de variable poden incloure espais però s'han de col·locar entre claudàtors si en contenen.

Exemples d'identificadors de variable:

MyNumber=5 Correcte
MyNumber5=15 Correcte
MyNumber_5=20 Correcte
My Number=20 No és vàlida, una variable amb espais s'ha de col·locar entre claudàtors
[My Number]=12 Correcte
DéjàVu=25 No vàlid, els caràcters especials no es permeten
5MyNumber=12 No és vàlid, una variable no pot començar amb un nombre
Number,Mine=12 No és vàlid, no s'admeten les maques de puntuació

Declaració de variables

Al Basic de l'LibreOffice no cal que declareu les variables explícitament. Una declaració de variable es pot dur a terme amb l'expressió Dim. Podeu declarar més d'una variable en qualsevol moment separant els noms amb una coma. Per definir el tipus de variable, utilitzeu un signe de declaració de tipus després del nom, o la paraula clau apropiada.

Exemples de declaracions de variables:

DIM a$ Declara la variable "a" com a cadena
DIM a As String Declara la variable "a" com a cadena
DIM a$, b As Integer Declara una variable com a Cadena i una com a Enter
DIM c As Boolean Declara c com a variable booleana que pot ser CERTA o FALSA

Quan declareu variables, és molt important que utilitzeu el caràcter de declaració de tipus cada vegada, fins i tot si es va utilitzar a la declaració en lloc d'una paraula clau. Per tant, les expressions següents no són vàlides:

DIM a$ Declara "a" com a cadena
a="CadenaProva" Type-declaration missing: "a$="
Warning.png Un cop hàgiu declarat que una variable és d'un cert tipus, no podeu tornar a declarar la variable sota el mateix nom a un tipus diferent.

Forçament de declaracions de variables

Per forçar la declaració de variables, utilitzeu l'ordre següent:

OPTION EXPLICIT

L'expressió Opció explícita ha de ser la primera línia del mòdul, abans de la primera SUB. Generalment, només les matrius s'han de declarar explícitament. La resta de variables es declaren segons el caràcter de declaració de tipus o, si s'omet, segons el tipus Senzill per defecte.

Tipus de variable

El Basic de l'LibreOffice admet quatre classes de variables:

  • Les variables numèriques poden contenir valors de nombre. Algunes variables s'utilitzen per emmagatzemar nombres grans o petits, i d'altres s'utilitzen per a nombres de coma flotant o fraccionaris.
  • Les variables de cadena contenen cadenes de caràcters.
  • Les variables booleanes contenen el valor CERT o el valor FALS.
  • Les variables d'objecte poden emmagatzemar objectes de diferents tipus, com ara taules i documents a dins d'un document.

Variables d'enters

Les variables d'enter van de -32768 a 32767. Si assigneu un valor de coma flotant a una variable d'enter, els llocs decimals s'arrodoneixen a l'enter següent. Les variables d'enter es calculen ràpidament en procediments i són apropiades per a variables de recompte en bucles. Una variable d'enter només requereix dos bytes de memòria. "%" és el caràcter de declaració de tipus.

Dim Variable%

Dim Variable As Integer

Variables d'enter llarg

Les variables d'enter llarg van de -2147483648 a 2147483647. Si assigneu un valor de coma flotant a una variable d'enter llarg, els llocs decimals s'arrodoneixen a l'enter següent. Les variables d'enter llarg es calculen ràpidament en procediments i són adequades per a variables de recompte en bucles per a valors elevats. Una variable d'enter llarg requereix quatre bytes de memòria. "&" és el caràcter de declaració de tipus.

Dim Variable&

Dim Variable as Long

Variables decimals

Les variables decimals poden prendre nombres positius o negatius, o zero. La precisió és de fins a 29 dígits.

Podeu utilitzar els signes més (+) o menys (-) com a prefixos per a nombres decimals (amb espais o sense).

Si un nombre decimal s'assigna a una variable entera, LibreOffice Basic arrodoneix la xifra cap amunt o cap avall.

Variables simples

Les variables senzilles poden prendre valors positius o negatius entre 3,402823 x 10E38 i 1,401298 x 10E-45. Les variables senzilles són variables de coma flotant, en què la precisió decimal disminueix a mesura que augmenta la part no decimal de la xifra. Les variables senzilles són adequades per a càlculs matemàtics de precisió mitjana. Els càlculs requereixen més temps que per a les variables d'enters, però són més ràpides que amb les variables dobles. Una variable senzilla requereix 4 bytes de memòria. El caràcter de declaració de tipus és "!".

Dim Variable!

Dim Variable as Single

Variables dobles

Les variables dobles poden prendre valors positius o negatius entre 1,79769313486232 x 10E308 i 4,94065645841247 x 10E-324. Les variables dobles són variables de coma flotant, en què la precisió decimal disminueix a mesura que augmenta la part no decimal de la xifra. Les variables dobles són adequades per a càlculs precisos. Els càlculs requereixen més temps que per a les variables senzilles. Una variable doble requereix 8 bytes de memòria. El caràcter de declaració de tipus és "#".

Dim Variable#

Dim Variable As Double

Variables de moneda

Les variables de moneda s'emmagatzemen internament com a nombres de 64 bits (8 Bytes) i es mostren com a nombre de decimal fix amb 15 llocs no decimals i 4 llocs decimals. Els valors van de -922337203685477,5808 a +922337203685477,5807. Les variables de moneda s'utilitzen per calcular els valors de moneda amb una precisió elevada. El caràcter de declaració de tipus és "@".

Dim Variable@

Dim Variable As Currency

Variables de cadenes

Les variables de cadena poden mantenir cadenes de caràcters amb fins a 65.535 caràcters. Cada caràcter s'emmagatzema com el valor Unicode corresponent. Les variables de cadena són adequades per al processament de text en programes i per a l'emmagatzematge temporal de qualsevol caràcter no imprimible fins a una llargada màxima de 64 Kbytes. La memòria requerida per emmagatzemar variables de cadena depèn del número de caràcters a la variable. El caràcter de declaració de tipus és "$".

Dim Variable$

Dim Variable As String

Variables booleanes

Les variables booleanes només emmagatzemen dos valors: CERT o FALS. Un número 0 s'avalua en FALS, la resta de valors s'avaluen en CERT.

Dim Variable As Boolean

Variables de data

Les variables de data només poden contenir valors de data i d'hora emmagatzemats en un format intern. Els valors assignats a les variables de data amb Dateserial, Datevalue, Timeserial o Timevalue es converteixen automàticament al format intern. Les variables de data es converteixen en números normals mitjançant les funcions Day, Month, Year o Hour, Minute, Second. El format intern permet una comparació dels valors de data/hora calculant la diferència entre dos nombres. Aquestes variables només es poden declarar amb la paraula clau Date.

Dim Variable As Date

Valors de variable inicials

Tan aviat com es declara una variable, s'estableix automàticament al valor "Nul". Tingueu en compte les convencions següents:

A les variables numèriques se'ls assigna el valor "0" tan aviat com es declaren.

Les variables de data tenen assignat el valor 0 internament; equivalent a convertir el valor a "0" amb la funció Day, Month, Year o Hour, Minute, Second.

Les variables de cadena tenen assignada una cadena buida ("") quan es declaren.

Matrius

El Basic de l'LibreOffice coneix matrius d'una dimensió o de diverses dimensions, definides per un tipus de variable especificat. Les matrius serveixen per editar llistes i taules en programes. Es pot accedir als elements individuals d'una matriu a través d'un índex numèric.

Les matrius s'han de declarar amb l'expressió Dim. Hi ha diverses maners de definir el rang d'índex d'una matriu:

DIM text$(20) 21 elements numerats del 0 al 20
DIM text$(5,4) 30 elements (una matriu de 6 x 5 elements)
DIM text$(5 to 25) 21 elements numerats de 5 a 25
DIM text$(-15 to 5) 21 elements (0 inclòs), numerats de -15 a 5

El rang d'índex pot incloure nombres positius i negatius.

Constants

Les constants tenen un valor fix. Només es defineixen una vegada al programa i no es poden tornar a definir més endavant:

CONST ConstName=Expression