Módulo
Contido
Índice 🔎︎

# Usar variábeis

A continuación descríbese o uso básico das variábeis en LibreOffice Basic.

## Convencións de nomeamento das variábeis

O nome dunha variábel pode consistir nun máximo de 255 caracteres. O primeiro carácter do nome dunha variábel debe ser unha letra A-Z ou a-z. Tamén se poden empregar números no nome dunha variábel, mais os símbolos de puntuación e os caracteres especiais non están permitidos, coa excepción do trazo de subliñado ou guión baixo («_»). No Basic do LibreOffice os identificadores de variábeis non diferencian entre maiúsculas e minúsculas. Os nomes das variábeis poden conter espazos, mais neste caso deben ir metidas entre corchetes.

Exemplos de identificadores de variábeis:

          MyNumber=5
| Correcto
          MyNumber5=15
| Correcto
          MyNumber_5=20
| Correcto
          My Number=20
| Incorrecto, as variábeis que conteñen espazos deben situarse entre corchetes
          [My Number]=12
| Correcto
          DéjàVu=25
| Incorrecto, non se permiten caracteres especiais
          5MyNumber=12
| Incorrecto, as variábeis non poden comezar por un número
          Number,Mine=12
| Incorrecto, non se permiten sinais de puntuación

## Declaración de variábeis

No Basic do LibreOffice non hai que declarar as variábeis explicitamente. Pódese realizar unha declaración dunha variábel coa declaración Dim. Pódese declarar máis de unha variábel por vez, separando os nomes con vírgulas. Para definir o tipo de variábel, empregue un símbolo de declaración de tipo a continuación do nome ou empregue a palabra chave apropiada.

Exemplos de declaracións de variábeis:

          Dim a$
| Declara a variábel «a» como String (cadea)
          Dim a As String
| Declara a variábel «a» como String (cadea)
          Dim a$, b As Integer
| Declara unha variábel como String (cadea) e outra como Integer (enteiro)
          Dim c As Boolean
| Declara c como variábel lóxica que é VERDADEIRA ou FALSA

Ao declarar variábeis, é moi importante que utilice sempre o carácter de declaración de tipo, mesmo que se usase na declaración en vez dunha palabra chave. Deste modo, as seguintes instrucións non son válidas:

          Dim a$
| Declara «a» como String (cadea)
          a="TestString"
| Ausencia de declaración de tipo: «a$=»

Despois de declarar unha variábel como dun tipo específico, non pode declarala de novo co mesmo nome e un tipo diferente!

### Obrigatoriedade das declaracións de variábeis

Use a seguinte orde para forzar a declaración de variábeis:

    Option Explicit

The Option Explicit statement has to be the first line in the module, before the first SUB. Generally, only arrays need to be declared explicitly. All other variables are declared according to the type-declaration character, or - if omitted - as the default type Single.

## Tipos de variábeis

LibreOffice Basic admite catro clases de variábeis:

- As variábeis numéricas poden conter valores numéricos. Algunhas variábeis empréganse para almacenar números grandes ou pequenos e outras empréganse para números de vírgula flutuante ou números fraccionarios.

- As variábeis de cadea conteñen cadeas de caracteres.

- As variábeis lóxicas conteñen ora o valor VERDADEIRO ora o FALSO.

- As variábeis de obxecto poden almacenar obxectos de diversos tipos, como táboas e documentos dentro dun documento.

### Variábeis enteiras

As variábeis enteiras comprenden o intervalo de -32768 a 32767. Se atribúe un valor de punto flotante a unha variábel de número enteiro, os decimais arredóndanse ao número enteiro máis próximo. As variábeis enteiras calcúlanse rapidamente nos procedementos e son apropiadas como variábeis contador en lazos. Esas variábeis só requiren dous bytes de memoria. O carácter de declaración de tipo desas variábeis é o «%».

    Dim Variable%
    Dim Variable As Integer

### Variábeis enteiras longas

As variábeis enteiras longas comprenden o intervalo -2147483648 a 2147483647. Se atribúe un valor de punto flotante a unha variábel de número enteiro longo, os decimais arredóndanse ao número enteiro máis próximo. As variábeis enteiras longas calcúlanse rapidamente nos procedementos e son apropiadas para contadores por lazos con valores maiores. Esas variábeis requiren catro bytes de memoria. O carácter de declaración de tipo desas variábeis é o «&».

    Dim Variable&
    Dim Variable As Long

### Variábeis decimais

As variábeis decimais poden tomar números positivos, negativos ou cero. A precisión chega aos vinte e nove díxitos.

Pódense empregar símbolos de máis (+) ou menos (-) para os números decimais (con ou sen espazos).

Se un número decimal for asignado a unha variábel enteira, o Basic do LibreOffice arredonda o número por exceso ou por defecto.

### Variábeis simples

As variábeis simples conteñen valores positivos ou negativos entre 3.402823 x 10E38 e 1.401298 x 10E-45. Son variábeis de punto flotante onde a precisión decimal diminúe cando a parte non decimal aumenta. Son apropiadas para cálculos matemáticos de precisión mediana. Os cálculos precisan de máis tempo que as variábeis enteiras aínda que son máis rápidos que con variábeis duplas. As variábeis simples requiren 4 bytes de memoria. O carácter de declaración de tipo é «!».

    Dim Variable!
    Dim Variable As Single

### Variábeis duplas

As variábeis duplas conteñen valores positivos ou negativos entre 1.79769313486232 x 10E308 e 4.94065645841247 x 10E-324. Son variábeis de punto flotante onde a precisión decimal diminúe cando a parte non decimal aumenta. Son útiles para cálculos precisos. Estes cálculos demoran máis que coas variábeis simples. As variábeis duplas requiren 8 bytes de memoria. O carácter de declaración de tipo é «#».

    Dim Variable#
    Dim Variable As Double

### Variábeis monetarias

As variábeis monetarias almacénanse internamente como números de 64 bits (8 Bytes) e móstranse como un número decimal fixo con 15 díxitos non decimais e 4 decimais. Os valores varían desde -922337203685477.5808 a +922337203685477.5807. Úsanse para calcular valores monetarios con alta precisión. O carácter de declaración de tipo é «@».

    Dim Variable@
    Dim Variable As Currency

### Variábeis de cadea

As variábeis de cadea almacenan cadeas de ata 65.535 caracteres. Cada carácter almacénase segundo o seu correspondente valor Unicode. Son útiles para o procesamento de textos dentro de programas e para o almacenamento temporal de caracteres non imprimíbeis de ata 64 Kbytes como máximo. A memoria esixida para o almacenamento destas variábeis depende do número de caracteres que conteña. O carácter de declaración de tipo é o «$».

    Dim Variable$
    Dim Variable As String

### Variábeis lóxicas

As variábeis lóxicas almacenan só un destes valores: VERDADEIRO (TRUE) ou FALSO (FALSE). Un número 0 avalíase como FALSO, mestres que os outros valores avalíanse como VERDADEIRO.

    Dim Variable As Boolean

### Variábeis de data

As variábeis de data poden conter só valores de data e hora almacenados nun formato interno. Os valores atribuídos ás variábeis de tipo Data con Dateserial, Datevalue, Timeserial ou Timevalue son convertidas automaticamente para o formato interno. As variábeis de tipo Data son convertidas para números normais utilizando a función Day, Month, Year ou Hour, Minute, Second. O formato interno permite unha comparación de valores de data/hora calculando a diferenza entre dous números. Esas variábeis pode ser declaradas apenas coa palabra chave Date.

    Dim Variable As Date

## Valores iniciais das variábeis

Tras declarar a variábel, o seu valor defínese automaticamente como «Nulo». Teña en conta as seguintes convencións:

As variábeis numéricas reciben automaticamente o valor «0» así que son declaradas.

As variábeis de data reciben internamente o valor de 0; equivale a converter o valor en «0» coa función Day, Month, Year ou Hour, Minute, Second.

As variábeis de cadea reciben unha cadea baleira («») cando son declaradas.

## Matrices

LibreOffice Basic recoñece matrices unidimensionais ou multidimensionais definidas por un tipo de variábel especificado. Son útiles para editar listas e táboas en programas. Pode acceder a elementos individuais dunha matriz por medio dun índice numérico.

As matrices teñen que ser declaradas coa declaración Dim. Existen varias maneiras de definir o intervalo do índice dunha matriz:

          Dim Text$(20)
| 21 elementos numerados de 0 a 20
          Dim Text$(5,4)
| 30 elementos (unha matriz de 6 x 5 elementos)
          Dim Text$(5 To 25)
| 21 elementos numerados de 5 a 25
          Dim Text$(-15 To 5)
| 21 elementos (incluído o 0), numerados de -15 a 5

O intervalo do índice pode incluír tanto números positivos como negativos.

## Constantes

As constantes teñen un valor fixo. Defínense só unha vez no programa e non poden redefinirse posteriormente:

    Const ConstName=Expression