Модуль
Зміст
Покажчик 🔎︎

# Використання змінних

Далі описано основне використання змінних у 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 Integer

Змінні типу Long Integer можуть мати значення від -2 147 483 648 до 2 147 483 647. Якщо змінній цього типу присвоюється значення з рухомою комою, десяткові розряди округлюються до наступного цілого числа. Такі змінні зручні для швидких обчислень у процедурах і придатні для змінних лічильника в циклах при використанні великих значень. Для змінної цього типу потрібно чотири байти пам'яті. "&" - символ оголошення типу.

    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 10E308 до 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 можуть містити рядки символів, що включають не більше 65 535 символів. Кожен символ зберігається як відповідне значення Юнікоду. Змінні типу String придатні для обробки текстів в програмах з метою тимчасового зберігання всіх недрукованих символів довжиною не більше 64 Кбайт. Пам'ять, необхідна для зберігання рядкових змінних, залежить від числа символів у змінній. Символом опису типу є "$".

    Dim Variable$

    Dim Variable As String

### Логічні змінні

Бульові або логічні змінні містять лише одне із двох значень: 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