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

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

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

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

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


    MyNumber=5      'Correct'
    MyNumber5=15    'Correct'
    MyNumber_5=20   'Correct'
    My Number=20    'Not valid, variable with space must be enclosed in square brackets'
    [My Number]=12  'Correct'
    DéjàVu=25       'Not valid, special characters are not allowed'
    5MyNumber=12    'Not valid, variable may not begin with a number'
    Number,Mine=12  'Not valid, punctuation marks are not allowed'

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

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

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


    Dim a$               'Declares the variable "a" as a String'
    Dim a As String      'Declares the variable "a" as a String'
    Dim a$, b As Integer 'Declares one variable as a String and one as an Integer'
    Dim c As Boolean     'Declares c as a Boolean variable that can be TRUE or FALSE'
Значок предупреждения

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


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

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


Option Explicit

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

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

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

Переменные типа 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 variables can take positive or negative values ranging from 3.402823 x 10E38 to 1.401298 x 10E-45. Single variables are floating-point variables, in which the decimal precision decreases as the non-decimal part of the number increases. Single variables are suitable for mathematical calculations of average precision. Calculations require more time than for Integer variables, but are faster than calculations with Double variables. A Single variable requires 4 bytes of memory. The type-declaration character is "!".


Dim Variable!
Dim Variable As Single

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

Double variables can take positive or negative values ranging from 1.79769313486232 x 10E308 to 4.94065645841247 x 10E-324. Double variables are floating-point variables, in which the decimal precision decreases as the non-decimal part of the number increases. Double variables are suitable for precise calculations. Calculations require more time than for Single variables. A Double variable requires 8 bytes of memory. The type-declaration character is "#".


Dim Variable#
Dim Variable As Double

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

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


Dim Variable@
Dim Variable As Currency

Literals for integers

Numbers can be encoded using octal and hexadecimal forms.


  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

Переменные типа 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 elements numbered from 0 to 20'
    Dim Text$(5,4)      '30 elements (a matrix of 6 x 5 elements)'
    Dim Text$(5 To 25)  '21 elements numbered from 5 to 25'
    Dim Text$(-15 To 5) '21 elements (including 0), numbered from -15 to 5'

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

Константы

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


Const ConstName=Expression

Please support us!