Module
Contents
Index 🔎︎

# Использование переменных

Далее описано основное использование переменных в LibreOffice Basic.

## Соглашения об именовании для идентификаторов переменных

Имя переменной может включать не более 255 символов. Первым символом имени переменной должна быть одна из букв A-Z или a-z. Также разрешается использовать цифры в имени переменной, однако применение знаков пунктуации и специальных символов не допускается, за исключением знака подчёркивания ("_"). В идентификаторах переменных LibreOffice Basic регистр не учитывается. Имена переменных могут содержать пробелы, но в таком случае они обязательно должны быть заключены в квадратные скобки.

Примеры идентификаторов переменных.

          MyNumber=5
| Правильно
          MyNumber5=15
| Правильно
          MyNumber_5=20
| Правильно
          My Number=20
| Неверно; переменная, содержащая пробел, должна быть заключена в квадратные скобки
          [My Number]=12
| Правильно
          DéjàVu=25
| Неверно; специальные символы не разрешены
          5MyNumber=12
| Неверно; переменная не может начинаться с цифры
          Number,Mine=12
| Неверно; знаки пунктуации не разрешены

## Объявление переменных

В LibreOffice Basic объявление переменных может быть неявным. Объявить переменную можно с помощью инструкции Dim. Можно объявлять несколько переменных одновременно, если разделить их имена запятыми. Для определения типа переменной служит либо знак объявления типа после имени, либо соответствующее ключевое слово.

Примеры объявлений переменных.

          Dim a$
| Объявляет переменную "a" как строку.
          Dim a As String
| Объявляет переменную "a" как строку.
          Dim a$, b As Integer
| Объявляет одну переменную как строку, другую — как целое число.
          Dim c As Boolean
| Объявляет "c" как логическую переменную, которая может иметь значение либо TRUE, либо FALSE.

При объявлении переменных очень важно всегда использовать символ объявления типа, даже если он использовался в объявлении вместо ключевого слова. Поэтому следующие инструкции являются неверными.

          Dim a$
| Объявляет "a" как строку.
          a="TestString"
| Отсутствует объявление типа: "a$="

После объявления типа переменной нельзя задать переменную другого типа с таким же именем!

### Обязательное объявление переменных

Для принудительного объявления переменных служит следующая команда:

    Option Explicit

Инструкция Option Explicit должна быть первой строкой модуля, до первой подпрограммы (SUB). Обычно в явном объявлении нуждаются только массивы. Все другие переменные объявляются в соответствии с символом объявления типа или, если он пропущен, переменной назначается тип по умолчанию Single (число с одинарной точностью).

## Типы переменных

В LibreOffice Basic предусмотрена поддержка четырех классов переменных.

- Числовые переменные могут содержать числовые значения. Некоторые переменные служат для хранения больших или малых чисел, остальные используются для чисел с плавающей точкой или дробей.

- Строковые переменные содержат строки символов.

- Логические переменные содержат одно из значений: TRUE или FALSE.

- Объектные переменные могут содержать объекты различных типов, например, таблицы и документы внутри документа.

### Переменные типа Integer (целое число)

Переменные типа Integer могут иметь значение от -32768 до 32767. Если переменной типа Integer присваивается значение с плавающей точкой, десятичные разряды округляются до следующего целого числа. Переменные типа Integer удобны для быстрых вычислений в процедурах и пригодны для переменных счётчика в циклах. Для переменной типа Integer требуется всего два байта памяти. "%" — символ объявления типа.

    Dim Variable%
    Dim Variable As Integer

### Числовые переменные типа Long

Переменные типа Long могут иметь значение от -2147483648 до 2147483647. Если переменной типа Long присваивается значение с плавающей точкой, десятичные разряды округляются до следующего целого числа. Переменные типа Long удобны для быстрых вычислений в процедурах и пригодны для переменных счётчика в циклах при использовании больших значений. Для переменной типа Long требуется четыре байта памяти. "&" — символ объявления типа.

    Dim Variable&
    Dim Variable As Long

### Десятичные переменные

Десятичные переменные могут принимать положительные или отрицательные значения или нуль. Точность – до 29 разрядов.

Можно использовать знаки плюс (+) или минус (-) в качестве префиксов для десятичных чисел (с пробелами или без).

Если десятичное число присвоено целой переменной, LibreOffice Basic округляет число в большую или меньшую сторону.

### Переменные типа Single

Переменным типа Single можно задавать положительные или отрицательные значения в диапазоне от 3.402823 x 10E38 до 1.401298 x 10E-45. Значения переменных типа Single — это числа с плавающей точкой, в которых число десятичных знаков уменьшается по мере увеличения целой части числа. Переменные типа Single пригодны для математических вычислений средней точности. Вычисления занимают больше времени, чем для переменных типа Integer, но выполняются быстрее, чем вычисления с переменными типа Double. Для переменной типа Single требуется 4 байта памяти. Символом объявления типа является "!".

    Dim Variable!
    Dim Variable As Single

### Переменные типа Double

Переменным типа Double можно задавать положительные или отрицательные значения в диапазоне от 1.79769313486232 x 10E38 до 4.94065645841247 x 10E-324. Значения переменных типа Double — это числа с плавающей точкой, в которых число десятичных знаков уменьшается по мере увеличения целой части числа. Переменные типа Double пригодны для точных вычислений. Вычисления требуют больше времени, чем вычисления для переменных типа Single. Для переменной типа Double требуется 8 байт памяти. Символом объявления типа является "#".

    Dim Variable#
    Dim Variable As Double

### Переменные типа Currency (валюта)

Переменные типа Currency хранятся во внутренней памяти как 64-разрядные числа (8 байт) и отображаются как числа с фиксированным количеством разрядов (15 знаков в целой части и 4 знака в десятичной). Диапазон значений включает числа от -922337203685477.5808 до +922337203685477.5807. Переменные типа Currency применяются в расчетах денежных значений высокой точности. Символом описания типа является "@".

    Dim Variable@
    Dim Variable As Currency

### Переменные типа String (строки)

Переменные типа String могут содержать строки символов, включающие не более 65535 символов. Каждый символ хранится как соответствующее значение Юникод. Переменные типа String пригодны для обработки текстов в программах и для временного хранения всех непечатаемых знаков длиной не более 64 Кбайт. Память, требуемая для хранения строковых переменных, зависит от числа символов в переменной. Символом описания типа является "$".

    Dim Variable$
    Dim Variable As String

### Переменные типа Boolean (логические)

Переменные типа Boolean содержат только одно из двух значений: TRUE или FALSE. Число 0 соответствует значению FALSE, все другие значения соответствуют значению TRUE.

    Dim Variable As Boolean

### Переменные типа Date (дата)

Переменные типа Date могут содержать только значения даты и времени, сохраненные во внутреннем формате. Значения, присвоенные переменным типа Date со значением Dateserial, Datevalue, Timeserial или Timevalue, автоматически преобразуются во внутренний формат. Переменные типа Date преобразуются в обычные числа с помощью функции Day, Month, Year или Hour, Minute, Second. Внутренний формат позволяет сравнивать значения даты и времени путём расчета разности двух чисел. Эти переменные могут быть описаны только с помощью ключевого слова Date.

    Dim Variable As Date

## Начальные значения переменных

После объявления переменной ей автоматически присваивается значение "Null". Приняты следующие соглашения.

Числовым переменным после их объявления автоматически присваивается значение "0".

Переменным дат присваивается внутреннее значение 0, эквивалентное преобразованию значения в "0" с помощью функции Day, Month, Year или Hour, Minute, Second.

Строковым переменным при объявлении присваевается пустая строка ("").

## Массивы

В LibreOffice Basic есть одно- и многомерные массивы, определяемые с помощью заданного типа переменной. Массивы применяются для изменения списков и таблиц в программах. К отдельным элементам массива можно обращаться с помощью числового индекса.

Массивы необходимо объявлять с помощью инструкции Dim. Для определения диапазона индексов массива используется несколько способов.

          Dim Text$(20)
| 21 элемент, пронумерованный от 0 до 20
          Dim Text$(5,4)
| 30 элементов (матрица из 6 x 5 элементов)
          Dim Text$(5 To 25)
| 21 элемент, пронумерованный от 5 до 25
          Dim Text$(-15 To 5)
| 21 элемент (включая 0), пронумерованный от -15 до 5

Диапазон индексов может включать положительные и отрицательные числа.

## Константы

Константы имеют фиксированное значение. Они определяются в программе только раз и не могут быть переопределены позднее.

    Const ConstName=Expression