QuickBASIC
Структура програми
[ред.]Бейсик-програма складається з програмних рядків. Один програмний рядок не повинен бути довшим, ніж 255 символів. У середовищі Qbasic під час створення довшого, ніж 80 символів програмного рядка відбувається скролніг - зміщення тексту ліворуч, тому використовувати довгі рядки не рекомендують.
У середовищі VB частину команди можна переносити. У цьому випадку використовують символ переносу «_», який розташовують у кінці рядка після лексеми (неподільного елемента мови) і пропуска. Для переходу на наступний рядок натискають на клавішу вводу.
В одному рядку можна розмістити одну або декілька команд, відокремлених одна від одної двокрапкою (:).
У ранніх версіях мови програмний рядок починався з номера. Номер програмного рядка - це ціле число з деякого діапазону, наприклад, від 1 до 65535. Команди виконувались за зростанням номерів відповідних рядків. Для зручності програмні рядки нумерували числами з певним інтервалом, наприклад, з інтервалом 10: 10, 20, 30... Це давало змогу системі автоматично вставляти в середину програми пропущені й згодом додатково введені програми рядками: 15, 17, 25 тощо. У сучасних версіях номери рядків можна не писати. Тут вони не впливають на черговість виконання команд програми. Якщо ж номери є, то система трактує їх як мітки (позначки). Після номера рядка можна ставити двокрапку.
Типи даних
[ред.]Текстові дані
[ред.]Дане - це деяка інформація, наприклад, числова чи текстова, яку опрацьовують за допомогою комп'ютера.
Залежно від характеру інформації дані поділяють на типи. Тип визначає допустимі значення даного, а також операції, які можна над ним виконувати.
Розглянемо два основні типи даних: текстові (інші назви - символьні, літерні, рядки) та числові.
Текстові дані - це тексти, записані у подвійних лапках, наприклад, "Інформатика","Маса", "2012".
Текстові дані застосовують, зокрема, в команді виведення PRINT для створення заголовків та пояснення результатів, наприклад, PRINT "Це розв'язок задачі" або PRINT "P=", P. Лапки на екран не виводиться.
Числові дані
[ред.]Числові дані призначені для роботи з числовою інформацією. В інформатиці розрізняють числа цілі (1, -25, 100) та дійсні (-1.0, -15.2, 12.25). Дійсні дані зазвичай містять у своєму зображенні десяткову крапку. Цілі числа зображують цифрами без крапки.
Дійсні числа. Є дві форми зображення дійсних чисел: 1) з фіксованою крапкою, 2) з плаваючою (руховою) крапкою.
У зображеннях чисел з фіксованою крапкою розміщення десяткової крапки безпосередньо вказує на величину числа. Наприклад: 2., -10., 0.00006, 9000000.
У математиці для зручного написання дуже великих або дуже малих чисел є показникова (наукова) форма їх зображення: 0,000006 = 0,6·10−5, 900000000 = 9·108.
Число у показниковій формі має загальний вигляд ±m - мантиса, а ±p порядок числа. Знак "+" можна опускати. Знак "-" опускати не можна. У мовах програмування відповідне число зображають так:
±mE±p
Наприклад, одне й те ж число 0,0000006 можна записати різними способами: 0.6E-5, 6.0E-6, .06E-4.
- Оскільки розміщення десяткової крапки в мантисі явно не вказує на величину числа, то кажуть, що "крапка плаває". Тому таке зображення числа називають зображенням з плаваючою крапкою. Наприклад, число 12,5 можна записати так:
- 12.5, 12.5E0, 1.25E+1, 125.E+1, 0.125E+2.
Типи даних
[ред.]Цілі дані поділяють на короткі (назва типу INTEGER): -45, 135, 32765 та довгі (LONG): 32769, -234565500.
- Оперативну пам'ять комп'ютера вимірюють байтами. В одному байті може зберігатися один символ алфавіту або число зі значенням від 0 до 255, або від -127 до 128.
- У Qbasic значення коротких цілих даних (INTEGER) займають по 2 байти в пам'яті комп'ютера, а довгих цілих (LONG) - по 4.Тому цілі короткі дані мають значення в діапазоні від -32768 до 32767, а цілі довгі - орієнтовно до плюс-мінус двох мільярдів. У VB і VB.NET дещо інакше: цілі типу SHORT займають 2 байти, типу SNTEGER - 4, а типу LONG - 8 байтів.
Дійсні дані. Розрізняють такі типи числових дійсних даних:
- 1) короткі (одинарні, чотирибайтні, назва типу SINGLE) до 7 цифр у мантисі;
- 2) довгі (подвійні, з подвійною точністю, назва типу DOUBLE) - до 15 цифр. Для зберігання довгих даних система відводить удвічі більше пам'яті (8 байтів), ніж для коротких.
Константи
[ред.]Числам чи текстами можна надавати імена за допомогою команди оголошення сталих CONST
CONST <ім'я 1> = <вираз 1>, <ім'я 2> = <вираз 2>, ...
Команду записують в одному програмному рядку або, якщо сталих багато, кожний наступний рядок має починається зі службового слова CONST. Кутові дужки < > тут призначені для формального запису команд, у фактичних командах їх не пишуть. Наприклад,
- CONST Pi = 3.1415926, A = "Програмування".
- Дія команди. Обчислюються значення виразів і результати присвоюються відповідним сталим. Дані Pi та A називають сталими.
- Сталі дані не можуть змінити свого значення під час виконання програми. За цією ознакою дані в програмуванні поділяються на сталі та змінні.
Змінні
[ред.]У математиці та фізиці величинами дають імена: стороні - a, висоті - h, часу - t, площі чи шляху - s тощо. Аналітично у програмуванні. Фізичні величини зазвичай можуть міняти свої значення, тобто є змінними. Саме цим терміном у програмуванні прийнято називати дані, які можуть міняти свої значення під час виконання програми.
Змінна - це поіменована ділянка оперативної пам'яті комп'ютера, де зберігаються значення деякої величини. Змінна має такі властивості: назву, значення, тип.
Назву змінних надає користувач. У ранніх версіях мови використовували короткі імена, які складаються з одної літери або з літери і цифри. Приклади коротких назв змінних: A, A1, A6, C6.
- У нових системах імена можуть бути довшими і складаються як з великих, так і з малих латинських літер (і цифр), наприклад, Myname1, Myname2. Цифра не може бути першим символом в імені. Регістр значення не має. Імена d i D позначають одну і ту ж саму змінну.
- Під час складання програми імена змінним варто надавати, керуючись змістом задачі, наприклад, суму можна позначати буквою S, добуток - D, аргументи x1, x2 деякої функції - X1, X2.
Команди присвоєння. Функції. Вирази.
[ред.]Прості (лінійні) програми складаються з команд присвоєння, введення-виведення даних та викликів процедур.
Команда присвоєння.
[ред.]Команду присвоєння використовують для надання початкового значення змінній або для зміни її поточного значення. Команда присвоєння має вигляд
LET <A> = <B>
Тут A — назва змінної, B — вираз, символ "=" тут є символом присвоєння. Службове слово LET є необов'язковим.
- Вираз призначений для описування формул, за якими виконуються обчислення. Вираз може складатись з чисел, змінних, назв функції, які з'єднані символами операцій.
Дія команди. Обчислюється значення виразу B і результат присвоюється змінній A. Попереднє значення змінної A втрачається.
Зауваження. Використання службового слова LET у всіх версіях мови є необов'язковим і його надалі писати не будемо.
Приклад 1. Розглянемо фрагмент програми:
- A = 5 : B = 10 : C = -2.6
- D = (A + B) / (B - A) + C.
Приклад 2. У багатьох задачах потрібно лічити кількість деяких об'єктів (позначмо їх іменем K) або суму (S) величин Y. Відповідні команди присвоєння матимуть такий вигляд:
- K = K + 1 'так обчислюють кількість
- S = S + Y 'так обчислюють суму S значень Y.
Перетворення типів.
[ред.]Якщо числовий тип змінної A в команді присвоєння не відповідає числовому типу виразу B, то після обчислення виразу результат автоматично перетворюється до типу змінної A. Наприклад, якщо в програмі про кулю написати написати команду:
- S% = 4 * Pi * R^2,
- то результат заокруглиться до цілого значення - 1006. Не можна числовій змінній присвоювати текстове значення, а текстовій - числове.
Арифметичні вирази
[ред.]Арифметичні вирази призначені для описування послідовності дій (операцій) з числовими даними. Вони дають змогу за допомогою позначень, близьких до математичних, описувати у програмі складні формули. Результатом обчислення арифметичного виразу є число.
- Арифметичні вирази будує користувач відповідно до умов задачі, комбінуючи сталі, змінні, функції за певними правилами і поєднуючи їх за допомогою символів операції.
- Над числовими даними виконують такі операції:
- піднесення до степеня (^);
- множення (*) та ділення (/);
- додавання (+) та віднімання (-).
Операції \ та MOD
[ред.]Над цілими даними виконують ще дві операції:
- цілочислового ділення(символ \);
- обчислення остачі двох чисел (слово MOD).
Перша операція відкидає дробову частину результату, наприклад, 5 \ 2 = 2, 359 \ 100 = 3, а 5 MOD 2 = 1, 17 MOD 3 = 2.
Задача 1. Дано тризначне ціле число A. Обчислити суму його цифр.
- Позначимо шукані цифри C1, C2, C3, а суму - S. Розглянемо будь-яке тризначне число, наприклад 357, і переконаємося, що такі команди присвоєння забезпечують відшукання суми (15) його цифр:
' Програма «Сума чисел»
A = 357
C1 = A \ 100
C2 = A \ 10 MOD 10
C3 = A MOD 10
S = C1 + C2 + C3
PRINT "S ="; S
Послідовність виконання операції
[ред.]У виразах така ж, як у математиці. Її описують правилом пріоритетів (порядком виконання операції).
Є чотири рівні пріоритетів:
1) обчислюються значення функцій, якщо вони є у виразі;
2) виконуються всі наявні операції піднесення до степеня;
3) виконуються операції множення та ділення;
4) виконування операції додавання та віднімання.
Операції одного рівня виконуються послідовно зліва направо. Для зміни природної послідовності виконання операції використовують круглі дужки. Кількість відкритих і закритих дужок у виразі повинна бути однаковою. Спочатку обчислюються вирази у дужках. Якщо є вкладені дужки, то спочатку обчислюються вирази у внутрішніх дужках, а потім у зовнішніх та ін.
- Оформлення виразів. Вирази записують у Qbasic в одному або (якщо допускає версія мови, наприклад VB) у кількох рядках без дублювання символів арифметичних операцій у випадку переносу. Є таке обмеження на оформлення виразів під час написання програми: показник степеня, індекси, чисельники та знаменники розміщують у горизонтальному рядку. Потрібно уважно записувати знаменник. У багатьох випадках їх беруть у дужки. Зайва пара дужок у складному виразі не призводить до помилки.
- Тип результату. В арифметичному виразі використовують числові сталі та числові змінні різних типів - цілі, дійсні. Тип результату буде цілим тільки тоді, коли всі операнди будуть цілого типу. Наприклад, результат A% + B% буде цілого типу, а результати дій A + B% чи A + B - дійсного, якщо заздалегідь не оголошено, що змінні A та B є цілого типу. Результат ділення двох чисел A / B завжди є даним дійсного типу.
Стандартні математичні функції.
[ред.]Функції поділяють на стандартні та нестандартні. Аргумент функції завжди беруть у круглі дужки. Аргументом може бути стала, змінна, арифметичний вираз, інша стандартна функція. Основні стандартні функції наведені в табл.
Стандартні функції
Функція | Математичний запис | Коментар |
---|---|---|
SIN(X) | Шаблон:Math | Шаблон:Math задають у радіанах |
COS(X) | Шаблон:Math | Шаблон:Math задають у радіанах |
TAN(X) | Шаблон:Math | Шаблон:Math задають у радіанах |
ATN(X) | Шаблон:Math | Арктангенс Шаблон:Math |
ABS(X) | |Шаблон:Math| | Модуль (абсолютна величина) Шаблон:Math |
SQR(X) | Шаблон:Radical | Квадратний корінь Шаблон:Math |
LOG(X) | Шаблон:Math | Логарифм натуральний Шаблон:Math |
EXP(X) | Шаблон:Math | Експонента |
INT(X) | [[[:Шаблон:Math]]] | Найбільше ціле число, яке не перевищує Шаблон:Math |
FIX(X) | Ціле число, що утворюється відкиданням дробової частини числа Шаблон:Math | |
RND(X) | Випадкове число з проміжку [0; 1) | |
SGN(X) | Шаблон:Math | Функція знаку від Шаблон:Math |
Приклад 3. Значеннями функції TAN(0), ABS(-2), SQR(3*35), INT(2.5) INT(-2.5) є відповідно 0, 2, 2, 2, -3.
Прості програми
[ред.]Структура простої програми
[ред.]Проста (лінійна) програма складається переважно з команд уведення-виведення даних (READ, INPUT, PRINT), команди присвоєння (LET), зупинки (STOP) та виходу (END) з програми, з команд-коментарів та ін. Ці команди називають простими. Розглянемо деякі з них.
Команду-коментар REM використовують для внесення пояснень у текст програми:
REM <текст пояснення>
або
' <текст пояснення>
Це пояснення може розміщуватися у будь-якому місці програми, але в рядку має бути єдиною або останньою. Вона не впливає на виконання програми.
Команда зупинки STOP. Команда зупинки виконання програми може бути у будь-якому місці програми:
STOP
Ця команда зупиняє виконання програми і на екран виводиться повідомлення про це. Часто цю команду використовують, щоб переписати проміжні результати з екрана монітора. Виконання програми можна продовжити за допомогою команди Continue з меню середовища Qbasic (або натискають на клавішу F5).
Команда END. Команда закінчення роботи програми має вигляд
END
Ця команда є необов'язковою у програмі. Її можна не писати.
Команда SWAP
[ред.]Обмін значеннями між двома змінними можна виконати за допомогою спеціальної команди, яка має вигляд
SWAP A, B
Тут A та B - імена змінних, які обмінюються значеннями.
Приклад: у результаті виконання програми
A = 7: B = 5
SWAP A, B
PRINT A, B
буде виведено значення 5 і 7. Без цієї команди для обміну даними необхідно вводити проміжну змінну C. Програма виглядатиме так:
A = 7: B = 5
C = A: A = B: B = C
PRINT A, B
Введення/виведення
[ред.]Дані у програму можна ввести у інтерактивному режимі (командою INPUT
), або за допомогою команд READ
та DATA
Коли у програмі трапляється команда INPUT
, виконання програми тимчасово припиняється. На екрані монітора з'являється запит у вигляді знака запитання (?) і система чекає введення даних. Ввівши потрібні дані з клавіатури (елементи списку значень розмежовуються комами), потрібно натиснути клавішу Шаблон:Key.
Загальна форма команди INPUT
:
INPUT [підказка,] <список змінних>
У списку через кому чи крапку з комою пишемо імена змінних, значення яких здаватимемо з клавіатури, наприклад,
- INPUT A, B, C, D$
Приклад 2. Розглянемо дію попередньої команди INPUT. Відповімо на запит комп'ютера таким чином:
- ? 5, 10, -2.5 "Україна" (Натискаємо на клавішу вводу).
- Змінна А отримає значення 5, В - значення 10, С - значення -2.5, а D$ - значення "Україна". Лапки в текстових сталих можна не писати.
Для уникнення помилок під час уведення даних з клавіатури в команді INPUT, а саме:
- INPUT "Введіть А, В, С, ТЕКСТ" ,A; B; C; D$.
Отже, за допомогою команди INPUT значення змінних вводять у відповідь на запит комп'ютера, тобто у режимі діалогу користувача із системою.
A = 5 B = 10 C = -2.5 D$ = "Україна"
Надання значень змінним за допомогою команди присвоєння є простим способом, але має два суттєві недоліки. По-перше, якщо є велика кількість вхідних даних, то потрібно записувати відповідну кількість команд присвоєння. По-друге, для повторного розв'язування задачі з іншими даними потрібно вносити змінні в усі команди присвоєння. Цих недоліків не мають інші способи.
Команда INPUT
[ред.]Команда READ
[ред.]Команда READ надає значення змінним з блоку даних (блок розглянемо нижче). Вона має вигляд
READ <список змінних>
Список складається з імен змінних, записаних через кому, наприклад:
READ A,B,C,D$
Значення змінним надають з блоку даних. Блок даних — це список даних (наприклад: 2, 3, 4), значення яких надають відповідним змінним зі списку команди READ. Блок даних потрібно задати. Для цього використовують команду оголошення блоку даних, яка має вигляд
DATA <список даних>
Команда DATA не виконує активної дії. Вона є описовою. У список заносяться числові та текстові дані, наприклад:
DATA 5, 10, 2.5, "Україна"