QuickBASIC

Матеріал з Вікіпідручника
Перейти до навігації Перейти до пошуку

Структура програми[ред.]

Бейсик-програма складається з програмних рядків. Один програмний рядок не повинен бути довшим, ніж 255 символів. У середовищі Qbasic під час створення довшого, ніж 80 символів програмного рядка відбувається скролніг - зміщення тексту ліворуч, тому використовувати довгі рядки не рекомендують.

У середовищі VB частину команди можна переносити. У цьому випадку використовують символ переносу «_», який розташовують у кінці рядка після лексеми (неподільного елемента мови) і пропуска. Для переходу на наступний рядок натискають на клавішу вводу.

В одному рядку можна розмістити одну або декілька команд, відокремлених одна від одної двокрапкою (:).

У ранніх версіях мови програмний рядок починався з номера. Номер програмного рядка - це ціле число з деякого діапазону, наприклад, від 1 до 65535. Команди виконувались за зростанням номерів відповідних рядків. Для зручності програмні рядки нумерували числами з певним інтервалом, наприклад, з інтервалом 10: 10, 20, 30... Це давало змогу системі автоматично вставляти в середину програми пропущені й згодом додатково введені програми рядками: 15, 17, 25 тощо. У сучасних версіях номери рядків можна не писати. Тут вони не впливають на черговість виконання команд програми. Якщо ж номери є, то система трактує їх як мітки (позначки). Після номера рядка можна ставити двокрапку.

Типи даних[ред.]

Текстові дані[ред.]

Дане - це деяка інформація, наприклад, числова чи текстова, яку опрацьовують за допомогою комп'ютера.

Залежно від характеру інформації дані поділяють на типи. Тип визначає допустимі значення даного, а також операції, які можна над ним виконувати.

Розглянемо два основні типи даних: текстові (інші назви - символьні, літерні, рядки) та числові.

Текстові дані - це тексти, записані у подвійних лапках, наприклад, "Інформатика","Маса", "2012".

Текстові дані застосовують, зокрема, в команді виведення PRINT для створення заголовків та пояснення результатів, наприклад, PRINT "Це розв'язок задачі" або PRINT "P=", P. Лапки на екран не виводиться.

Числові дані[ред.]

Числові дані призначені для роботи з числовою інформацією. В інформатиці розрізняють числа цілі (1, -25, 100) та дійсні (-1.0, -15.2, 12.25). Дійсні дані зазвичай містять у своєму зображенні десяткову крапку. Цілі числа зображують цифрами без крапки.

Дійсні числа. Є дві форми зображення дійсних чисел: 1) з фіксованою крапкою, 2) з плаваючою (руховою) крапкою.

У зображеннях чисел з фіксованою крапкою розміщення десяткової крапки безпосередньо вказує на величину числа. Наприклад: 2., -10., 0.00006, 9000000.

У математиці для зручного написання дуже великих або дуже малих чисел є показникова (наукова) форма їх зображення: 0,000006 = 0,6·10−5, 900000000 = 9·108.

Число у показниковій формі має загальний вигляд ±m - мантиса, а ±p порядок числа. Знак "+" можна опускати. Знак "-" опускати не можна. У мовах програмування відповідне число зображають так:

±mE±p

Наприклад, одне й те ж число 0,0000006 можна записати різними способами: 0.6E-5, 6.0E-6, .06E-4.

Оскільки розміщення десяткової крапки в мантисі явно не вказує на величину числа, то кажуть, що "крапка плаває". Тому таке зображення числа називають зображенням з плаваючою крапкою. Наприклад, число 12,5 можна записати так:
12.5, 12.5E0, 1.25E+1, 125.E+1, 0.125E+2.

Типи даних[ред.]

Цілі дані поділяють на короткі (назва типу INTEGER): -45, 135, 32765 та довгі (LONG): 32769, -234565500.

Оперативну пам'ять комп'ютера вимірюють байтами. В одному байті може зберігатися один символ алфавіту або число зі значенням від 0 до 255, або від -127 до 128.
У Qbasic значення коротких цілих даних (INTEGER) займають по 2 байти в пам'яті комп'ютера, а довгих цілих (LONG) - по 4.Тому цілі короткі дані мають значення в діапазоні від -32768 до 32767, а цілі довгі - орієнтовно до плюс-мінус двох мільярдів. У VB і VB.NET дещо інакше: цілі типу SHORT займають 2 байти, типу SNTEGER - 4, а типу LONG - 8 байтів.

Дійсні дані. Розрізняють такі типи числових дійсних даних:

1) короткі (одинарні, чотирибайтні, назва типу SINGLE) до 7 цифр у мантисі;
2) довгі (подвійні, з подвійною точністю, назва типу DOUBLE) - до 15 цифр. Для зберігання довгих даних система відводить удвічі більше пам'яті (8 байтів), ніж для коротких.

Константи[ред.]

Числам чи текстами можна надавати імена за допомогою команди оголошення сталих CONST

CONST <ім'я 1> = <вираз 1>, <ім'я 2> = <вираз 2>, ...

Команду записують в одному програмному рядку або, якщо сталих багато, кожний наступний рядок має починається зі службового слова CONST. Кутові дужки < > тут призначені для формального запису команд, у фактичних командах їх не пишуть. Наприклад,

CONST Pi = 3.1415926, A = "Програмування".
Дія команди. Обчислюються значення виразів і результати присвоюються відповідним сталим. Дані Pi та A називають сталими.
Сталі дані не можуть змінити свого значення під час виконання програми. За цією ознакою дані в програмуванні поділяються на сталі та змінні.

Змінні[ред.]

У математиці та фізиці величинами дають імена: стороні - a, висоті - h, часу - t, площі чи шляху - s тощо. Аналітично у програмуванні. Фізичні величини зазвичай можуть міняти свої значення, тобто є змінними. Саме цим терміном у програмуванні прийнято називати дані, які можуть міняти свої значення під час виконання програми.

Змінна - це поіменована ділянка оперативної пам'яті комп'ютера, де зберігаються значення деякої величини. Змінна має такі властивості: назву, значення, тип.

Назву змінних надає користувач. У ранніх версіях мови використовували короткі імена, які складаються з одної літери або з літери і цифри. Приклади коротких назв змінних: A, A1, A6, C6.

У нових системах імена можуть бути довшими і складаються як з великих, так і з малих латинських літер (і цифр), наприклад, Myname1, Myname2. Цифра не може бути першим символом в імені. Регістр значення не має. Імена d i D позначають одну і ту ж саму змінну.
Під час складання програми імена змінним варто надавати, керуючись змістом задачі, наприклад, суму можна позначати буквою S, добуток - D, аргументи x1, x2 деякої функції - X1, X2.

Команди присвоєння. Функції. Вирази.[ред.]

Прості (лінійні) програми складаються з команд присвоєння, введення-виведення даних та викликів процедур.

Команда присвоєння.[ред.]

Команду присвоєння використовують для надання початкового значення змінній або для зміни її поточного значення. Команда присвоєння має вигляд

LET <A> = <B>

Тут A — назва змінної, B — вираз, символ "=" тут є символом присвоєння. Службове слово LET є необов'язковим.

Вираз призначений для описування формул, за якими виконуються обчислення. Вираз може складатись з чисел, змінних, назв функції, які з'єднані символами операцій.

Дія команди. Обчислюється значення виразу B і результат присвоюється змінній A. Попереднє значення змінної A втрачається.

Зауваження. Використання службового слова LET у всіх версіях мови є необов'язковим і його надалі писати не будемо.

Приклад 1. Розглянемо фрагмент програми:

A = 5 : B = 10 : C = -2.6
D = (A + B) / (B - A) + C.

Приклад 2. У багатьох задачах потрібно лічити кількість деяких об'єктів (позначмо їх іменем K) або суму (S) величин Y. Відповідні команди присвоєння матимуть такий вигляд:

K = K + 1 'так обчислюють кількість
S = S + Y 'так обчислюють суму S значень Y.

Перетворення типів.[ред.]

Якщо числовий тип змінної A в команді присвоєння не відповідає числовому типу виразу B, то після обчислення виразу результат автоматично перетворюється до типу змінної A. Наприклад, якщо в програмі про кулю написати написати команду:

S% = 4 * Pi * R^2,
то результат заокруглиться до цілого значення - 1006. Не можна числовій змінній присвоювати текстове значення, а текстовій - числове.

Арифметичні вирази[ред.]

Арифметичні вирази призначені для описування послідовності дій (операцій) з числовими даними. Вони дають змогу за допомогою позначень, близьких до математичних, описувати у програмі складні формули. Результатом обчислення арифметичного виразу є число.

Арифметичні вирази будує користувач відповідно до умов задачі, комбінуючи сталі, змінні, функції за певними правилами і поєднуючи їх за допомогою символів операції.
Над числовими даними виконують такі операції:
  • піднесення до степеня (^);
  • множення (*) та ділення (/);
  • додавання (+) та віднімання (-).

Операції \ та MOD[ред.]

Над цілими даними виконують ще дві операції:

  • цілочислового ділення(символ \);
  • обчислення остачі двох чисел (слово MOD).

Перша операція відкидає дробову частину результату, наприклад, 5 \ 2 = 2, 359 \ 100 = 3, а 5 MOD 2 = 1, 17 MOD 3 = 2.

Задача 1. Дано тризначне ціле число A. Обчислити суму його цифр.

Позначимо шукані цифри C1, C2, C3, а суму - S. Розглянемо будь-яке тризначне число, наприклад 357, і переконаємося, що такі команди присвоєння забезпечують відшукання суми (15) його цифр:
' Програма «Сума чисел»
A = 357
C1 = A \ 100
C2 = A \ 10 MOD 10
C3 = A MOD 10
S = C1 + C2 + C3
PRINT "S ="; S

Послідовність виконання операції[ред.]

У виразах така ж, як у математиці. Її описують правилом пріоритетів (порядком виконання операції).

Є чотири рівні пріоритетів:

1) обчислюються значення функцій, якщо вони є у виразі;

2) виконуються всі наявні операції піднесення до степеня;

3) виконуються операції множення та ділення;

4) виконування операції додавання та віднімання.

Операції одного рівня виконуються послідовно зліва направо. Для зміни природної послідовності виконання операції використовують круглі дужки. Кількість відкритих і закритих дужок у виразі повинна бути однаковою. Спочатку обчислюються вирази у дужках. Якщо є вкладені дужки, то спочатку обчислюються вирази у внутрішніх дужках, а потім у зовнішніх та ін.

Оформлення виразів. Вирази записують у Qbasic в одному або (якщо допускає версія мови, наприклад VB) у кількох рядках без дублювання символів арифметичних операцій у випадку переносу. Є таке обмеження на оформлення виразів під час написання програми: показник степеня, індекси, чисельники та знаменники розміщують у горизонтальному рядку. Потрібно уважно записувати знаменник. У багатьох випадках їх беруть у дужки. Зайва пара дужок у складному виразі не призводить до помилки.
Тип результату. В арифметичному виразі використовують числові сталі та числові змінні різних типів - цілі, дійсні. Тип результату буде цілим тільки тоді, коли всі операнди будуть цілого типу. Наприклад, результат A% + B% буде цілого типу, а результати дій A + B% чи A + B - дійсного, якщо заздалегідь не оголошено, що змінні A та B є цілого типу. Результат ділення двох чисел A / B завжди є даним дійсного типу.

Стандартні математичні функції.[ред.]

Функції поділяють на стандартні та нестандартні. Аргумент функції завжди беруть у круглі дужки. Аргументом може бути стала, змінна, арифметичний вираз, інша стандартна функція. Основні стандартні функції наведені в табл.

Стандартні функції

Функція Математичний запис Коментар
SIN(X) Шаблон:Math Шаблон:Math задають у радіанах
COS(X) Шаблон:Math Шаблон:Math задають у радіанах
TAN(X) Шаблон:Math Шаблон:Math задають у радіанах
ATN(X) Шаблон:Math Арктангенс Шаблон:Math
ABS(X) |Шаблон:Math| Модуль (абсолютна величина) Шаблон:Math
SQR(X) Шаблон:Radical Квадратний корінь Шаблон:Math
LOG(X) Шаблон:Math Логарифм натуральний Шаблон:Math
EXP(X) Шаблон:Math Експонента
INT(X) [[[:Шаблон:Math]]] Найбільше ціле число, яке не перевищує Шаблон:Math
FIX(X) Ціле число, що утворюється відкиданням дробової частини числа Шаблон:Math
RND(X) Випадкове число з проміжку [0; 1)
SGN(X) Шаблон:Math Функція знаку від Шаблон:Math

Приклад 3. Значеннями функції TAN(0), ABS(-2), SQR(3*35), INT(2.5) INT(-2.5) є відповідно 0, 2, 2, 2, -3.

Прості програми[ред.]

Структура простої програми[ред.]

Проста (лінійна) програма складається переважно з команд уведення-виведення даних (READ, INPUT, PRINT), команди присвоєння (LET), зупинки (STOP) та виходу (END) з програми, з команд-коментарів та ін. Ці команди називають простими. Розглянемо деякі з них.

Команду-коментар REM використовують для внесення пояснень у текст програми:

REM <текст пояснення>

або

' <текст пояснення>

Це пояснення може розміщуватися у будь-якому місці програми, але в рядку має бути єдиною або останньою. Вона не впливає на виконання програми.

Команда зупинки STOP. Команда зупинки виконання програми може бути у будь-якому місці програми:

STOP

Ця команда зупиняє виконання програми і на екран виводиться повідомлення про це. Часто цю команду використовують, щоб переписати проміжні результати з екрана монітора. Виконання програми можна продовжити за допомогою команди Continue з меню середовища Qbasic (або натискають на клавішу F5).

Команда END. Команда закінчення роботи програми має вигляд

END

Ця команда є необов'язковою у програмі. Її можна не писати.

Команда SWAP[ред.]

Обмін значеннями між двома змінними можна виконати за допомогою спеціальної команди, яка має вигляд

SWAP A, B

Тут A та B - імена змінних, які обмінюються значеннями.

Приклад: у результаті виконання програми

 A = 7: B = 5
 SWAP A, B
 PRINT A, B

буде виведено значення 5 і 7. Без цієї команди для обміну даними необхідно вводити проміжну змінну C. Програма виглядатиме так:

 A = 7: B = 5
 C = A: A = B: B = C
 PRINT A, B

Введення/виведення[ред.]

Дані у програму можна ввести у інтерактивному режимі (командою INPUT), або за допомогою команд READ та DATA

Коли у програмі трапляється команда INPUT, виконання програми тимчасово припиняється. На екрані монітора з'являється запит у вигляді знака запитання (?) і система чекає введення даних. Ввівши потрібні дані з клавіатури (елементи списку значень розмежовуються комами), потрібно натиснути клавішу Шаблон:Key.

Загальна форма команди INPUT:

INPUT [підказка,] <список змінних>

У списку через кому чи крапку з комою пишемо імена змінних, значення яких здаватимемо з клавіатури, наприклад,

INPUT A, B, C, D$

Приклад 2. Розглянемо дію попередньої команди INPUT. Відповімо на запит комп'ютера таким чином:

? 5, 10, -2.5 "Україна" (Натискаємо на клавішу вводу).
Змінна А отримає значення 5, В - значення 10, С - значення -2.5, а D$ - значення "Україна". Лапки в текстових сталих можна не писати.

Для уникнення помилок під час уведення даних з клавіатури в команді INPUT, а саме:

INPUT "Введіть А, В, С, ТЕКСТ" ,A; B; C; D$.

Отже, за допомогою команди INPUT значення змінних вводять у відповідь на запит комп'ютера, тобто у режимі діалогу користувача із системою.


A = 5
B = 10
C = -2.5
D$ = "Україна"

Надання значень змінним за допомогою команди присвоєння є простим способом, але має два суттєві недоліки. По-перше, якщо є велика кількість вхідних даних, то потрібно записувати відповідну кількість команд присвоєння. По-друге, для повторного розв'язування задачі з іншими даними потрібно вносити змінні в усі команди присвоєння. Цих недоліків не мають інші способи.

Команда INPUT[ред.]

Команда READ[ред.]

Команда READ надає значення змінним з блоку даних (блок розглянемо нижче). Вона має вигляд

READ <список змінних>

Список складається з імен змінних, записаних через кому, наприклад:

READ A,B,C,D$

Значення змінним надають з блоку даних. Блок даних — це список даних (наприклад: 2, 3, 4), значення яких надають відповідним змінним зі списку команди READ. Блок даних потрібно задати. Для цього використовують команду оголошення блоку даних, яка має вигляд

DATA <список даних>

Команда DATA не виконує активної дії. Вона є описовою. У список заносяться числові та текстові дані, наприклад:

DATA 5, 10, 2.5, "Україна"