Мова програмування Turbo-Basic

Курсова робота з інформатики

		Мова програмування Turbo-Basic


ЗМIСТ

	Вступ	3

	СИСТЕМА TURBO-BASIC (версія 1.1)	3

	Склад системи	3

	Запуск системи	3

	File (РОБОТА З ФАЙЛАМИ)	4

	Edit (РЕДАГУВАHHЯ ПРОГРАМИ)	6

	КОМАHДИ РЕДАГУВАHHЯ	6

	Run (ЗАПУСК ПРОГРАМИ)	8

	Compile (КОМПIЛЯЦIЯ ПРОГРАМИ)	8

	Options (ОПЦІЇ СИСТЕМИ)	9

	Setup (НАСТРОЙКА СИСТЕМИ)	10

	Window (ВIКНА СИСТЕМИ)	11

	Debug (ВIДЛАДКА ПРОГРАМИ)	12

	ЗАГАЛЬHI ВIДОМОСТI ПРО БЕЙСIК	12

	Формат програмного рядка БЕЙСIКА	12

	Константи БЕЙСIКА	13

	Змінні БЕЙСIКА	13

	Масиви БЕЙСIКА	13

	Арифметичні операції	14

	Операцiї відношення	14

	Символьні вирази	15

	ОПЕРАТОРИ БЕЙСIКА	15

	ФУНКЦІЇ ТА СИСТЕМНI ЗМIHHI БЕЙСIКА	30

	HОВI КОМАНДИ СИСТЕМИ TURBO-BASIC	36

	ПРИКЛАДИ ПРОГРАМ НА БЕЙСIКУ	37

	Основна таблиця ASCII	46

	Розширена таблиця ASCII (альтернативне кодування)	46

	ЗАВДАНHЯ ДЛЯ САМОСТIЙНОЇ РОБОТИ	46

	ЛІТЕРАТУРА	49



		

		



Вступ

Мова BASIC (Beginners All-purpose Symbolic Instruction Code  багатоцільова мова символічних команд для починаючих) розроблена в Дартмутському коледжі (США) на початку 60-х років, як найпростіша мова для навчання програмуванню. З тих часів вона неперервно вдосконалювалася, а з появою та широким розповсюдженням персональних комп'ютерів стала основною, що найбільш часто використовується на ПЕОМ, мовою програмування високого рівня. Потрібно відмітити, що поява системи Тurbo-Basic значно наблизила мову BASIC, яка реалізована в ній, до таких потужних мов програмування, як PASCAL та C.

Turbo-Basic  це незалежна система програмування для персональних комп'ютерів фірми IBM та сумісних з ними. В своєму складі Turbo-Basic має потужний текстовий редактор, швидкодіючий компілятор, бібліотеку робочих програм, внутрішній редактор зв'язків та підсистему оперативної допомоги (Help).

Turbo-Basic працює під керуванням операційної системи MS DOS 2.0 і вище, на комп'ютері з оперативною пам'яттю не менш ніж 512 Кбайт, з використанням моніторів, які допускають графічні режими.

В цьому посібнику приводяться відомості про функціональні можливості системи Turbo-Basic, дається описання операторів, функцій та системних змінних мови BASIC, її розширення в системі Turbo-Basic. Наводяться також приклади простих програм, написаних на мові BASIC, пропонуються завдання для самостійної роботи.

СИСТЕМА TURBO-BASIC (версія 1.1)

Склад системи

До складу системи Turbo-Basic (версія 1.1) входять такі програми та допоміжні файли:

TB.EXE	(212,844 bytes, 041187)  головна програма системи Turbo-Basic;

TBHELP.HLP	(41,029 bytes, 041187)  файл допомоги (підказки) системи Turbo-Basic;

TBINST.COM	(39,976 bytes, 041187)  програма установки (настройки) системи Turbo-Basic;

TBCONFIG.TB	(886 bytes)  файл конфігурації Turbo-Basic;

Біля 50 .BAS-, .INC-, .ASM-, .BIN- файлів з прикладами.

Запуск системи

Запуск системи Turbo-Basic з середовища DOS здійснюється набором на клавіатурі директиви TB з наступним натисканням клавіші Enter, після чого з'являється основний екран системи:



Можливі й інші варіанти основного екрана. Їх модифікації залежать в кінцевому результаті від смаку користувача і можуть бути отримані в результаті настройки системи. Цю настройку можна здійснити або після запуску головного файла TB.EXE (в самій системі Turbo-Basic), або ж після запуску програми установки (настройки) системи TBINST.COM.

У верхній частині основного екрана розташоване головне меню (меню верхнього рівня) системи Turbo-Basic, до розгляду команд якого (File, Edit, Run, Compile, Options, Setup, Window, Debug) ми перейдемо.

Кожна з вказаних команд може бути визвана трьома різними способами:

З головного меню:

1.	Натисканням виділеної літери (F, E, R, C, O, S, W, D).

2.	Вибором за допомогою курсора необхідної команди з наступним натисканням клавіші Enter.

З будь-якого місця:

3.	Одночасним натисканням клавіші Alt та виділеної літери.

Після виконання команд File, Options, Setup, Window, Debug на екрані з'являється меню нижнього рівня, що спускається, із своїми командами, вибір яких відбувається першими двома способами. Зауважимо, що для деяких із команд існують меню трьох рівнів. Повернення на попередній рівень здійснюється натисканням клавіші Esc.



File (РОБОТА З ФАЙЛАМИ)

У результаті виконання команди File на екрані з'явиться таке файлове меню:



File . . .







Load



Завантажити



New



Новий



Save



Зберегти



Write to



Записати до



Main file



Головний файл



Directory



Директорій



Change dir



Змінити директорій



OS shell



Оболонка DOS



Quit



Вихід

Розглянемо коротко всі команди файлового меню.

Load		Ця команда дозволяє завантажити з диска робочий файл, який можна потім редагувати, компілювати, виконувати або зберігати. При виконанні команди з'являється запрошення для введення імені файлу (за умовчанням .BAS). Якщо при цьому натиснути клавішу Enter, то на екрані з'явиться вікно з іменами BAS-файлів і піддиректоріїв поточного директорію. Вказавши курсором потрібний файл, натисніть клавішу Enter для його завантаження в оперативну пам'ять ЕОМ.

New		Ця команда очищає в оперативній пам'яті ЕОМ робочий файл та дає можливість приступити до створення нової програми. За умовчанням новому файлу присвоюється ім'я NONAME.BAS.

Save		Ця команда зберігає поточний робочий файл, записуючи його на диск. Стара версія файлу отримує розширення .BAK, якщо опція Backup source files (в підменю Misceleneous команди Setup основного меню) установлена в режим ON. При спробі зберегти робочий файл з іменем NONAME.BAS вам буде запропоновано спочатку переіменувати його.

Write to	Ця команда використовується для запису поточного робочого файлу на диск під новим іменем (звичайно, після редагування або створення нового файлу).

Main file	При розробці великих програм досить часто виникає необхідність їх розбиття на окремі незалежні частини. Ці частини зберігаються на диску і редагуються як окремі файли. Головний файл має розширення .BAS і містить метаоператори $INCLUDE, які підключають допоміжні файли (з розширенням .INC) під час компіляції або при виконанні програми. За допомогою даної команди можна задати ім'я головного файлу.

Directory	Ця команда виводить на екран вміст каталогу поточного директорію. Можливе використання шаблонів (масок) DOS, що задаються символами  та ?.

Change dir	Ця команда дозволяє перехід до будь-якого диска та/або директорію, які стають активними після її виконання.

OS shell	Ця команда використовується для виходу із системи Turbo-Basic до середовища операційної системи DOS. При цьому Turbo-Basic залишається резидентним у пам'яті ЕОМ і повернення до нього здійснюється командою EXIT.

Quit		Ця команда використовується для виходу із системи Turbo-Basic до середовища операційної системи DOS. Якщо ви модифікували робочий файл та не зберегли його, послідує пропозиція записати його на диск. Альтернативна можливість виходу  натиснути Alt+X.

Edit (РЕДАГУВАHHЯ ПРОГРАМИ)

У результаті виконання команди Edit система перейде в режим редагування, а у верхній частині вікна редактора з'явиться такий рядок стану:

C:filename.ext   Line 1   Col 1   Insert   Indent   Tab

C:filename.ext	специфікація файлу, що редагується. За умовчанням Turbo-Basic присвоює програмі ім'я NONAME.BAS;

Line (рядок)	вказує номер рядка (відносно початку файлу), який містить курсор;

Col (колонка)	вказує номер колонки, яка містить курсор;

Insert (вставка)	режим вставки увімкнуто;

Indent (відступ)	режим автоматичного вiдступу увімкнуто;

Tab (табуляцiя)	режим табуляцiї увімкнуто.

КОМАHДИ РЕДАГУВАHHЯ

Команди переміщення курсора

Новий рядок

Enter (при увімкненому режимі вставки)

Hа символ уліво

Ctrl+S  або  

Hа символ управо

Ctrl+D  або  

Hа слово уліво

Ctrl+A  або  Ctrl+

Hа слово управо

Ctrl+F  або  Ctrl+

Hа рядок уверх

Ctrl+E  або  

Hа рядок униз

Ctrl+X  або  

Прокрутка уверх

Ctrl+W

Прокрутка униз

Ctrl+Z

Hа сторінку уверх

Ctrl+R  або  PgUp

Hа сторінку униз

Ctrl+C  або  PgDn

Hа початок рядка

Ctrl+QS  або  Home

В кінець рядка

Ctrl+QD  або  End

Hа початок екрана

Ctrl+QE  або  Ctrl+Home

В кінець екрана

Ctrl+QX  або  Ctrl+End

Hа початок файлу

Ctrl+QR  або  Ctrl+PgUp

В кінець файлу

Ctrl+QC  або  Ctrl+PgDn

Hа початок блоку

Ctrl+QB

В кінець блоку

Ctrl+QK

В попередню позицію

Ctrl+QP

До маркеру n

Ctrl+Qn (n = 0, 1, 2, 3)





Команди вставки та вилучення

Режим вставки увімкнений/вимкнений

Ctrl+V  або  Ins

Вставити рядок

Ctrl+N

Вилучити рядок

Ctrl+Y

Вилучити до кінця рядка

Ctrl+QY

Вилучити символ ліворуч

Ctrl+H  або  BackSpace

Вилучити символ

Ctrl+G  або  Del

Вилучити слово праворуч

Ctrl+T

Блочні команди

Вiдмiтити початок блоку

Ctrl+KB  або  F7

Вiдмiтити кінець блоку

Ctrl+KK  або  F8

Вiдмiтити одне слово

Ctrl+KT

Копiювати блок

Ctrl+KC

Перемiстити блок

Ctrl+KV

Вилучити блок

Ctrl+KY

Прочитати блок з диска

Ctrl+KR

Записати блок на диск

Ctrl+KW

Сховати/висвітити блок

Ctrl+KH

Роздpукувати блок

Ctrl+KP

Різні команди

Закiнчити редагування, не зберігаючи файл

Ctrl+KD, Ctrl+KQ або Esc

Збеpегти файл та продовжити редагування

Ctrl+KS  або  F2

Новий файл

F3

Табуляцiя

Ctrl+I  або  Tab

Режим табуляцiї увімкнути/вимкнути

Ctrl+OT

Режим автовідступу увімкнути/вимкнути

Ctrl+OI  або  Ctrl+QI

Вiдновити рядок

Ctrl+QL

Встановити маркер n

Ctrl+Kn  (n = 0, 1, 2, 3)

Знайти

Ctrl+QF

Знайти та замінити

Ctrl+QA

Повторити останній пошук

Ctrl+L

Вставити кеpуючий символ

Ctrl+P  (коди 031 ASCII)

Вiдмiнити операцію

Ctrl+U

Вiдновити повідомлення про помилку

Ctrl+QW

Опцiї пошуку

B

Пошук назад

G

Пошук по всьому тексту

n

n  будь-яке число; пошук n разів

N

Замiна без підтвердження

U

Iгнорування великих/маленьких літер

W

Пошук тільки цілих слів

Зауваження.  	В кінці Пам'ятки наведені основна таблиця ASCII та її розширення (альтернативний варіант), де вказане кодування всіх 256 символів знакогенератора ПЕОМ. Символи з розширення таблиці ASCII (зокрема, символи псевдографіки) можуть вводитися за допомогою так званого Alt-уведення. Для його реалізації необхідно натиснути клавішу Alt та, утримуючи її натисненою, набрати на допоміжній цифровій клавіатурі десятковий код потрібного символу. Пiсля відпускання клавіші Alt відповідний символ відобразиться на екрані.

Run (ЗАПУСК ПРОГРАМИ)

Пiсля того як ви завантажили файл з BAS-програмою або створили (відредагували) нову програму, ви можете спочатку відкомпілювати її або відразу запустити на виконання, використовуючи команду Run. Ви можете перервати виконання програми натисканням клавіш Ctrl+Break, якщо опцiя Keyboard break (в меню команди Options) встановлена в режим ON.

Якщо під час компіляції або при виконанні програми буде знайдена помилка, Turbo-Basic перейде до режиму редагування (Edit), вкаже курсором місцеположення помилки в тексті програми, а в верхньому рядку стану редактора з'явиться повідомлення про тип помилки. Пiсля коректування ви можете знову запустити програму для виконання.

Якщо виведення результатів роботи програми відбувається у вікно Run, ви можете розширити його до розміру всього екрана натисканням клавіш Alt+F5.

Compile (КОМПIЛЯЦIЯ ПРОГРАМИ)

Команда Compile компілює (переводить у машинні коди, "зрозумілі" для ЕОМ) BAS-програму, яка завантажена в оперативну пам'ять. Компiляцiя може здійснюватися в оперативну пам'ять ЕОМ, в EXE-файл або TBC-файл в залежності від установки опцiї Compile to (в меню команди Options). EXE-файл, створений системою Turbo-Basic, може виконуватись незалежно в середовищі операційної системи DOS. TBC-файл за своєю структурою схожий на EXE-файл, але може виконуватися тільки в середовищі системи Turbo-Basic.

Якщо ви не визначили головний файл опцiєю Main file (в меню команди File), то буде компілюватися завантажений файл. Якщо головний файл визначено i ви коректували допоміжний робочий файл, вам буде запропоновано зберегти його.

При компілюванні у вікно повідомлень (Message) виводиться число оброблених рядків, операторів i деяка інша інформація.

Якщо під час компіляції програми буде знайдена помилка, Turbo-Basic перейде в режим редагування (Edit), вкаже курсором місце знаходження помилки в тексті, а в верхньому рядку стану редактора з'явиться повідомлення про тип помилки. Пiсля коректування ви можете знову запустити програму на компіляцію.

Рекомендується перед запуском програми (режим Run) спочатку відкомпілювати її. В противному разі при виконанні програми ЕОМ може "зависнути" через значні помилки в програмі.

Options (ОПЦІЇ СИСТЕМИ)

Після виконання команди Options на екрані з'явиться таке меню опцiй:



Options







Compile to   Memory



Компiлювати в Пам'ять



8087 required      OFF



Потрібний сопроцесор 8087



Keyboard break   ON



Переривання по Ctrl+Break



Bounds           ON



Границі масивів



Overflow         ON



Переповнення



Stack test       ON



Перевipка стеку



Parameter line



Рядок параметра



Metastatements



Метакоманди

Розглянемо стисло всі команди меню опцiй.

Compile to	Як вказувалося вище, компіляція проводиться в оперативну пам'ять ЕОМ, EXE-файл або TBC-файл. Щоб вибрати необхідний режим, використовується розглядувана опцiя. Вона надає можливість вибору трьох режимів: Memory, EXE file, Chain, відповідно вказаним варіантам компіляції.

Hаступнi п'ять опцiй використовуються при вiдладцi програми. При створенні EXE-файлу їх можна вимкнути (режим OFF), щоб вони не займали зайвого місця.

8087 required  	Ця опцiя встановлюється в режим ON для ЕОМ, яка має арифметичний сопроцесор типу Intel 8087. При цьому вiдкомпiльованi програми працюють значно ефективнiше. Пpоте, якщо ви створите EXE-програму з даною опцiєю в режимі ON, то вона не буде працювати на ЕОМ, яка не має сопроцесора.

Keyboard break	В багатьох випадках надзвичайно бажано мати можливість перервати виконання запущеної програми. Звичайно це стосується ситуації, коли внаслідок допущених при створенні програми помилок, вона "зависає" в процесі виконання. Розглядувана опцiя в режимі ON дозволяє здійснити переривання під час виконання програми натисненням клавіш Ctrl+Break в багатьох (але далеко не у всіх) випадках. Викоpистовуйте опцiю Auto save edit (в меню команди Setup), встановивши її в режимі ON, для автоматичного зберігання відредагованої програми перед її запуском.

Bounds		Ця опцiя в режимі ON контролює правильність зміни індексів масивів, згідно їх границь, встановлених в операторах розмірності.

Overflow		Ця опцiя в режимі ON контролює ситуацію переповнення при виконанні арифметичних операцій над цілими числами, які повинні лежати в межах від 32768 до +32767.

Stack test		При виконанні підпрограм, функцій, процедур, деякі дані заносяться в певну обмежену ділянку оперативної пам'яті, яка зветься стеком. Якщо програма містить досить багато вкладених операцій вказаного типу, може виникнути ситуація переповнення стеку, що приведе до непередбачених наслідків. Для контролю цієї ситуації встановіть розглядувану опцiю в режим ON. Для зміни розмірів стеку використовуйте метаоператор $STACK.

Parameter line	Ця опцiя дозволяє моделювати інформацію командного рядка, щоб допомогти Вам при вiдладцi програм.

Metastatements	Ця опцiя контролює три метаоператори при компіляції програми: Stack size (ви можете встановити розмір стеку), Music buffer (ви можете визначити розмір музичного буферу, який використовується при виконанні фонової музики), Communications (ви можете змінити розподіл прийомного буферу кожного порту зв'язку).

Setup (НАСТРОЙКА СИСТЕМИ)

У результаті виконання команди Setup на екрані з'явиться таке меню настройки (установки):



Setup







Colors



Кольоpи



Directories



Директорiї



Miscellaneous



Рiзне



Load Options/Window/Setup



Завантажити опцiї конфігурації



Save Options/Window/Setup



Збеpегти опцiї конфігурації

Розглянемо стисло всі команди меню настройки (установки).

Colors		Ця команда дозволяє змінити кольори кожного атрибуту будь-якого вікна та меню всіх рівнів системи. Настройка буде втрачена при виході з системи, якщо ви не зберегли її командою Save Options/Window/Setup.

Directories	Ця команда дозволяє задати диски та шляхи пошуку трьох директорiїв, які використовуються системою Turbo-Basic: Include  для файлів, які містять директиви компіляції Include; Executable   для EXE- i TBC-файлiв; Turbo  для файлів системи Turbo-Basic (TBHELP.TBH та TBCONFIG.TB).

Miscellaneous	Ця команда дозволяє встановити в режим ON/OFF вище згадані опцiї Auto save edit та Backup source file.

Load Options/Window/Setup	Ця команда дозволяє завантажити файл конфігурації з Turbo-директорiю (за умовчанням TBCONFIG.TB) та встановити всі записані там режими опцiй.

Save Options/Window/Setup	Ця команда дозволяє зберегти на диску в Turbo-директорiю файл конфігурації, записуючи в нього установку всіх опцiй системи. Якщо скористатися іменем за умовчанням TBCONFIG.TB, то ця установка буде проведена автоматично при запуску системи.

Window (ВIКНА СИСТЕМИ)

У результаті виконання команди Window на екрані з'явиться таке меню вiкон:



Window







Open



Вiдкpити



Close



Закрити



Next



Hаступне



Goto



Перейти



Tile



Черепиця



Stack



Стек



Zoom



Збiльшення

Розглянемо стисло всі команди меню вiкон.

В режимі основного меню ви можете змінити місце знаходження та розміри будь-якого активного вікна (виділяється подвійною рамкою, якщо задано спосіб показу Tile (черепиця), або виводиться на передній план, якщо задано спосіб показу Stack (стек)). Для цього натисніть клавішу Scroll Lock, а потім, утримуючи натисненою клавішу Shift, використовуйте клавіші переміщення курсора.

Open	Ця команда дозволяє вибрати (відкрити) будь-яке з чотирьох вiкон: Edit, Run, Message, Trace. Вибране (відкрите) вікно стає активним. Всі інші команди меню вiкон впливають на активне вікно.

Close	Ця команда закриває вікна (робить їх невидимими).

Next	Ця команда дозволяє вибирати наступне вікно активним, не використовуючи команду Open. Команду можна виконати з головного меню, натискаючи клавішу F6.

Goto	Пiсля того як ви відкрили вікно, ви можете увійти до нього, використовуючи вказану команду, без звертання до головного меню.

Tile	Команда задає спосіб показу вiкон, при якому всі вони видимі та займають майже однакові площі.

Stack	Команда задає спосіб показу вiкон, при якому всі вони мають найбільші розміри та накладаються один на одне.

Zoom	Команда дозволяє збільшити вікна Edit i Run до розмірів всього екрана. Розглядувану команду можна виконати з головного меню, натискуючи клавішу F5.

Debug (ВIДЛАДКА ПРОГРАМИ)

У результаті виконання команди Debug на екрані з'явиться таке меню вiдладки:



Debug







Trace  OFF



Трасування



Run-time error



Помилка під час виконання

Розглянемо стисло всі команди меню вiдладки.

Trace			При увімкненні цієї команди (режим ON) Turbo-Basic під час виконання програми виводить у вікно Trace номери рядків, мiтки операторів, імена процедур або функцій, які виконуються в даний час. Викоpистовуйте клавіші Alt+F9 для перемикання режимів трасування та звичайного виконання програми. Клавіші Alt+F10 дозволяють перемикати трасування на покpоковий режим.

Run-time error	Ця команда при виявленні помилки в EXE- або в TBC-файлах дозволяє знайти її місцеположення в тексті програми.

ЗАГАЛЬHI ВIДОМОСТI ПРО БЕЙСIК

Формат програмного рядка БЕЙСIКА

Програма, яка написана на мові Бейсік, являє собою сукупність програмних рядків. В Turbo-Basic нумерація рядків необов'язкова.

Рядок програми може містити декілька операторів Бейсіка, які відокремлюються один від одного символом ":". Загальна довжина програмного рядка не повинна перевищувати 255 знаків.



Константи БЕЙСIКА

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

Константи поділяються на числові та символьні (рядкові).

Символьна константа  це послідовність знаків, довжиною не більше ніж 255, яка береться в лапки (").

Числові константи поділяються на цілі та дійсні.

Цілі константи можуть бути представлені в десятковій, восьмирічній та шістнадцятирічній формах; дійсні константи  в десятковій та експоненціальній формах.

Цілі константи в десятковій формі лежать в межах від 32768 до +32767.

Цiла константа в восьмирічній формі  це послідовність восьмирічних цифр (0,1,...,7), перед якою стоїть префікс &O або просто &.

Цiла константа в шістнадцятирічній формі  це послідовність шістнадцятирічних цифр (0,1,...,9,A,B,C,D,E,F), якій передує префікс &H.

Дійсні константи можуть бути представлені в двох форматах: із звичайною та подвійною точністю.

Змінні БЕЙСIКА

Змінні, як i константи, поділяються на числові та символьні (рядкові). Числовiй змінній можна присвоїти значення будь-якого числа, символьній  значення рядка знаків довжиною від 0 до 255 символів.

Iмена змінних можуть бути будь-якої довжини, але Бейсік відрізняє імена за першими 40 символами. В іменах змінних можуть використовуватися літери, цифри та крапка. Резервовані слова Бейсіка не можуть використовуватися як імена змінних.

Iмена змінних визначають їх тип (числові або символьні), а також точність числової змінної.

Iм'я символьної змінної повинно закінчуватися знаком $.

В імені числової змінної останній символ визначає:

%

ціла змінна

!

змінна звичайної точності

#

змінна подвійної точності

Масиви БЕЙСIКА

Поpяд з константами та змінними в програмах можуть використовуватися масиви. Перед використанням масиву в програмі оголошується ім'я, тип та кількість елементів масиву. Для цього використовується оператор розмірності масиву DIM.

Якщо в програмі звертатися до елементу одновимірного масиву раніше, ніж цей масив буде визначено, то розуміється, що такий масив створений в пам'яті i включає 11 елементів (від нульового до десятого). Звеpнення до елементів двовимірного масиву перед його визначенням неможливо!

Арифметичні операції

Для виконання арифметичних операцій в Бейсік-програмi використовуються наступні оператори:

+

додавання



віднімання, зміна знаку



множення

/

ділення з плаваючою крапкою

\

цiлочисельне ділення

^

піднесення до степеню

MOD

залишок від ділення

Операцiї відношення

В операціях відношення порівнюються два значення, які можуть бути обидва числовими або обидва символьними. В результаті отримуємо одне із значень: "так" (1) або "ні" (0), які можуть використовуватися для управління ходом виконання програми (дивись оператор IF).

Викоpистовуються наступні операції відношення:

=

дорівнює

<> або ><

не дорівнює

<

менше

>

більше

<= або =<

не більше

>= або =>

не менше



Логічні операції

В логічних операціях виконуються побiтовi дії над операндами, попередньо перетворені в цілі (якщо це необхідно). Значення операндiв завжди знаходяться в межах від 32678 до +32767. Кожний операнд розглядається як послідовність шістнадцяти біт, над якими виконуються дії з допомогою наступних операторів:

NOT

заперечення (логічне доповнення)

AND

i (кон'юнкція)

OR

або (диз'юнкція)

XOR

виключаюче або

EQV

еквівалентність

IMP

iмплiкацiя

Символьні вирази

Поняття "символьний вираз" означає окремі символьні константи та змінні, а також їх комбінації з використанням оператора зчеплення. Для оператора зчеплення використовується символ +. В результаті операції зчеплення виконується об'єднання (зчеплення) символьних значень двох змінних або змінної та символьної константи.

ОПЕРАТОРИ БЕЙСIКА

BEEP

	Увiмкнення звукового сигналу.

BLOAD спф [, x]

	Зчитування з диска в ОЗП (оперативний запам'ятовуючий пристрій) файлу в двiйковому форматі.

	спф  специфікатор файлу;

	x  числовий вираз із значенням від 0 до 65535  адрес завантаження, який вказує зміщення в сегменті пам'яті, що визначений останнім оператором DEF SEG.

BSAVE спф, x, y

	Запис з ОЗП на диск у двійковому форматі.

	спф  специфікатор файлу;

	x  числовий вираз із значенням від 0 до 65535  адрес, починаючи з якого зчитується файл, і який вказує на зміщення в сегменті пам'яті, визначеному останнім оператором DEF SEG;

	y  числовий вираз із значенням від 1 до 65535  довжина ділянки пам'яті (в байтах), що записується.

CALL ім'я [(d [, d] ...)]

	Виклик підпрограми на мові машини.

	ім'я  ім'я числової змінної, значення якої вказує адресу точки входу до підпрограми (зміщення в поточному сегменті пам'яті, визначеного останнім оператором DEF SEG);

	d  ім'я змінної, яка передається в підпрограму в якості аргументу.

CHDIR шлях

	Змiна активного каталогу.

	шлях  символьний вираз, який вказує каталог, який повинен стати активним.

CIRCLE (x, y), рад [, кл [, поч, кін [, вiдн] ] ]

	Виведення на екран еліпса. Викоpистовується тільки в графічному режимі екрана.

	(x,y)  координати центру еліпса;

	рад  радіус більшої вісі еліпсу (в точках екрана);

	кл  число, яке вказує колір еліпса;

	поч, кін  позначають кути (від 2 до 2) дуги еліпса;

	вiдн  відношення X- до Y-радiусу.

CLEAR [, [ n ] [, m ] ]

	Очищення пам'яті. Всі числові змінні встановлюються в нуль, всі символьні  отримують пусте значення.

	n  лічильник байтiв, встановлює максимальний об'єм робочої області Бейсiка (в байтах);

	m  розмір стеку Бейсiка (в байтах).

CLOSE [ нфл [ [, нфл ] ...]

	Завершення виводу інформації в файл. Файл закривається.

	нфл  номер файлу (який вказаний в операторі OPEN).

CLS

	Очищення екрана.

COLOR [nn] [, [фон] [, бордюр] ]

	Встановлення кольору екрана в текстовому режимі.

	nn  числовий вираз із значенням від 0 до 31, який являє собою колір переднього плану (колір символу). Колір вибирається з інтервалу чисел 015; додавання 16 до кольору переднього плану означає мигання символу;

	фон  числовий вираз із значенням від 0 до 7  колір фону;

	бордюр  числовий вираз із значенням від 0 до 15; являє собою колір бордюру (незаповненої текстом області на межах екрана).

COLOR [фон] [, палітра]

	Встановлення кольору екрана в графічному режимі.

	фон   числовий вираз із значенням від 0 до 15, являє собою колір фону;

	палітра  числовий вираз, який визначає колір графічної інформації, що виводиться на екран. Цей колір можна вказувати цифрами 1, 2, 3, які означають різні кольори, в залежності від вказаного параметру палітра.

COMMON d [, d] ...

	Передача змінних викликаючiй програмі.

	d  ім'я змінної або масиву, які повинні бути передані викликаючiй програмі. Масив вказують з парою круглих дужок "()" за його іменем.

DATA c [, c] ...

	Ствоpення в пам'яті таблиці констант, які потім зчитуються оператором READ.

	c  будь-яка числова або символьна константа. Символьну константу необов'язково заключати в лапки, якщо тільки вона не містить ком, двокрапок та проміжків на початку або в кінці.

DATE$ = x$

	Установлення системної дати.

	x$  символьний вираз, який використовується для установки дати.

DEF FNiм'я [(a[, a] ...)] = b

	Визначення функції користувача.

	FNiм'я  ім'я, яке присвоюється функції (включає дві обов'язкові перші літери, які вказані в форматі);

	a  ім'я змінної, що являє собою аргумент, якому при виклику функції присвоюється значення відповідного (за порядком в списку) параметру;

	b  вираз, тип якого відповідає типу функції, визначеному її іменем.

DEF SEG [ = адреса]

	Визначення поточного сегменту пам'яті (використовується операторами BLOAD, BSAVE, CALL, POKE). Оператор встановлює адресу, яку потім можна використовувати для завантаження в пам'ять даних або зчитування даних з ОЗП.

	адреса  числовий вираз із значенням від 0 до 65535.

DEFt a [a] [, a [a] ] ...

	Оголошення типів змінних за першою літерою імені.

	t  тип змінної; може приймати значення:

			INT  цілий,

			SNG  звичайної точності,

			DBL  подвійної точності,

			STR  символьна (рядкова);

	a  літера латинського алфавіту ( A  Z );

	aa  означає відрізок алфавіту.

DEF USR [n] = m

	Указання точки входу до підпрограми на машинній мові (використовується функцією USR).

	n  цифра від 0 до 9 (за умовчанням 0), яка визначає номер підпрограми користувача на машинній мові, адреса якої вказується;

	m  цілий вираз із значенням від 0 до 65535, що задає зміщення точки входу в визначену користувачем підпрограму в поточному сегменті.

DIM ім'я (a) [, ім'я (a) ] ...

	Об'явлення масиву та резервування пам'яті для його розміщення.

	ім'я  ім'я масиву;

	a  список числових виразів, що визначають розмірність масиву; елементи списку відділяються комами.

	При виконанні оператора DIM всі елементи числових масивів встановлюються в 0, а символьних  в порожній рядок.

	Мiнiмальне значення кожного індексу рівне 0, якщо тільки цей мінімум не пеpевизначений оператором OPTION BASE.

DRAW x$

	Виведення на екран малюнка, що описаний в x$. Викоpистовується тільки в графічному режимі екрана.

	x$  символьний вираз, значення якого інтерпретується як набір команд роботи з екраном. При виконанні цього оператора Бейсiк переглядає значення x$ i окремі літери інтерпретує як команди, які описані нижче. Кожна команда переміщення починає рух із точки останнього посилання, яка є останньою точкою попереднього переміщення.

		Un  переміщення уверх,

		Dn  переміщення униз,

		Ln  переміщення уліво,

		Rn  переміщення управо,

		En  переміщення по діагоналі уверх та управо,

		Fn  переміщення по діагоналі униз та управо,

		Gn  переміщення по діагоналі униз та уліво,

		Hn  переміщення по діагоналі уверх та уліво,

		Mx,y  абсолютне або відносне переміщення.

	n  вказує відстань переміщення; кількість точок отримується множенням n на коефіцієнт шкали (дивись команду S нижче).

	x,y  координати точки, до якої проводиться переміщення; якщо x не передує знак (+ або ), то x,y  абсолютні координати точки переміщення, iнакше  це координати відносно точки останнього посилання.

	Hаступнi дві літери використовуються як префікси команд переміщення:

	B  перемістити, але не малювати;

	N  перемістити, потім повернутися в попередню позицію.

	Також допустимі такі команди:

	Sn  встановлення коефіцієнта шкали (1 < n < 255). Коефiцiєнт шкали дорівнює n/4; він діє на всі команди переміщення, крім команди M абсолютного переміщення. За умовчанням  n = 4.

	Xa$;  виконати значення a$, де a$  рядкова змінна.

END

	Завершення виконання програми, повернення до рівня команд.

	Оператор закриває файли.

ERASE ім'я [, ім'я] ...

	Вилучення масивів із програми.

	ім'я  ім'я масиву, який потрібно вилучити.

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

ERROR n

	Моделювання ситуації помилки в Бейсiку. Визначення особистих кодів помилок.

	n  цілий вираз із значенням від 0 до 255.

FIELD [#]нфл, об'єм AS v$ [, об'єм AS v$] ...

	Видiлення пам'яті для змінних у буфері файлу довільного доступу.

	нфл  номер відкритого файлу;

	об'єм  числовий вираз, що вказує кількість виділених байтiв (об'єм буфера);

	v$  символьна змінна, яка використовується для обміну даними.

FILES [спф]

	Виведення на екран імен файлів, які розміщені на диску.

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

	За умовчанням виводяться імена всіх файлів, що розміщені на диску.

FOR a = x TO y [STEP z]

    [оператори]

NEXT [a] [, a] ...

	Виконання циклу  повторення послідовності операторів вказану кількість разів.

	a  ціла або змінна звичайної точності, яка використовується як лічильник повторень;

	x, y, z  числові вирази, які визначають початкове, кінцеве значення та приріст лічильника, відповідно.

	Допускаються вкладені цикли.

GET[#]  нфл [, n]

	Читання в буфер запису файлу з довільним доступом.

	нфл  номер відкритого файлу; 

	n    номер  запису  (116777215),  який  треба  прочитати;  за умовчанням  наступний запис (після останнього GET).

	Оператор читає з диска в буфер дані, які потім можуть бути використані операторами INPUT i LINE INPUT#. Значення з буфера можуть присвоюватися змінним, які визначені в операторі FIELD.

GET (x1, y1)  (x2, y2), масив

	Читання області екрана у вказаний масив. Оператор застосовується тільки в графічному режимі.

	(x1, y1) i (x2, y2)  координати області екрана в абсолютній або відносній формі;

	масив  ім'я масиву, який призначається для зберігання зчитаної інформації. Масив повинен бути числовим, але будь-якої точності. Необхідний розмір масиву (в байтах):

			4+INT((xb+7)/8)y,

	де

	x  число точок по горизонталі,

	y  число точок по вертикалі,

	b = 2 для режиму екрана 320200 точок та

	b = 1 для режиму екрана 640200 точок.

GOSUB нпp

    [оператори] ...

RETURN

	Перехiд до підпрограми та повернення з підпрограми.

	нпp  номер початкового рядка підпрограми.

	Можна застосовувати вкладені підпрограми.

GOTO нпp

	Перехiд до програмного рядка.

	нпp  номер програмного рядка, до якого виконується перехід.

IF x [,] THEN оператори [ELSE оператори]

IF x [,] GOTO нпp [[,] ELSE оператори]

	Умовний перехід.

	x  будь-який числовий вираз;

	оператори  оператор або послідовність розділених двокрапками операторів або номер рядка (еквівалентне оператору GOTO);

	нпp  номер програмного рядка.

	Якщо значення x  істина, то виконуються оператори, які записані після THEN (або перехід до рядка нпp). Інакше  оператори за THEN пропускаються i виконуються оператори після ELSE, якщо вони є.

INPUT [;] ["підказка";] a [, a] ...

	Очiкування введення з клавіатури під час виконання програми.

	"підказка"  рядок знаків, що використовується як підказка користувачу;

	a  ім'я числової або символьної змінної або елементу масиву, які при введенні отримають значення.

INPUT #нфл, a [, a] ...

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

	нфл  номер відкритого файлу;

	a  ім'я числової або символьної змінної або елемент масиву.

KEY (n) режим

	Установлення або відміна режиму обробки переривань від функціональних клавіш та клавіш керування курсором.

	n  числовий вираз із значенням від 1 до 20, яке відповідає клавіші:

			110    F1F10;

			11,12,13,14    курсор уверх, уліво, управо, униз, відповідно.

KILL спф

	Вилучення вказаного файлу на диску.

	спф  специфікатор файлу (пристрій, ім'я файлу, розширення), який вилучається. Для пристрою за умовчанням  активний диск.

[LET] a = b

	Оператор присвоєння.

	a  ім'я змінної або елемент масиву;

	b  вираз, значення якого присвоюється a; тип виразу повинен співпадати з типом a.

LINE [(x1, y1)]  (x2, y2) [, [кл] [, B[F] ] ] [, маска]

	Виведення на екран лінії або прямокутника. Викоpистовується тільки в графічному режимі екрана.

	(x1, y1), (x2, y2)  координати в абсолютній або відносній формі;

	кл  колір (дивись оператор COLOR); за умовчанням  колір переднього плану;

	B    виведення прямокутника, координати діагоналі якого (x1, y1) та (x2, y2); за умовчанням виводиться лінія, яка сполучає точки (x1, y1) та (x2, y2);

	BF  заповнення виведеного прямокутника вказаним кольором;

	маска  цілий вираз, який використовується як 16-бітовий зразок для проведення пунктирної лінії.

LINE INPUT [;] ["коментар";] v$

	Чекання введення з клавіатури рядка знаків.

	"коментар"  рядок знаків, які виводяться на екран при виконанні оператора (на відмінність від INPUT знак "?" не виводиться);

	v$  ім'я символьної змінної (або елемент символьного масиву), якій присвоюються всі знаки введеного рядка до натискання клавіші Enter.

LINE INPUT #нфл, v$

	Зчитування рядка з послідовного файлу або з пристрою.

	нфл  номер відкритого файлу (із знаком #);

	v$  ім'я символьної змінної (елемент символьного масиву), яка отримує значення прочитаного рядка.

LOCATE [a] [, [b] [, c] [, [d] [,e] ] ]

	Встановлення курсору.

	a  числовий вираз із значенням від 1 до 25, який вказує номер рядка екрана;

	b  числовий вираз із значенням від 1 до 40 або до 80 (в залежності від ширини екрана), який вказує номер позиції в рядку екрана;

	c  індикатор видимості курсора: 0  невидимий, 1  видимий;

	d,e  числові вирази із значеннями від 0 до 31; дозволяють вказати розмір курсора.

	Параметри c, d, e не застосовують в графічному режимі.

	Пiсля LOCATE оператори виводу будуть розміщувати дані на екрані, починаючи з вказаного місця.

LPRINT [список] [;]

LPRINT USING v$; список [;]

	Дpукування даних на дpукуючому пристрої (LPT1:).

	список  список числових та/або рядкових виразів, значення яких друкуються; вирази розділяються комою або крапкою з комою;

	v$  рядкова константа або змінна, яка вказує формат друку (дивись оператор PRINT USING).

LSET v$ = x$ або RSET v$ = x$

	Розмiщення даних у буфері файлу з довільним доступом.

	v$  ім'я змінної, визначеної в операторі FIELD;

	x$  символьний вираз, який розміщується в полі змінної v$.

	Перед використанням LSET та RSET числові значення повинні бути перетворені в символьні (дивись функції MKI$, MKS$ та MKD$).

MID$ (v$, n [, m]) = y$

	Замiна частини символьної змінної новим значенням.

	v$  символьна змінна або елемент символьного масиву;

	n  цілий вираз із значенням від 1 до 255  позиція в змінній v$;

	m  цілий вираз із значенням від 0 до 255  довжина замiнюючої частини;

	y$  символьний вираз.

	Пpи виконанні оператора перші m символів y$ (за умовчанням  всі значення y$) заміщуються символами v$, починаючи з n-го.

	Незалежно від m, довжина v$ не змінюється.

MKDIR шлях

	Ствоpення нового каталогу.

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

	Довжина рядка не повинна перевищувати 63 знаки.

NAME спф AS iмф

	Перейменування файлу на диску.

	спф  специфікатор файлу, ім'я якого змінюється;

	iмф  нове ім'я файлу.

ON COM (n) GOSUB нпp

	Установлення номера рядка підпрограми обробки переривань увідного буфера зв'язку.

	n  (1 або 2), 1  канал с2, 2  перший канал IРПС;

	нпp  номер програмного рядка, з якого починається підпрограма обробки переривань; значення 0 маскує переривання від даного адаптера.

ON ERROR GOTO нпp

	Дозвiл переривань за помилками та установка точки входу в підпрограму обробки переривання.

	нпp  номер першого рядка пiдпрограми-обробки переривань.

	Пiсля виконання ON ERROR кожна помилка буде причиною переходу до вказаного ряду.

ON n GOTO нпp [, нпp] ...

ON n GOSUB нпp [, нпp] ...

	Перехiд до одного з вказаних програмних рядків в залежності від значення виразу.

	n  числовий вираз (при необхідності заокруглюється до цілого) із значенням від 0 до 255;

	нпp  номер програмного рядка.

	При виконанні оператора обчислюється значення виразу n i, в залежності від цього значення, виконується перехід до вказаного рядка (GOTO) або до підпрограми, яка починається з вказаного рядка (GOSUB). Значення n визначає порядковий номер у списку номерів програмних  рядків.  Якщо n = 0  або  n  більше  довжини  списку, виконується наступний оператор програми.

ON KEY (n) GOSUB нпp

	Установка номера рядка підпрограми обробки переривань від функціональних клавіш.

	n  числовий вираз від 1 до 20, який вказує функціональну клавішу;

	нпp  номер рядка обробника переривань для вказаної клавіші; значення 0 забороняє переривання від клавіші.

ON PLAY (n) GOSUB нпp

	Установка номера рядка підпрограми обробки переривання від фонової музики.

	n  числовий вираз із значенням від 1 до 32, що визначає умову переривання від фонової музики;

	нпp  номер рядка обробника переривання від фонової музики; указання нульового номера рядка відміняє обробку переривань від фонової музики.

	Для запуску фонової музики використовується оператор PLAY ON.

ON TIMER (n) GOSUB нпp

	Установка номера рядка підпрограми обробки переривань від таймера.

	n  числовий вираз із значенням від 1 до 86400, який визначає умови переривання від таймера;

	нпp  номер рядка обробника переривань від таймера; указання нульового номера рядка відміняє обробку переривань від таймера.

	Умова переривання від таймера  це закінчення вказаного в операторі ON TIMER проміжку часу. Параметр n вказує проміжок часу в секундах. Для запуску таймера використовується оператор TIMER ON.

OPEN спф [FOR режим] AS [#]нлф [LEN = n]

OPEN v$, [#]нлф, спф[, n]

	Вiдкpиття файлу.

	режим  режим відкриття:

		OUTPUT  послідовне виведення;

		INPUT  послідовне введення;

		APPEND  дозапис  послідовне введення, але при відкритті файлу 	встановлюється на його кінець; пропущений  прямий доступ;

	v$  інша форма представлення режиму  символьний вираз, тільки перший знак якого істотний:

		O  послідовне виведення (OUTPUT);

		I  послідовне введення (INPUT);

		R  прямий доступ (введення i виведення);

	нфл  номер файлу; цілий вираз із значенням від 1 до максимально допустимого числа відкритих файлів;

	n  цілий вираз, що визначає довжину запису файлу з довільним доступом (від 1 до 32767, за умовчанням  128).

	Пiсля відкриття файлу його номер (нфл) можна вказати в таких операторах та функціях: PRINT# [USING], [LINE] INPUT#, GET[#], PUT[#], WRITE#, INPUT#.

OPTION BASE n

	Об'явлення мінімального значення індексів масивів.

	n = 0 або n = 1 (за умовчанням  0).

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

	Оператор повинен передувати всім визначенням або використанням масивів у програмі.

OUT n, m

	Посилання байта в порт виводу.

	n  числовий вираз, що визначає номер порту, із значенням від 0 до 65535;

	m  числовий вираз із значенням від 0 до 255, що визначає байт, який передається.

PAINT (x, y) [[, кл] [, край] [, фон]]

	Заповнення області екрана вибраним кольором. Викоpистовується тільки в графічних режимах.

	(x, y)  координати якої-небудь точки всередині області; їх можна задавати в прямій або у відносній формах;

	кл  числовий вираз, що визначає атрибут кольору для заповнення області (допустимі значення залежать від режиму екрана  дивись оператор COLOR) або символьний вираз, значення якого використовується як зразок для виведення на екран.

	край  числовий вираз, що визначає атрибут кольору границі області;

	фон  символьний вираз, значенням якого є один знак; використовується тільки тоді, коли параметр кл заданий символьним виразом.

PLAY x$

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

	x$  символьний вираз, знаки якого інтерпретуються як наступні команди:

	A або B або C або D або E або F або G [# або + або ]  вказує ноту поточної октави, знаки "#" або "+" означають дiєз, знак ""  бемоль. Ці знаки недопустимі, якщо ноти не відповідають чорним клавішам фортепіано.

	On  встановлює поточну октаву, n = 0,...,6. Кожна октава починається C i закінчується B. За умовчанням діє октава 4;

	Nn  вказує абсолютний номер ноти, n = 0,...,84;

	Ln  вказує тривалість звучання наступних нот, n = 1,...,64. Тpивалiсть звучання ноти рівна 1/n. Число n можна вказати після ноти  воно діє тільки на цю ноту;

	Pn  вказує тривалість паузи, n = 1,...,64; символ "." після ноти або паузи збільшує тривалість в 3/2 рази;

	Tn  темп.  Встановлює  кількість  четвертин  нот  у  хвилину.  За умовчанням  n = 120;

	MF  музика переднього плану;

	MB  фонова музика;

	MN  нонлегато;

	ML  легато;

	MS  стаккато;

	Xx$  виконати рядок, вказаний в символьній константі x$. Промiжки всередині символьної константи при виконанні оператора PLAY ігноруються.

POKE n, m

	Запис байта в пам'ять за вказаною адресою.

	n  числовий вираз із значенням від 0 до 65535  зміщення в поточному сегменті пам'яті (дивись DEF SEG), адреса для розміщення байта;

	m  числовий вираз із значенням від 0 до 255  байт даних.

PRINT [список] [;]   або   ? [список] [;]

	Виведення даних на екран.

	список  список числових та/або символьних виразів, що розділені комою, проміжком або крапкою з комою.

	Символьні константи повинні бути в лапках.

PRINT USING v$; список[;]

	Виведення даних на екран у вказаному форматі.

	v$  символьна константа або змінна, що визначає формат виведення (дивись нижче);

	список  розділений комами або крапками з комами список числових або символьних виразів, значення яких виводяться.

	Для виводу символьних виразів використовується один із наступних трьох символів формату:

	!  вказує, що виводиться тільки перший знак значення;

	\проміжки\  n проміжків вказують, що друкується рядок з n+2 знаків;

	&  вказує на виведення поля довжиною, рівної довжині значення.

	Для виводу чисел можна використовувати наступні символи формату:

	#  представляє позицію десяткової цифри;

	.  представляє десяткову крапку;

	+  вказує, що знак числа виводиться в цю позицію;

	  вказує, що знак від'ємного числа виводиться в цю позицію.

PRINT # нфл, [USING v$;] список

	Послiдовне виведення даних у файл.

	нфл  номер відкритого файлу, в який виводяться дані;

	v$  символьний вираз, який містить знаки формату (дивись PRINT USING);

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

	Оператор дозволяє виводити дані у файл з послідовним доступом.

PSET (x, y) [, кл]

PRESET (x, y) [, кл]

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

	(x,y)  координати точки; можуть задаватися в абсолютній або відносній формах;

	кл  колір вказаної точки; за умовчанням  колір палітри.

	PRESET відрізняється від PSET тільки умовчанням для параметру кл. Якщо PSET за умовчанням використовує колір палітри, то RESET використовує колір фону.

PUT [#] нфл [, n]

	Виведення запису з буферу в файл з довільним доступом.

	нфл  номер відкритого файлу;

	n  номер запису (116777215); за умовчанням виводиться наступний (відносно попереднього PUT #) запис.

	Оператор PUT# протилежний за дією оператору GET#.

PUT (x, y) масив [, режим]

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

	(x,y)  координати лівого верхнього кута зображення  "прямокутника виведення" (дивись оператор GET);

	масив  числовий масив, який містить інформацію для виведення;

	режим  один із вказаних:

		PSET, PRESET, XOR, OR або AND (за умовчанням  XOR);

	Оператор PUT за дією протилежний оператору GET.

RANDOMIZE [n]

	Генератор псевдовипадкових чисел.

	n  цілий вираз із значенням від 32768 до 32767, використовується для установки початкового стану генератора.

	Оператор RANDOMIZE запускає генератор псевдовипадкових чисел. Якщо параметр n відсутній, то програма зупиняється i запитує початковий стан.

READ a [, a] ...

	Зчитування значень з оператора DATA та присвоєння їх змінним.

	a  числова або символьна змінна або елемент масиву, які отримують значення з таблиці оператора DATA.

REM коментар

	Введення в програму коментаря.

	коментар  будь-яка послідовність знаків.

	REM може бути замінений символом ' (апостроф).

RESET

	Закриття всіх файлів на диску.

RESTORE [нпp]

	Установка покажчика на початок даних в операторі DATA.

	нпp  номер рядка, в якому знаходиться оператор (або один з операторів) DATA; за умовчанням  перший з операторів DATA в програмі.

RESUME [адреса]

	Продовження виконання програми після процедури виправлення помилки (вихід з обробника помилок).

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

RETURN [нпp]

	Повеpнення з підпрограми.

	нпp  номер  рядка,  до  якого  відбувається  повернення;  за умовчанням  повернення в точку виходу по оператору GOSUB.

RMDIR шлях

	Видалення пiдкаталога.

	шлях  символьний вираз, що вказує на каталог, який видаляється.

SCREEN [режим] [, t [, [a] [, b ] ] ]

	Установка атрибутів екрана.

	режим  числовий вираз із значенням 0, 1, 2:

	0  текстовий режим шириною 40 або 80 знаків (визначається оператором WIDTH);

	1  графічний режим середньої розрiзняючої здатності (320  200);

	2  графічний режим високої розрiзняючої здатності (640  200);

	t  числовий вираз, значення якого (0 або не 0) означає:

		для режиму 0:	не 0  дозволяє колір,

					0  забороняє колір (зображення чоpно-бiле);

		для режиму 1:	не 0  забороняє колір,

					0  дозволяє колір;

		для режиму 2: значення несуттєве; дозволено тільки чорно-бiле;

	a (активна сторінка) i b (видима сторінка)  вибір сторінок екрана. Допустимо тільки в режимі 0. За умовчанням a = b.

SOUND част, тpив

	Генерацiя звукового сигналу.

	част  частота звука (Гц)  числовий вираз із значенням від 37 до 32767;

	тpив  тривалість звука в імпульсах таймеру  числовий вираз із значенням від 0 до 65535.

SWAP b1, b2

	Обмiн значень двох змінних.

	b1, b2  імена змінних або елементів масиву, які обмінюються значеннями; повинні бути одного типу.

TIME$ = x$

	Установка поточного часу.

	x$  символьний вираз, що вказує поточний час в належному форматі.

TIMER режим

	Дозвiл/заборона переривання від таймера.

	режим:		ON  дозволяє переривання по оператору ON TIMER;

				OFF  відключає таймер;

				STOP  забороняє переривання.

VIEW [ [SCREEN] [ (x1, y1) - (x2, y2) [, [кл] [границя] ] ] ]

	Визначення прямокутної пiдмножини точок екрана, так званого "вікна". Викоpистовується тільки в графічних режимах екрана.

	(x1,y1) i (x2,y2)  координати лівого верхнього та правого нижнього кутів вікна; координати задаються в абсолютній формі;

	кл  цілий вираз, що визначає атрибут кольору, який заповнює вікно. Допустимі значення від 0 до 3 для режиму середньої розрiзняючої здатності та 0 або 1 для режиму високої розрiзняючої здатності.

	Якщо параметр відсутній, вікно не заповнюється;

	границя  цілий вираз, що визначає атрибут кольору границі вікна;

	SCREEN  режим доступу до вікна. Якщо параметр відсутній, то координати точок, які виводяться у вікно, розглядаються відносно вікна; якщо параметр вказаний, то координати точок, що відображаються, вважаються абсолютними, а точки, які не потрапили до вікна, не виводяться.

	Команда RUN i оператор SCREEN, що змінює атрибути екрана,  відміняють дію VIEW. Коли діє оператор VIEW, то все виведення на екран іде у вікно, що визначене у VIEW. Крiм того, VIEW у поєднанні з оператором WINDOW дозволяє визначити локальні системи координат у вікнах екрана.

WAIT порт, n [, m]

	Чекання вказаного стану машинного порту.

	порт  номер порту введення-виведення (065535);

	n, m  цілі вирази із значеннями від 0 до 255.

	Оператор WAIT затримує виконання програми до тих пір, поки у вказаному порту не з'явиться визначений байт.

WHILE x

	оператори

WEND

	Цикл з виходом за умовою.

	x  числовий вираз.

	Якщо вираз x не дорівнює нулю, виконуються оператори до WEND i знову обчислюється вираз x. Якщо x знову не дорівнює нулю, цикл повторюється i т. д.

WIDTH [нфл,] ширина

	Установка ширини рядка виведення.

	нфл  числовий вираз із значенням від 1 до 15  номер відкритого файлу на одному з вказаних нижче пристроїв або символьний вираз, що визначає пристрій;

	ширина  числовий вираз із значенням від 0 до 255, значення 0 еквівалентне 1.

	Допустимі імена пристроїв: SCRN:, LPT1:, за умовчанням  SCRN:. Для SCRN: (екрана) допустима тільки ширина 40 або 80.

WINDOW [ [SCREEN] (x1, y1)  (x2, y2) ] ]

	Перевизначення системи координат у "вікні" екрана. Викоpистовується тільки в графічних режимах.

	(x1,y1) i (x2,y2)  програмно-визначена система координат, так звана локальна система. Числа звичайної точності x1, y1, x2, y2 визначають вершини прямокутного вікна в цій локальній системі. Фізичні координати вершин вікна визначені в останньому операторі VIEW;

	SCREEN  визначає направлення осей координат у локальній системі; якщо параметр SCREEN відсутній, то в локальній системі використовуються звичні для математики направлення осей, тобто вісь Y направлена уверх; якщо SCREEN вказаний, то в локальній системі координат осі направлені так само, як i в фізичній системі координат екрана (вісь Y  униз).

WRITE [список]

	Виведення даних на екран.

	список  список числових та/або символьних виразів, розділених комами i крапками з комами; за умовчанням  виведення порожнього рядка.

	Оператор WRITE відрізняється від оператора PRINT тим, що розділяє елементи виводу комами, окрім того додатнім числам не передує пропуск.

WRITE # нфл [, список]

	Виведення даних у послідовний файл.

	нфл  номер відкритого для виводу файлу;

	список  список числових та/або символьних виразів, що розділені комами або крапками з комами.

	Вiдмiннiсть між операторами WRITE# i RRINT# така ж, як і між операторами WRITE i PRINT.

ФУНКЦІЇ ТА СИСТЕМНI ЗМIHHI БЕЙСIКА

У всіх наведених нижче функціях, якщо не обумовлено протилежне, величина x являє собою будь-який допустимий числовий вираз, x$  будь-який символьний (рядковий) вираз, який має непорожнє значення, n  ціле число із значенням від 0 до 255.

ABS (x)  абсолютне значення x.

ASC (x$)  код першого знаку ланцюжка символів.

	Значення функції  ціле число від 0 до 255, яке являє собою код першого символу ланцюжка.

ATN (x)  арктангенс x.

CDBL (x)  перетворення x в число з подвійною точністю.

CHR$ (n)  перетворення цілого в символьне.

	Значення функції  рядок, який складається з єдиного символу, код якого рівний n. Функцiя CHR$ є оберненою до функції ASC.

CINT (x)  заокруглення до цілого.

	x  числовий вираз із значенням від 32768 до 32767. Значення функції  найближче до x ціле число.

COS (x)  косинус x.

	x  представляє собою кут, що вимірюється в радіанах.

CSNG (x)  перетворення x в число звичайної точності.

CSRLIN  номер рядка поточного положення курсора.

	Значення системної змінної CSRLIN  ціле число від 1 до 25, яке дорівнює номеру рядка поточної позиції курсора активної сторінки екрана.

CVD (x$)  перетворення ланцюжка символів в число подвійної точності.

CVI (x$)  перетворення ланцюжка символів в ціле число.

CVS (x$)  перетворення ланцюжка символів в число звичайної точності.

	x$  символьний вираз, довжина якого рівна:

			2  для функції CVI,

			4  для функції CVS,

			8  для функції CVD.

	Значення функції CVI (CVS, CVD) рівне значенню цілого числа (числа звичайної точності, числа подвійної точності), представленням якого в кодовій формі править аргумент функції. Функцiї необхідні при обробці файлів з довільним доступом, які містять числову інформацію. Оберненими до вказаних функцій є функції MKD$, MKI$, MKS$.

DATE$  системна дата.

	Значення системної змінної DATE$ представляє собою поточну дату у відповідному форматі, встановлену при завантаженні системи або змінену в Бейсiку оператором DATE$.

EOF (нмф)  індикатор умови "кінець файлу".

	нмф  номер відкритого файлу.

	Функцiя має логічне значення "істина" (1), якщо прочитано запис кінця файлу з вказаним номером, i "хибність" (0)  в противному випадку.

ERL  номер рядка програми, який містить помилку.

	Системна змінна ERL містить номер програмного рядка, в якому виявлена помилка. Якщо при виконанні програми помилка не була виявлена, то ERL = 0. Змiнна ERL звичайно використовується в тому випадку, коли користувач пише особисту підпрограму обробки помилок.

ERR  код останньої виявленої помилки.

	Значення системної змінної ERR  ціле число від 0 до 255, яке вказує код помилки. Якщо ERR = 0, то помилка не була виявлена.

EXP (x)  експонента x.

FIX (x)  зрізання числа до цілого.

	x  будь-який числовий вираз із значенням від 32768 до 32767. Значення функції отримується відкиданням всіх цифр дробової частини значення аргументу.

FRE (x) або FRE (x$)  об'єм вільної пам'яті в робочій області.

	Значення аргументу не використовується. Значення функції  ціле число, що вказує об'єм (в байтах) вільної частини робочої області Бейсiка. Важливим побічним ефектом обчислення функції FRE є "збирання сміття" (якщо аргумент  символьний вираз).

HEX$ (n)  перетворення в ланцюжок 16-річних цифр.

	n  числовий вираз із значенням від 32768 до 65535.

INKEY$  введення символу з клавіатури.

	Значення системної змінної INKEY$  ланцюжок символів довжини 0, 1 або 2: порожній ланцюжок вказує, що в буфері клавіатури немає символів; односимвольний ланцюжок містить поточний знак, зчитаний з клавіатури; двосимвольний ланцюжок містить символ розширеного коду (її перший символ завжди є 0-й символ  CHR$(0)). Змiнна INKEY$ може застосовуватися тільки як права частина оператора присвоєння.

INP (n)  зчитування байту з порту введення.

	n  числовий вираз із значенням від 0 до 65535, повинно бути конкретним номером порту введення ПЕОМ. Значення функції  ціле число від 0 до 255  байт, прочитаний з вказаного порту.

INPUT$ (n[, [#] нмф])  зчитування ланцюжка символів з файлу.

	n  числовий вираз, який задає кількість зчитуваних з файлу символів; значення n не повинно перевищувати 255;

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

INSTR ([n,] x$, y$)  номер позиції першого входження ланцюжка y$ в ланцюжок x$.

	n  числовий вираз із значенням від 1 до 255; за умовчанням передбачається значення 1;

	x$ та y$  будь-які символьні вирази.

INT (x)  ціла частина x.

	Значення функції  ціла частина значення аргументу, тобто найбільше ціле число, яке не перевищує x.

LEFT$ (x$,n)  виділення перших символів ланцюжка.

	x$  будь-який символьний вираз;

	n  числовий вираз із значенням від 0 до 255.

	Значенням функції є ланцюжок з перших n символів x$. Функцiя LEFT$ є частинним випадком функції MID$.

LEN (x$)  довжина ланцюжка символів.

LOC (нмф)  поточна позиція файлу.

	нмф  номер відкритого файлу (числовий вираз).

LOF (нмф)  розмір файлу.

	нмф  номер відкритого файлу (числовий вираз).

LOG (x)  натуральний логарифм x.

LPOS (n)  поточна позиція друку.

	n  числовий вираз, що вказує пристрій друку:

			n = 0 або 1 для пристрою LPT1:,

			n = 2 для LPT2:, n = 3 для LPT3:.

	Значення функції є номером поточної позиції в буфері відповідного пристрою друку.

MID$(x$,n[,m])  виділення частини ланцюжка символів.

	x$  будь-який символьний вираз;

	n  числовий вираз із значенням від 1 до 255, що визначає номер першого символу, який виділяється з виразу x$;

	m  числовий вираз із значенням від 0 до 255, що визначає кількість виділених символів; за умовчанням виділяються всі символи x$, починаючи з n-го.

	Значенням функції є ланцюжок символів, виділених з x$. При m = 0 або при n > LEN(x$) функція буде мати порожнє значення. Частинним випадком MID$ є функції LEFT$ і RIGHT$.

MKD$ (x)  перетворення числа подвійної точності в ланцюжок з восьми символів.

MKI$ (n)  перетворення цілого числа в ланцюжок з двох символів.

MKS$ (x)  перетворення числа звичайної точності в ланцюжок з чотирьох символів.

	Вказані функції є оберненими до розглянутих вище функцій CVD, CVI, CVS.

OCT$ (n)  перетворення в ланцюжок вісімкових цифр.

	n  числовий вираз із значенням від 32768 до 65535.

PEEK (n)  вміст байту пам'яті.

	n  числовий вираз із значенням від 0 до 65535, що визначає зміщення байту в поточному кодовому сегменті (дивись оператор DEF SEG). Результат  вміст байту пам'яті з вказаною адресою у форматі цілого із значенням від 0 до 255.

PLAY (n)  кількість нот в буфері фонової музики.

	n  фіктивний аргумент, який може приймати будь-яке значення. Значенням функції є кількість нот у буфері фонової музики (режим MB оператора PLAY). Максимальне значення функції  32.

PMAP (x,n)  перетворення локальних координат екрана в фізичні i навпаки. Застосовується тільки для графічних режимів екрана.

	x  координата точки екрана, яка підлягає перетворенню;

	n  визначає вид перетворення (n = 0,1,2,3).

	Функцiя PMAP виконує перетворення між фізичною системою координат на екрані та локальною системою координат, визначеною в останньому виконаному операторі WINDOW.

POINT (n)  координата точки екрана. Тiльки для графічних режимів екрана.

	n = 0  фізична координата x (рядок);

	n = 1  фізична координата y (стовпець);

	n = 2  локальна координата x (рядок);

	n = 3  локальна координата y (стовпець).

	Значенням функції є вказана аргументом координата поточної точки екрана. Повеpтається фізична або локальна координата в системі, встановленій останнім оператором WINDOW.

POINT (x,y)  атрибут точки екрана. Тiльки для графічних режимів екрана.

	x,y  числові вирази, які задають в абсолютній формі координати точки екрана. Значенням функції є атрибут (колір) вказаної точки екрана.

POS (x)  стовпець поточного положення курсора.

	x  фіктивний аргумент. Значення функції  ціле число від 1 до 40 або до 80 в залежності від ширини екрана (дивись оператор WIDTH), визначаючий горизонтальну позицію курсора.

RIGHT$ (x$,n)  виділення останніх символів ланцюжка.

	x$  будь-який символьний вираз;

	n  числовий вираз із значенням від 0 до 255, що визначає довжину значення функції.

	Значення  функції  складається  з  n  останніх  символів  значення  x$. Якщо n > LEN (x$), то значенням функції буде x$, а при n = 0  порожній ланцюжок символів.

RND [(x)]  псевдовипадкове число.

	x  будь-який числовий вираз. За умовчанням  x = 1, у цьому випадку функція формально перетворюється в системну змінну. Функцiя виконується таким чином:

	якщо x < 0, то значення x перетворюється в ціле i використовується для встановлення початкового значення вбудованого в Бейсiк давача рiвномiрно-розподiлених на інтервалі [0,1) псевдовипадкових чисел; при x > 0 таких дій не проводиться; якщо x  0, то обчислюється нове псевдовипадкове число; якщо x = 0, то давач зберігає старе значення; обчислюється значення функції множенням на x (якщо x  0) значення з давача. Результат множення  рiвномiрно-розподiлене на [0,x) псевдовипадкове число.

SCREEN (n, m [, k])  атрибут (колір) символу на екрані.

	n  числовий вираз із значенням від 1 до 25;

	m  числовий вираз із значенням від 1 до 40 або 80 в залежності від раніш встановленої ширини екрана;

	k  числовий вираз, що розглядається як логічне значення; допустимо тільки в текстовому режимі роботи екрана; за умовчанням  k = 0.

	Для графічного режиму завжди, а для текстового  при k = 0 значенням функції буде ціле число, рівне коду знака, розташованого в позиції (n,m) екрана. Якщо для текстового режиму задано k = 0, то ціле число, яке є значенням функції, визначає атрибут кольору позиції (n,m) на екрані.

SGN (x)  знак x.

SIN (x)  синус x.

SPACE$ (n)  ланцюжок пропусків.

	n  числовий вираз із значенням від 0 до 255. Значення функції  ланцюжок символів, який складається з n символів "пропуск".

SPC (n)  виведення ланцюжка пропусків.

	n  числовий вираз із значенням від 0 до 255; якщо n більше ніж ширина пристрою, для якого застосовується функція, то замість n використовується n MOD w, де w  ширина пристрою.

	Функцiя застосовується тільки в операторах PRINT, LPRINT та PRINT# для виведення пропусків.

SQR (x)  корінь квадратний з x.

STR$ (x)  зображення числа.

	Значення функції  рядок знаків, що зображує значення виразу x при виведенні на екран або друк. Оберненою до функції STR$ є функція VAL.

STRING$ (n,m)  ланцюжок з n символів CHR$(m).

STRING$ (n,x$)  n-кратне повторення першого символу послідовності.

TAB (n)  табуляцiя до позиції n при виведенні.

TAN (x)  тангенс x.

TIME$  системний час.

	Значенням системної змінної TIME$ є поточний системний час у відповідному форматі, встановлений при завантаженні системи або оператором TIME$ Бейсiка.

TIMER  лічильник часу.

	Системна змінна TIMER має своїм значенням час дня. Видається число звичайної точності, значення якого  кількість секунд, що пройшли від опівночі.

USR [n] (арг)  виклик підпрограми на машинній мові.

	n  десяткова цифра (за умовчанням  0), що відповідає цифрі, яка використовується у визначенні підпрограми на машинній мові оператором DEF USR;

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

VAL (x$)  числове значення ланцюжка символів.

VARPTR (v)  адреса змінної;

VARPTR (#нмф)  адреса блоку управління файлом.

	v  ім'я числової або символьної змінної або елемент масиву; змінна повинна мати значення в момент обчислення функції VARPTR;

	нмф  номер відкритого файлу.

	В обох випадках значенням функції буде ціле число із значенням від 0 до 65535, яке представляє собою зміщення в робочій області Бейсiка.

VARPTR$ (v)  покажчик змінної.

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

HОВI КОМАНДИ СИСТЕМИ TURBO-BASIC

Turbo-Basic (у порівнянні з Бейсіком) має численні нові команди, а також нові опцiї для старих команд. Нижче наводяться деякі з нових операторів, функцій та системних змінних, які розширюють можливості Бейсіка.

DO/LOOP  оператор циклу з тестуванням TRUE або FALSE зверху і/або знизу циклу. Повторення циклу здійснюється кеpуючими словами WHILE (для повторення за TRUE) або UNTIL (для повторення за FALSE), за якими слідує деякий вираз. Цей вираз являє собою цiлочисельну змінну, ненульове значення якої відповідає TRUE (істина), а нульове  FALSE (хибність).

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

SELECT CASE/END SELECT    оператор,  який  дозволяє  здійснювати ефективне розгалуження програми за числовим або рядковим виразами. При його застосуванні отримується більш чітка програма, ніж при використанні операторів IF, ON n GOTO або ON n GOSUB.

DEF FN/END DEF    вдосконалений  оператор,  який  визначає  функцію користувача.

IF/ELSE IF/ELSE/END IF  вдосконалений оператор умовного переходу.

EXIT  оператор виходу із структурного блоку (SELECT/END SELECT, DEF FN/END DEF,  FOR/NEXT,  IF/END IF,  DO/LOOP,  SUB/END SUB, WHILE/WEND).

LOCAL, SHARED, STATIC  оператори, які визначають змінні процедур та функцій.

DECR, INCR  оператори, які задають спосіб зменшення або збільшення змінної.

DELAY  оператор, який задає паузу в секундах при виконанні програми.

INSTAT  функція, яка повертає стан клавіатури. Якщо клавіша була натиснена, INSTAT повертає 1, в іншому випадку  0.

REG  оператор i функція; яка дозволяє читати або записувати значення в буфер регістра.

CALL ABSOLUTE  оператор, який дозволяє звертатися до програми на Асемблерi.

CALL INTERRUPT  оператор, який дозволяє визвати будь-яке переривання операційної системи.

SHELL  оператор, який завантажує та виконує зовнішню програму (з розширеннями .COM, .EXE, .BAT).

MTIMER  функція i оператор, які зчитують i скидають мікротаймер.

EXP2, EXP10, LOG2, LOG10  експоненціальна та логарифмічна функції з основами 2 та 10.

ENVIRON  оператор, ENVIRON$  функція; які використовуються для зміни конфігурації середовища (оточення процесора).

LCASE$ (UCASE$)  функція, яка повертає рядок, написаний малими (великими) літерами.

Приклади використання деяких з розглянутих конструкцій будуть наведені в наступному розділі.

ПРИКЛАДИ ПРОГРАМ НА БЕЙСIКУ



'КВАДРАТИЧНЕ РIВHЯHHЯ

'------------------------------------------

SCREEN 0 : WIDTH 40

10 CLS

LOCATE 3, 5: PRINT "РОЗВ'ЯЗУЄМО КВАДРАТИЧНЕ РIВНЯНHЯ:"

	LOCATE   4, 5: PRINT "  A  X^2 + B  X + C = 0"

	LOCATE   7, 5: INPUT; " ВВЕДIТЬ A:  A = ", A

	LOCATE   9, 5: INPUT; " ВВЕДIТЬ B:  B = ", B

	LOCATE 11, 5: INPUT; " ВВЕДIТЬ C:  C = ", C

		D = B^2 - 4  A  C

		IF D >= 0 THEN GOSUB 100 ELSE GOSUB 200

LOCATE 20, 5: PRINT "БУДЕТЕ ЩЕ РОЗВ'ЯЗУВАТИ ЗАДАЧУ? (Т/Н)";

50	W$ = INKEY$: IF W$ = "" THEN GOTO 50

	IF W$ = "Т" OR W$ = "т" THEN GOTO 10

	IF W$ = "Н" OR W$ = "н" THEN CLS: END

		BEEP: GOTO 50

100	X1 = (-B + SQR(D)) / (2  A)

		X2 = (-B - SQR(D)) / (2  A)

		LOCATE 15, 10: PRINT " X1 = " ; X1;

		LOCATE 16, 10: PRINT " X2 = " ; X2;

RETURN

200	LOCATE 15, 10: PRINT "КОРЕНIВ НЕМАЄ!";

RETURN



'ПОШУК МIНIМУМУ ТА МАКСИМУМУ ВЕЛИЧИН, ЯКI ВВОДЯТЬСЯ З 'КЛАВIАТУРИ

'--------------------------------------------------------------------------------------------------------

DIM X(100)

		Min = 999999 : Max = -999999

FOR I = 1 TO 25

10		INPUT "Введiть дані ", X(I)

		IF X(I) < 0 OR X(I) > 100 THEN BEEP: GOTO 10

NEXT I

FOR I = 1 TO 10

		IF X(I) < Min THEN Min = X(I)

		IF X(I) > Max THEN Max = X(I)

NEXT I

PRINT "Мiнiмальне значення = "; Min

PRINT "Максимальне значення = "; Max

END



'ТАбЛИЦЯ МНОЖЕНHЯ

'------------------------------------

SCREEN 0

LOCATE 3, 5: INPUT "ЯК ВАС ЗВАТИ"; Nam$

10 CLS

LOCATE 5, 5: INPUT "ВВЕДIТЬ ПЕРШИЙ СПIВМНОЖHИК ",A

LOCATE 7, 5: INPUT "ВВЕДIТЬ ДРУГИЙ СПIВМHОЖHИК ",B

LOCATE 9, 5: INPUT "ЧОМУ РIВНИЙ ДОБУТОК ДВОХ СПIВМHОЖHИКIВ ";C

			PR = A  B

	IF C = PR  THEN LOCATE 12, 10: PRINT "МОЛОДЕЦЬ, "; Nam$;"!"

	IF C <> PR THEN LOCATE 12, 10: PRINT "ВЧИСЬ, "  ; Nam$;"!"

LOCATE 15, 5: PRINT "Q - ВИХIД"

LOCATE 17, 5: PRINT "IHША КЛАВIША - ПРОДОВЖЕHНЯ"

100	W$ = INKEY$: IF W$ = "" THEN GOTO 100

		IF W$ = "Q" OR W$ = "q" THEN END ELSE GOTO 10



'ПРЯМОКУТHИКИ

'---------------------------

SCREEN 2 : CLS

VIEW

WINDOW (0, 0) - (100, 100)

FOR I = 1 TO 20

	LINE (10 + I, 10 + I) - (70 + I, 70 + I),, B

NEXT I

END



'ЧОРНА ДIРКА

'--------------------

SCREEN 1, 0 : CLS : COLOR 14, 1

FOR I=50 TO 1 STEP -.5

	Y = 90 / I: R = 3  I

	CIRCLE (160, 30 + 10  Y), R, 1,,, .3

NEXT

END



'САТУРН

'-------------

SCREEN 1, 0 : CLS

	CIRCLE (160, 100), 79, 3

	CIRCLE (160, 100), 80, 3

		ST = .77: SP = .77

	FOR I= 1 TO 30 STEP 5

		ST = (ST - .015): SR = ST  PI

		SP = SP + .04

		CIRCLE (160, 93), 100 + I, 3, SR ,SP , .3

	NEXT

END



'ЦИКЛОЇДА, ЕПIЦИКЛОЇДА, ГIПОЦИКЛОЇДА (монітор EGA)

'---------------------------------------------------------------------------------------

	PLAY "MB o2 l4 af af b- a g2 c c c d8 e8 f4 f4 f2"

SCREEN 9 : CLS

		A1 = 1 : B1 = 2

		A2 = 1 : B2 = 1

		A3 = 1 : B3 = .5

	VIEW (1, 1) - (638, 315), 3, 3

	WINDOW (-2, -3) - (20, 5)

		LINE (-2, 0) - (20, 0), 11

		LINE (0, -3) - (0, 5), 11

	FOR T = 0 TO 20 STEP .007

		X1 = A1  T - B1  SIN(T) : Y1 = A1 - B1  COS(T)

		PSET (X1, Y1), 1

		X2 = A2  T - B2  SIN(T) : Y2 = A2 - B2  COS(T)

		PSET (X2, Y2), 14

		X3 = A3  T - B3  SIN(T) : Y3 = A3 - B3  COS(T)

		PSET (X3, Y3), 5

	NEXT T

END



'4 ВIКНА З ГРАФIКАМИ ФУНКЦIЙ

'------------------------------------------------

SCREEN 2 : CLS

	VIEW (1, 1) - (315, 96),, 1

	WINDOW (-10, -1.1) - (10, 1.1)

	FOR X = -10 TO 10 STEP .02

		Y = SIN(X) : PSET (X, Y)

	NEXT X

	VIEW (325, 1) - (638, 96),, 1

	WINDOW (-10, 0) - (10, 1.1)

	FOR X = -10 TO 10 STEP .02

		Y = 1 / (1 + X^2) : PSET (X, Y)

	NEXT X

	VIEW (1, 102) - (315, 198),, 1

	WINDOW (-10, -.1) - (10, 100)

	FOR X = -10 TO 10 STEP .02

		Y = X^2 : PSET (X, Y)

	NEXT X

	VIEW (325, 102) - (638, 198),, 1

	WINDOW (-40, -40) - (40, 40)

	FOR X = -40 TO 40 STEP .02

		Y = X  SIN(X) : PSET (X, Y)

	NEXT X

END



'ВИПАДКОВI КОЛА

'----------------------------

SCREEN 2 : CLS

	VIEW

	WINDOW (-10, -10) - (110, 110)

	FOR I = 1 TO 100

		X = 100  RND(1) : Y = 100  RND(1) : R = 5  RND(1)

		CIRCLE (X, Y), R

	NEXT I

END



'НОТИ

'----------

5 CLS

	LOCATE 1, 1: PRINT "--------- СI   (B)"

	LOCATE 2, 1: PRINT "--------- ЛЯ   (A)"

	LOCATE 3, 1: PRINT "--------- СОЛЬ (G)"

	LOCATE 4, 1: PRINT "--------- ФА   (F)"

	LOCATE 5, 1: PRINT "--------- МI   (E)"

	LOCATE 6, 1: PRINT "--------- РЕ   (D)"

	LOCATE 7, 1: PRINT "--------- ДО   (C)"

	LOCATE 9, 1: PRINT "       Вихiд   (Q)"

		PLAY "O2"

10		W$ = INKEY$: IF W$ = "" THEN GOTO 10

	IF W$="B" OR W$="b" THEN LOCATE 1,5: PRINT "O": PLAY "B2": GOTO 5

	IF W$="A" OR W$="a" THEN LOCATE 2,5: PRINT "O": PLAY "A2": GOTO 5

	IF W$="G" OR W$="g" THEN LOCATE 3,5: PRINT "O": PLAY "G2": GOTO 5

	IF W$="F" OR W$="f" THEN LOCATE 4,5: PRINT "O": PLAY "F2": GOTO 5

	IF W$="E" OR W$="e" THEN LOCATE 5,5: PRINT "O": PLAY "E2": GOTO 5

	IF W$="D" OR W$="d" THEN LOCATE 6,5: PRINT "O": PLAY "D2": GOTO 5

	IF W$="C" OR W$="c" THEN LOCATE 7,5: PRINT "O": PLAY "C2": GOTO 5

	IF W$="Q" OR W$="q" THEN END

		BEEP: GOTO 10



'МУЗИКАЛЬНI МЕЛОДIЇ

'----------------------------------

CLS : WIDTH 40

	PRINT "---Варшав'янка---"

PLAY "t100 l8 o3 mn a4 ml a. mn g16 f4 ml f. mn c+16 d4 ml d."

PLAY "mn c16 d4 f4 e4 a. a16 ml a g f mn e ml d e f mn g a2 p2"

	PRINT "---Окрасился месяц багрянцем---"

PLAY "t100 l8 mn o3 g c4 c e- g4 f e- ml g4. f16 mn e-16 d4."

PLAY "c o2 b-4 o3 d f b-4 o4 c o3 a- ml g2 mn g p p o4"

PLAY "d c4 o3 g g o4 ml e- mn d c o3 g ml b-4. a-16 mn g16"

PLAY "ml f e- mn d c g4 f g ml b- mn a- d e- c2 p2"

	PRINT "---Засвистали козаченьки---"

PLAY "t100 l4 mn o3 g o4 g ml g f8 mn e-8 d g c c f f f g4 ml"

PLAY "d2 f8 e-8 d8 mn c8 d d d e- ml d8 c8 o3 b-8 mn a8 g o4 g"

PLAY "ml f8 e-8 d8 mn c8 o3 b- a g2 ml g8 p2"

	PRINT "---заспіваймо пісню веселеньку---"

PLAY "t140 l4 mn o3 e a o4 c. o3 a8 b8 o4 d8 c8 o3 b8 a e"

PLAY "o4 c o3a ml o4 d8 c8 o3 mn b8 a8 ml g+8 mn g+8 ml b8"

PLAY "mn a8 e e4o4 e e g. e8 d ml g8 mn f8 e d c. o3 a8"

PLAY "o4 d8 c8 o3 b8 a8 o4 e2 d2"

END



'HAPPY BIRTHDAY

'----------------------------

RESTORE Happy

		READ Frequensy, Duration

	WHILE Frequensy <> -1

		SOUND Frequensy, Duration  1.33

		READ Frequensy, Duration

	WEND

END

Happy:

	DATA 784, 3, 659, 2, 523, 6, 659, 6, 784, 6, 1047, 15, 1329, 3

	DATA 1175, 2, 1047, 6, 659, 6, 740, 6, 784, 15, -1, -1



'ЗВУКОВI ЕФЕКТИ

'---------------------------

WHILE Q$ <> "Q"

CLS

	PRINT "Sound effects": PRINT

	COLOR 15, 0: PRINT "  B"; : COLOR 7, 0: PRINT "ouncing"

	COLOR 15, 0: PRINT "  F"; : COLOR 7, 0: PRINT "alling"

	COLOR 15, 0: PRINT "  K"; : COLOR 7, 0: PRINT "laxon"

	COLOR 15, 0: PRINT "  S"; : COLOR 7, 0: PRINT "iren"

	COLOR 15, 0: PRINT "  Q"; : COLOR 7, 0: PRINT "uit"

	PRINT : PRINT "Select: ";

		Q$ = " "

	WHILE INSTR("BFKSQbfksq", Q$) = 0

		Q$ = INPUT$(1)

	WEND

CLS

	IF Q$ = "B" OR Q$ = "b" THEN

		PRINT "Bouncing . . . "

		CALL Bounce(32767, 246)

	ELSEIF Q$ = "F" OR Q$ = "f" THEN

		PRINT "Falling . . . "

		CALL Fall(2000, 550, 500)

	ELSEIF Q$ = "S" OR Q$ = "s" THEN

		PRINT "Wailing . . ."

		PRINT " . . . press any key to end."

		CALL Siren(780, 650)

		ELSEIF Q$ = "K" OR Q$ = "k" THEN

		PRINT "Oscillating . . ."

		PRINT " . . . press any key to end."

		CALL Klaxon(987, 329)

	ELSEIF Q$ = "q" THEN

		Q$ = "Q"

	END IF

WEND

END

SUB Bounce (Hi, Low) STATIC

	FOR Count = 60 TO 1 STEP -2

		SOUND Low - Count / 2, Count / 20

		SOUND Hi, Count / 15

	NEXT

END SUB

SUB Fall (Hi, Low, Del) STATIC

	FOR Count = Hi TO Low STEP -10

		SOUND Count, Del / Count

	NEXT

END SUB

SUB Klaxon (Hi, Low) STATIC

	WHILE INKEY$ = ""

		SOUND Hi, 5

		SOUND Low, 5

	WEND

END SUB

SUB Siren (Hi, Rng) STATIC

	WHILE INKEY$ = ""

		FOR Count = Rng TO -Rng STEP -4

			SOUND Hi - ABS(Count), .3

			Count = Count - 2 / Rng

		NEXT

	WEND

END SUB

'ГРАФIЧHИЙ РЕДАКТОР

'-------------------------------------

ON KEY (1) SUB 500

KEY (1) ON

SCREEN 2

200	x$=input$(1)

		IF X$="S" OR x$="s" THEN END

		IF X$="A" OR X$="a" THEN DRAW "L5"

		IF X$="D" OR X$="d" THEN DRAW "R5"

		IF X$="W" OR X$="w" THEN DRAW "U5"

		IF X$="X" OR x$="x" THEN DRAW "D5"

		IF X$="E" OR x$="e" THEN DRAW "E5"

		IF X$="C" OR x$="c" THEN DRAW "F5"

		IF X$="Z" OR x$="z" THEN DRAW "G5"

		IF X$="Q" OR x$="q" THEN DRAW "H5"

		IF X$="F" OR x$="f" THEN DRAW "C0 U0 C1 BL5 U0"

		IF X$="H" OR x$="h" THEN DRAW "C0 U0 C1 BR5 U0"

		IF X$="B" OR x$="b" THEN DRAW "C0 U0 C1 BD5 U0"

		IF X$="T" OR x$="t" THEN DRAW "C0 U0 C1 BU5 U0"

GOTO 200

500	END



'СОРТУВАHHЯ СЛIВ

'-------------------------------

CLS

LOCATE 10,25

INPUT "Кiлькiсть слів, що сортуються: ";N

DIM X$(N)

	FOR I = 1 TO N

		CLS

		LOCATE 10, 20 : PRINT "Введiть ";i;" слово";

		INPUT X$(I)

	NEXT I

		CLS

	FOR I = 1 TO N - 1

		FOR J = I + 1 TO N

			IF X$(I) > X$(J) THEN SWAP X$(I), X$(J)

	NEXT J, I

	FOR I=1 TO N

		LOCATE I+3,30

		PRINT X$(I)

	NEXT I

 END



' IМIТАЦIЯ ОБЕРТАHHЯ РИСОЧКИ

'----------------------------------------------------

ON KEY (1) GOSUB 500

KEY (1) ON

CLS

50		LOCATE 12,40: PRINT "( ¦ )" : DELAY .1

		LOCATE 12,40: PRINT "( / )" : DELAY .1

		LOCATE 12,40: PRINT "( - )" : DELAY .1

		LOCATE 12,40: PRINT "( \ )" : DELAY .1

GOTO 50

500	END



'ПОБУДОВА ДIАГРАМИ

'-----------------------------------

SUB GRAF(NX1,NY1,NX2,NY2,N,Y(1))

	SCREEN 2

		YMAX=Y(1): YMIN=Y(1)

	FOR I = 1 TO N

		IF Y(I) < YMIN THEN YMIN = Y(I)

		IF Y(I) > YMAX THEN YMAX = Y(I)

	NEXT I

		DX1 = 8 : DX = FIX((NX2 - NX1 - (N - 1)  DX1) / N)

		X1 = NX1

		Y1 = NY2 - FIX(((-YMIN)  (NY2 - NY1)) / (YMAX - YMIN))

	FOR I = 1 TO N

		X2 = X1 + DX

		Y2 = NY2 - FIX(((Y(I) - YMIN)  (NY2 - NY1)) / (YMAX - YMIN))

			LINE (X1,Y1) - (X2,Y2),,BF

		X1 = X2 + DX1

	NEXT I

			LINE (nx1,Y1) - (nx2,Y1)

END SUB

CLS

	INPUT "ЗАДАЙТЕ КІЛЬКІСТЬ ВУЗЛІВ ГРАФІКА"; M

	DIM Z(M)

		FOR I = 1 TO M

			INPUT Z(I)

		NEXT I :

	CLS

		X1 = 80:   X2 = 500

		Y1 = 50: Y2 = 150

CALL GRAF(X1,Y1,X2,Y2,M,Z())

END



Основна таблиця ASCII

000



001



002



003



004



005



006



007



008



009



010



011



012



013



014



015



016

>

017

<

018

c

019

!!

020



021



022



023

c

024



025



026



027



028



029



030



031



032



033

!

034

"

035

#

036

$

037

%

038

&

039

'

040

(

041

)

042



043

+

044

,

045



046

.

047

/

048

0

049

1

050

2

051

3

052

4

053

5

054

6

055

7

056

8

057

9

058

:

059

;

060

<

061

=

062

>

063

?

064

@

065

A

066

B

067

C

068

D

069

E

070

F

071

G

072

H

073

I

074

J

075

K

076

L

077

M

078

N

079

O

080

P

081

Q

082

R

083

S

084

T

085

U

086

V

087

W

088

X

089

Y

090

Z

091

[

092

\

093

]

094

^

095

_

096

`

097

a

098

b

099

c

100

d

101

e

102

f

103

g

104

h

105

i

106

j

107

k

108

l

109

m

110

n

111

o

112

p

113

q

114

r

115

s

116

t

117

u

118

v

119

w

120

x

121

y

122

z

123

{

124

:

125

}

126

~

127



Розширена таблиця ASCII (альтернативне кодування)

128

А

129

Б

130

В

131

Г

132

Д

133

Е

134

Ж

135

З

136

И

137

Й

138

К

139

Л

140

М

141

Н

142

О

143

П

144

Р

145

С

146

Т

147

У

148

Ф

149

Х

150

Ц

151

Ч

152

Ш

153

Щ

154



155



156

Ь

157



158

Ю

159

Я

160

а

161

б

162

в

163

г

164

д

165

е

166

ж

167

з

168

и

169

й

170

к

171

л

172

м

173

н

174

о

175

п

176



177



178



179



180



181



182



183



184



185



186



187



188



189



190



191



192



193



194



195



196



197



198



199



200



201



202



203



204



205



206



207



208



209



210



211



212



213



214



215



216



217



218



219



220



221



222



223



224

р

225

с

226

т

227

у

228

ф

229

х

230

ц

231

ч

232

ш

233

щ

234



235



236

ь

237



238

ю

239

я

240



241



242



243



244



245



246



247



248



249



250



251



252



253



254



255



ЗАВДАНHЯ ДЛЯ САМОСТIЙНОЇ РОБОТИ

1.	Скласти програму обчислення функції

			y = x2  2 x + 3,  0  x  2,

			3 + 3 x,		2 < x  10.

	Значення x вводиться з клавіатури.

2.	Скласти програму побудови кривої, заданої параметрично

			x = r sin(t),  y = r cos(t),  0  t  6.28.

	Значення r вводити з клавіатури.

3.	Скласти програму, яка визначає найбільше значення з трьох величин

			sin(x), cos(x), sin(x) + cos(x).

	Значення x вводити з клавіатури.

4.	Скласти програму побудови кривої, заданої параметрично

			x = b (sin(t))3,  y = b (cos(t))3,  0  t  6.28.

	Значення b вводити з клавіатури.



5.	Скласти програму табуляцiї функції

			y = x2 sin(x).

	Початкове значення x = 0, крок  0.01, число значень  20.

6.	Скласти програму побудови кривої, заданої параметрично

			x = b cos(t) (1 + cos(t)),  y = b sin(t) (1 + cos(t)),  0  t  6.28.

	Значення b > 0 вводити з клавіатури.

7.	Скласти програму обчислення суми квадратів двозначних парних чисел.

8.	Скласти програму побудови кубу.

9.	Скласти програму обчислення суми квадратів двозначних чисел, які діляться на 3.

10.	Скласти програму побудови "пилки" з шести зубців.

11.	Скласти програму знаходження найменшого з додатних елементів масиву a1,...,a19, що задається оператором DATA.

12.	Скласти програму побудови п'ятикутної зірки.

13.	Скласти програму обчислення суми додатних та суми від'ємних елементів масиву a1,...,a17, що задається оператором DATA.

14.	Скласти програму побудови прямокутника за координатами протилежних вершин, які задаються з клавіатури.

15.	Скласти програму знаходження числа додатних елементів масиву a1,...,a19, що задається оператором DATA.

16.	Скласти програму побудови трикутника за координатами вершин, які задаються з клавіатури.

17.	Скласти програму знаходження середнього значення елементів масиву a1,...,a20, що задаються оператором DATA, за формулою

			m = ( a1 + ... + a20 ) / 20.

18.	Скласти програму побудови графіка функції

			y = x2 + 5 x  3,   2  x  10.

19.	Скласти програму, яка визначає чи зростають елементи масиву a1,...,a29, що задається оператором DATA.

20.	Скласти програму побудови графіка функції

			y = x2 sin(x)  1,   2  x  10.

21.	Скласти програму для визначення чверті (квадранту), до якої належить точка M(x,y). Координати x, y вводити з клавіатури.

22.	Скласти програму побудови трьох витків прямокутної спіралі.

23.	Скласти програму, яка записує елементи масиву a1,...,a29, що задається оператором DATA, в оберненому порядку.

24.	Скласти програму побудови кругової діаграми для даних u1,...,u7, які вводяться з клавіатури.

25.	Скласти програму обчислення віддалі між точками A(x,y) i B(u,v), координати яких вводяться з клавіатури.

26.	Скласти програму побудови стовпчикової діаграми для даних u1,...,u4, що вводяться з клавіатури.

27.	Скласти програму табулювання функції

			y = x3 cos(x + 3).

	Початкове значення x = 0, кінцеве  x = 10, крок  0.5.

28.	Скласти програму побудови 10 кіл із зростаючими радіусами та загальною точкою дотику.

29.	Скласти програму знаходження величини d для елементів масиву a1,...,a20, який задається оператором DATA, згідно формули

			d = ( a12 + ... + a202 ) / 20.

30.	Скласти програму побудови прямокутника, із сторонами паралельними границям екрана, і які проходять через точки A, B, C, координати яких вводяться з клавіатури.

31.	Скласти програму, що визначає меншу з трьох величин

			sin(x), cos(x), sin(x)  cos(x).

	Значення x вводиться з клавіатури.

32.	Скласти програму побудови кривої, заданої параметрично

			x = a (sin(t))2, y = b (cos(t))2,   0  t  6.28.

	Значення a i b вводяться з клавіатури.

33.	Скласти програму, яка визначає чи спадають елементи масиву a1,...,a29, що задається з клавіатури.

34.	Скласти програму побудови графіка функції

			y = x / ( x2 + 1 ),   3  x  3.

35.	Скласти програму, що визначає число елементів масиву a1,...,a19, які перевищують величину M. Масив i число M вводяться з клавіатури.

36.	Скласти програму побудови графіка функції

			y = x / ( x2  1 ),   0.7  x  0.7.

37.	Скласти програму, що визначає число елементів масиву a1,...,a17, які не перевищують величину M. Масив i число M вводяться з клавіатури.

38.	Скласти програму побудови 3 кіл, які торкаються один до одного.

39.	Скласти програму, що визначає можливість побудови трикутника за сторонами, довжини яких a, b, c вводяться з клавіатури.

40.	Скласти програму побудови стовпчикової діаграми (гістограми) для масиву u1,...,u9, що задається оператором DATA.

41.	Скласти програму знаходження числа від'ємних елементів масиву a1,...,a17, що задається з клавіатури.

42.	Скласти програму побудови квадрату за координатами однієї з вершин та діагоналі, які задаються з клавіатури.

43.	Скласти програму знаходження кількості непарних двозначних чисел, які діляться на 3.

44.	Скласти програму побудови кривої, заданої параметрично

			x = t cos(t),  y = t sin(t),   0  t  20.

45.	Скласти програму знаходження кількості парних тризначних чисел, які діляться на 7.

46.	Скласти програму побудови прямокутної сітки.

47.	Скласти програму впорядкування в зростаючому порядку трьох чисел, які вводяться з клавіатури.

48.	Скласти програму побудови системи прямих, паралельних діагоналі екрана.

49.	Скласти програму, яка визначає, чи є парними всі цифри чотиризначного числа. Число вводиться з клавіатури.

50.	Скласти програму, яка підраховує кількість слів у списку, що починаються з літери "А" (великої чи малої). Слова вводяться з клавіатури.

ЛІТЕРАТУРА

1.	В.П.Дьяконов. Справочник по алгоритмам и программам на языке бейсик для персональных ВМ. Москва, "Наука", 1987.

2.	Ю.Л.Кетков. GW, Turbo и Quick BASIC для IBM PC. Москва, "Финансы и статистика", 1992.

3.	Л.Пул. Работа на персональном компьютере. Москва, "Мир", 1986.

4.	В.М.Трояновский, В.Ф.Шаньгин. Бейсик для начинающих и будущих профессионалов. Москва, "Высшая школа", 1992.

5.	В..Фигурнов. IBM PC для пользователя. Москва, "Финансы и статистика", 1992.

6.	Б.И.Чернов. Программирование на алгоритмических языках Бейсик, Фортран, Паскаль. Москва, "Просвещение", 1991.

48