QuickBASIC — Вікіпедія

QuickBASIC
Файл:QuickBasic Opening Screen.png
Opening screen
Тип Microsoft BASIC
Розробник Microsoft
Перший випуск 1985; 39 років тому (1985)
Стабільний випуск 7 (1990; 34 років тому (1990))
Платформа x86, Motorola 68000
Операційна система MS-DOS, Classic Mac OS
Ліцензія пропрієтарна
Вебсайт microsoft.com

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:

? "Hello, World" 

З очищенням екрану і явним зазначенням кінця програми (оператор END):

CLS PRINT "Hello, World" END 

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

Змінні бувають числові та текстові. Поділ змінних на типи користувач може зафіксувати у програмі різними способами. Їх є чотири:

  1. тип за замовчуванням[en];
  2. спеціальні символи: $, % чи &, ! чи #;
  3. команди описування типів DEF;
  4. команди оголошення змінних 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. Намалювати об'єкт у заданій точці.
  2. Знищити об'єкт, замалювавши його кольором тла.
  3. Змінити координати об'єкта.
  4. Перейти до пункту 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.

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

Джерела[ред. | ред. код]

  1. Microsoft Knowledge Base 45850: Memory Management in QuickBasic & Basic Compiler (англ.). Microsoft. Архів оригіналу за 26 жовтня 2012. Процитовано 26 лютого 2020.
  2. QuickBASIC 4.5 постачався у вигляді п'яти 360-кілобайтних або трьох 720-кілобайтних дискет. Пізніше файли дистрибутиву почали стискувати з метою вмістити на меншу кількість дискет (4 5-дюймових або 3 3-дюймових).
  3. QuickBasic 4.50 Repackaged Manual and Disks, September 1990 (англ.). Microsoft. Архів оригіналу за 13 лютого 2010. Процитовано 26 лютого 2020.
  4. QuickBASIC for Macintosh system requirements (англ.). Архів оригіналу за 27 лютого 2012. Процитовано 26 лютого 2020.