QuickBASIC
Microsoft QuickBASIC — інтегроване середовище розробки і компілятор мови програмування BASIC, розроблений компанією Microsoft у середині 1980-х років. Призначений для операційної системи MS-DOS; недовгий час існувала також версія для Mac OS Classic. Заснований на GW-BASIC з численними доповненнями (типи, що визначаються користувачем, покращена структура програми, підтримка графічних можливостей, компілятор, та інше). QuickBASIC позиціонувався Microsoft як платформа початкового рівня для розробки на BASIC. Існували схожі середовища розробки і для інших мов, такі як QuickC і QuickPascal.
Opening screen | |
Тип | Microsoft BASIC |
---|---|
Розробник | Microsoft |
Перший випуск | 1985 |
Стабільний випуск | 7 (1990 ) |
Платформа | x86, Motorola 68000 |
Операційна система | MS-DOS, Classic Mac OS |
Ліцензія | пропрієтарна |
Вебсайт | microsoft.com |
Історія
Реліз першої версії QuickBASIC відбувся 18 серпня 1985 року; програма записувалася на одну дискету ємністю 360 кілобайт. QuickBASIC версії 2.0 і новіші містили інтегроване середовище розробки.
Номери рядків у 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
:
? "Hello, World"
З очищенням екрану і явним зазначенням кінця програми (оператор END
):
CLS
PRINT "Hello, World"
END
Типи даних
Змінні бувають числові та текстові. Поділ змінних на типи користувач може зафіксувати у програмі різними способами. Їх є чотири:
- тип за замовчуванням;
- спеціальні символи: $, % чи &, ! чи #;
- команди описування типів 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 - числа або змінні. Значення А задає колір зображення, В - колір тіла, С - колір межі. Числове кодування кольорів наступне:
№ (номер) | Колір |
---|---|
0 | чорний |
1 | синій |
2 | зелений |
3 | блакитний |
4 | червоний |
5 | рожевий |
6 | коричневий |
7 | світло-сірий |
8 | темно-сірий |
9 | яскраво-синій |
10 | яскраво-зелений |
11 | яскраво-блакитний |
12 | яскраво-червоний |
13 | яскраво-рожевий |
14 | жовтий |
15 | білий |
Приклад: команда 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.
Для комп'ютерів з високою швидкодією слід робити штучні паузи між малюванням та стиранням об'єктів, щоб не втрачати їхнє правильне зображення на екрані.
Джерела
- Microsoft Knowledge Base 45850: Memory Management in QuickBasic & Basic Compiler (англ.). Microsoft.
- QuickBASIC 4.5 постачався у вигляді п'яти 360-кілобайтних або трьох 720-кілобайтних дискет. Пізніше файли дистрибутиву почали стискувати з метою вмістити на меншу кількість дискет (4 5-дюймових або 3 3-дюймових).
- QuickBasic 4.50 Repackaged Manual and Disks, September 1990 (англ.). Microsoft. Архів оригіналу за 13 лютого 2010.
- QuickBASIC for Macintosh system requirements (англ.).