Microsoft QuickBASIC — інтегроване середовище розробки і компілятор мови програмування BASIC, розроблений компанією Microsoft у середині 1980-х років. Призначений для операційної системи MS-DOS; недовгий час існувала також версія для Mac OS Classic. Заснований на GW-BASIC з численними доповненнями (типи, що визначаються користувачем, покращена структура програми, підтримка графічних можливостей, компілятор, та інше). QuickBASIC позиціонувався Microsoft як платформа початкового рівня для розробки на BASIC. Існували схожі середовища розробки і для інших мов, такі як QuickC і QuickPascal.
Історія
Реліз першої версії QuickBASIC відбувся 18 серпня 1985 року; програма записувалася на одну дискету ємністю 360 кілобайт. QuickBASIC версії 2.0 і новіші містили інтегроване середовище розробки.
Номери рядків[en] у QuickBASIC стали опційними (тобто програмувати можна було як з номерами рядків, так і без); у операторах переходу (таких, як GOTO
і GOSUB
) стало можливим вказувати звичайні текстові мітки. У пізніших версіях з'явилася підтримка структурованого програмування — багаторядкових операторів розгалуження і циклу.
Пакет містив компілятор «PC BASIC Compiler», що дозволяв компілювати BASIC-програми у EXE-файли для MS-DOS.
Починаючи з версії 4.0 у редакторі з'явився вбудований інтерпретатор, що дозволяв запускати програму натисненням клавіші. Інтерпретатор був зручним засобом відлагоджування програми перед створенням виконуваного файлу. Втім, між інтерпретатором і компілятором були суттєві відмінності, і нерідко програма, яка нормально працювала у режимі інтерпретації не запускалася у скомпільованому вигляді (або не компілювалася взагалі) через відмінності у реалізації механізмів керування пам'яттю.[1]
Останньою версією QuickBASIC стала версія 4.5 (1988 рік), хоча розробка системи Microsoft BASIC Professional Development System (PDS) продовжувалася до жовтня 1990 року (остання версія 7.1).[2] Також було змінено метод пакування дистрибутивних файлів (застосували той же метод компресії, що і у BASIC PDS 7.1).[3]
IDE, що постачалася з Basic PDS 7.x, називалася QuickBASIC Extended (QBX), і запускалася лише під DOS, на відміну від решти Basic PDS 7.x, що також могла працювати у OS/2. Наступником QuickBASIC і Basic PDS став Visual Basic версії 1.0 для MS-DOS, що постачався у вигляді стандартної (Standard) і професійної (Professional) версій. Пізніші версії Visual Basic припинили підтримку DOS і були орієнтовані винятково на Windows.
Підмножина QuickBASIC 4.5, названа QBasic, входила до складу дистрибутиву MS-DOS 5.0 і пізніших версій. QBasic замінив собою GW-BASIC, що постачався зі старішими версіями MS-DOS. У порівнянні з QuickBASIC, у QBasic був лише інтерпретатор, відсутні кілька функцій, є обмеження на розмір програми, і відсутня підтримка роздільних програмних модулів.
QuickBASIC 1.00 для Apple Macintosh з'явився 1988-го року. Офіційно він підтримував операційну систему System 6 при наявності мінімум 1 мегабайт оперативної пам'яті.[4] Можна було запускати QuickBASIC і під System 7, але тільки тоді, коли 32-розрядна адресація вимкнена (це було неможливим на машинах з процесорами Motorola 68040).
Приклад синтаксису
Найкоротша версія Hello, World, використовується скорочення ?
замість PRINT
:
З очищенням екрану і явним зазначенням кінця програми (оператор END
):
CLS
PRINT "Hello, World"
END
Типи даних
Змінні бувають числові та текстові. Поділ змінних на типи користувач може зафіксувати у програмі різними способами. Їх є чотири:
- тип за замовчуванням[en];
- спеціальні символи: $, % чи &, ! чи #;
- команди описування типів DEF;
- команди оголошення змінних DIM.
Якщо опис типу відсутній, то Qbasic розглядає змінні як короткі дійсні числові, а VB - як довгі дійсні числові. Однак текстові змінні потрібно описувати завжди. Для цього до імені текстової змінної змінної дописують спеціальний символ $, на приклад A$, A1$.
Спеціальні суфікси
Щоб зазначити явно типи змінних, до їхніх імен дописують спеціальні символи (суфікси).
- До змінної цілого типу можна дописати символ % (коротке дане) або символ & (довге дане), наприклад, A1%, C&.
- Оголосити короткі чи довгі дійсні змінні можна за допомогою символів ! чи # відповідно. Наприклад, D!, X1 #.
- Імена текстових змінних закінчується суфіксом $, наприклад, B5$, C$, M$(8).
- Спеціальні символи можна дописувати до чисел, наприклад: 5%, 534778&, 5.2!, 45246.34534#, але це робити необов'язково.
Опис типів
У більшості сучасних мов програмування спеціальні символи для описування типів змінних не використовують, тому в мові Бейсик варто надавати перевагу командам опису типів або принципу замовчування.
Команди описування типів записують на початку програми. У Qbasic використовують такі команди:
Опис змінних
|
Призначення
|
DEFINT список літер
|
Для змінних цілого короткого типу
|
DEFLNG список літер
|
Для змінних цілого довго типу
|
DEFSNG список літер
|
Для дійсних коротких змінних
|
DEFDBL список літер
|
Для дійсних довгих змінних
|
DEFSTR список літер
|
Для змінних символьного типу
|
Приклад 1. Цілі змінні A, B, C, D можна описати так:
DEFINT A, B, C, D
або так:
DEFINT A, B : DEFLNG C, C.
Приклад 2. Щоб проінформувати систему, що всі змінні, які починаються із символів A, B, C, D, K, M, є змінними цілого типу, із символів E, F дійсного короткого типу, із P, Q текстового типу, на початку програми записують такі команди:
DEFINT A-D, K, M
DEFSNG E, F
DEFSTR P, Q.
Дефіс у першій команді замінює перелік елементів списку через кому (A, B, C, D).
Команда DIM
Для оголошення змінних у сучасних версіях мови застосовують команду DIM.
DIM <змінна 1> AS <тип 1>, <змінна 2> AS <тип 2>
DIM <змінна 3> AS <тип 3>, ...
Приклад 3. Цілі змінні A, B, дійсні C, D та текстову H можна оголосити так:
DIM A AS INTEGER, B AS INTERGER, C AS DOUBLE
DIM D AS DOUBLE, H AS STRING*10.
Текстові дані (назва типу STRING) можуть містити у Qbasic до 255 літер і займати в пам'яті до 256 байтів (у VB ці дані значно довші). Якщо заздалегідь відомо, що кількість літер у тексті не перевищує числа n,то тип цього даного описують як STRING*n.
Графіка
Перемикання між режимами роботи відеоконтролера здійснюється командою
SCREEN n
, де n — номер відеорежиму (0: текстовий; 2: графічний 640x200 пікселів, 16 кольорів, 1 відеосторінка; 7: графічний 320x200 пікселів, 2 відеосторінки; 8: 640x200, 9: 640x350, 11 або 12: 640x480).
Кольори
Кольори в програмі задають командою COLOR:
COLOR A, B, C ' для режиму 0
COLOR A, B ' для режимів 7…10
COLOR A ' для режиму 12
Тут A, B, C - числа або змінні. Значення А задає колір зображення, В - колір тіла, С - колір межі. Числове кодування кольорів наступне:
Приклад: команда COLOR 0, 14, 3
встановлює текстовий режим, чорні символи на жовтому тлі з блакитною межею (рамкою).
Змінити колір пікселя можна за допомогою команди PSET:
PSET (X,Y), D
Тут X - горизонтальна координатна точки; Y - вертикальна; D - колір; X, Y, D - сталі змінні або вирази. Якщо кольори задані командою COLOR A, B то засвітити точку (X, Y) кольором А (на тлі В) можна так:
PSET (X,Y)
Приклад: Засвітити зеленим кольором точку з координатами (50, 100) можна так:
PSET (50, 100), 2.
Загасити піксель можна командою PSET (X,Y), B або командою
PRESET (X, Y)
Приклад: загасити засвічену раніше точку можна так: PSET (50, 100).
Команду PRESET використовують також для розміщення графічного курсора в стартове положення (X, Y).
Зображення прямих і прямокутників
Для малювання прямої кольором D використовують команду LINE:
LINE (X1, Y1) - (X2, Y2), D
У дужках зазначають координати початку і кінця прямої. Координати початку можна опускати, якщо користувача влаштовують координати графічної точки, де є курсор. Отже, коротка форма команди має такий вигляд:
LINE - (X2, Y2)
У цьому випадку рисується (кольором A) пряма лінія від деякої поточної точки до точки з координатами (X2, Y2).
Приклад 4. З'єднати точки з координатами (50, 100) та (50, 150) червоною лінією можна так:
- LINE (50, 100) - (50, 150),4 або LINE - (50, 150), 4.
- Для зображення прямокутника використовують команду
LINE (X1, Y2), D, B
Тут у дужках задано координати діагонально протилежних вершин прямокутника.
- Щоб розмалювати весь прямокутник кольором D, замість символу B пишуть символи BF.
Приклад 5 Нарисуємо квадрат і розмалюємо його яскраво-синім кольором: LINE (50,100) - (100, 150), 9, BF.
- Для розмальовування замкнутих ділянок (не лише прямокутників) використовують команду PAINT:
PAINT (X, Y), D, C
Тут X, Y - координати будь-якої точки, що лежить у середині замкнутої ділянки, яку розмальовують; D - колір розмальовування; C - колір межі ділянки.
- Дія команди PAINT. Нехай межа ділянки (фігури) має колір C. У результаті виконання команди замкнута ділянка буде розмальована кольором D.
Приклад 6. Сонце можна намалювати так:
- Програма "Сонце"
SCREEN 7
COLOR 5, 3
CIRCLE (160, 100), 70, 4 'Команда CIRCLE зображає коло.'
PAINT (160, 100), 14, 4
END
Команда DRAW
Команду DRAW використовують (лише у Qbasic)для рисування ліній різного кольору різної довжини у восьми допустимих напрямках. Вона має вигляд
DRAW текстова стала
Тут текстова стала - це послідовність параметрів-кодів, які позначають напрямок руху. Після кожного параметра стоїть число, яке вказує довжину лінії. Параметрів, що задають напрямок руху, є вісім. Стрілка пояснює, в якому напрямку комп'ютер рисує лінію на екрані.
Буква
|
Напрямок
|
U
|
↑
|
R
|
→
|
D
|
↓
|
L
|
←
|
E
|
↑→
|
F
|
↓→
|
G
|
↓←
|
H
|
↑←
|
Приклад 4. За допомогою команди 30 DRAW "U30R40D30L40" можна нарисувати прямокутник, виходячи з деякої точки, заданої командою PSET, або з точки, де закінчила рисувати попередня команда, інакше рисування почнеться у центрі екрана.
- Корисними є також такі три параметри: N, B, C.
- Якщо на початку рядка символів зазначити параметром N, то після рисування лінії невидимий графічний курсор повернеться у стартову точку.
- Якщо на початку рядка написати B, то графічний курсор переміститься у зазначеному іншими параметрами напрямку, нічого не рисуючи.
- Якщо в середині рядка символів поставити параметр C з числовим значенням кольору, то колір ліній зміниться на заданий. Цей параметр діє тільки в межах команди DRAW.
Імітація руху об'єкта на екрані
Для імітації руху зображення об'єкта на екрані потрібно виконати такий алгоритм:
- Намалювати об'єкт у заданій точці.
- Знищити об'єкт, замалювавши його кольором тла.
- Змінити координати об'єкта.
- Перейти до пункту 1.
Продемонструємо цей алгоритм на прикладі програми "Рух кола". На екрані зелене коло на чорному тлі рухатиметься вверх-вниз.
Програма "Рух кола"
SCREEN 8
COLOR 2,1
Y = 10
SY = 4
start:
CIRCLE (120, Y), 40, 2 ' Малювання кола
CIRCLE (120, Y), 40, 1 ' Стирання кола
Y = Y + SY ' Зміна y-координати центру
IF Y < 10 OR Y > 190 THEN SY = -SY ' Якщо досягнуто межі, перемкнути на рух у протилежний бік
GOTO start ' На початок циклу
Перервати виконання цієї програми можна комбінацією Ctrl+Break.
Для комп'ютерів з високою швидкодією слід робити штучні паузи між малюванням та стиранням об'єктів, щоб не втрачати їхнє правильне зображення на екрані.
Джерела