- •Лабораторна робота № 1
- •Системний блок
- •Материнська (системна) плата
- •Системна магістраль даних (системна шина)
- •Мікросхема bios
- •Блок живлення
- •Накопичувачі
- •Адаптери
- •Клавіатура
- •Маніпулятори
- •Плати розширення
- •Зовнішні пристрої
- •Принтери
- •Стримери
- •Пристрої на компакт-дисках
- •Сканери
- •Джерела безперебійного живлення
- •Контрольні питання
- •Лабораторна робота №2
- •Алгоритм, його основні властивості та способи зображення
- •Мова програмування qbasic
- •Найпростіші оператори
- •Контрольні запитання
- •Варіанти завдань роботи
- •Лабораторна робота №3
- •Запуск qbasic
- •Індикатори натиснення спеціальних клавіш:
- •Індикатори натиснення клавіш-перемикачів:
- •Описання головного меню qbasic
- •Введення та редагування програм
- •Редактор qbasic
- •Запуск програми на виконання та перегляд результату
- •Збереження програми у вигляді файла на диску
- •Вихід з середовища qbasic
- •Контрольні запитання
- •Завдання
- •Лабораторна робота № 4
- •Розгалужена структура алгоритму
- •Умовний оператор if
- •Оператор goto
- •Оператор вибору on
- •Оператор select case
- •Циклічна структура алгоритму
- •Оператор for...Next
- •Зразок виконання завдання.
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 5
- •Змінні величини та функції, що їх визначають
- •Область визначення (існування) функції
- •Максимум та мінімум (екстремум) функції
- •Найбільше та найменше значення функції
- •Оператор-функція
- •Зразок виконання завдання
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 6
- •Умовні цикли
- •Оператор while...Wend
- •Оператор do...Loop
- •Метод половинного ділення
- •Зразок виконання завдання
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 7
- •Ітераційний цикл
- •Контрольні запитання
- •Варіанти завдань.
- •Лабораторна робота № 8
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота №9
- •Обмінне сортування
- •Інші методи сортування
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 10
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 11
- •Зразок виконання завдання
- •Контрольні питання
- •Лабораторна робота № 12
- •Контрольні запитання
- •Варіанти завдань.
- •Лабораторна робота № 13
- •Символьні функції
- •Що таке аscii?
- •Перетворення з аsсii в qbasic
- •Визначення довжини символьної величини
- •Виділення частини тексту
- •Кодування текстів
- •Пoшук підрядка
- •Різні варіанти написання тексту
- •Зразок виконання завдання.
- •Контрольні запитання
- •Варіанти завдань.
- •Лабораторна робота № 14
- •Оператор print using
- •Print using та числа
- •Print using та текстові значення
- •Масиви економічної інформації
- •Контрольні запитання
- •Варіанти завдань.
- •Лабораторна робота №15
- •Про функції
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 16
- •Зразок виконання завдання
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 17
- •Прямі лінії – відрізки
- •Оператор circle
- •Малювання прямокутників
- •Коло, дуга, еліпс і сектор
- •Використання кольору
- •Кольори малюнку і фону
- •Колір у текстовому режимі (оператор color)
- •Колір у графіці (оператор color)
- •Вибір значення для параметра фон
- •Зафарбовування областей
- •Ще один метод малювання
- •Відносний рух
- •Обертання
- •Масштабування зображення
- •Колір в операторі draw
- •Текстові змінні в операторі draw
- •Контрольні питання
- •Варіанти завдань
- •Лабораторна робота №18
- •Процедура
- •Використання підпpoгpaм типу SubRoutіne
- •Використання функцій типу def fn
- •Зразок виконання завдання:
- •Контрольні запитання.
- •Варіанти завдань
- •Лабораторна робота № 19
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 20
- •Різні способи дocтyпу до файлів
- •Відкриття фaйлa
- •Peжими pобoти з фaйлaми
- •Пpиклад відкриття фaйлa
- •Перегляд та peдaгувaння файла
- •Контрольні запитання
- •Варіанти завдань
Мова програмування qbasic
QBASIC є мовою програмування. Він, як і будь-яка інша мова програмування, є засобом спілкування з комп’ютером. QBASIC має свою граматику та свій словник. Щоб вивчити будь-яку мову, ви повинні почати з ознайомлення з його алфавітом. Таблиця 2.1. являє собою перелік символів, що використовуються в QBASIC. Поруч з буквами, алфавіт вміщує різні знаки та спеціальні символи. Усі вони можуть бути знайдені на клавіатурі.
Числа
В QBASIC існує два основних типи даних – числові та текстові.
Такі значення, як 44499, -5.99 є прикладами числових даних, тобто даних, що складаються з цифр та десяткової крапки і, якщо число від’ємне – знака мінус.
Тексти можуть включати літери, числа та інші знаки в будь-якій комбінації, наприклад: «Запис номер 20». Такий тип даних має текстову інформацію і повинен бути взятий в лапки.
Таблиця 2.1.
Символ |
Найменування |
Символ |
Найменування |
A-Z |
Великі літери |
: |
Двокрапка |
a-z |
Малі літери |
+ |
Знак плюс |
0-9 |
Цифри |
- |
Знак мінус |
|
Пропуск |
* |
Зірочка (знак множення) |
! |
Знак оклику |
/ |
Нахилена риска |
# |
Дієз |
\ |
Обернена нахилена риска |
% |
Знак процента |
^ |
Знак вставки |
& |
Знак амперсанда |
= |
Знак рівності |
$ |
Знак долара |
< |
Знак менше |
« |
Подвійні лапки |
> |
Знак більше |
‘ |
Апостроф |
() |
Ліва і права дужки |
; |
Крапка з комою |
? |
Знак питання |
. |
Крапка |
_ |
Знак підкреслення |
, |
Кома |
~ |
Тильда |
В QBASIC визначені чотири типи числових даних (див. табл. 2.2.):
Цілі – це числа, що не мають дробової частини, наприклад 55999, -77.
Довгі цілі. Якщо ви вважаєте, що діапазон значень цілих чисел малий, можна скористатися довгими цілими.
Дійсні – числа з дробовою частиною. Коли ці числа дуже малі або великі, QBASIC використовує так звану експоненціальну форму запису, тобто:
-5 689 000 000.0 = -5.689 Е+9
000 0419 = 4.19*10 -9 = 4.19 Е-9
(літера Е в такому запису числа означає «10 в степені…», показник степені стоїть після неї).
Дійсні з подвійною точністю. Розширити діапазон та точність дійсних чисел можна, якщо використати числа типу дійсні з подвійною точністю. Для даних цього типу замість літери Е в запису числа використовується D. Числа з подвійною точністю можуть мати 15 значущих цифр.
Таблиця 2.2.
Тип числа |
Діапазон |
|
Мінімум |
Максимум |
|
Цілі(Integer) |
-32768 |
32767 |
Довгі цілі (Long integer) |
-2 147 483 648 |
2 147 483 647 |
Дійсні (Single –precision) |
-3.4E+38 |
3.4 E+38 |
Дійсні з подвійною точністю (Double-precision) |
-1.8D+308 |
1.8D+308 |
Стандартні функції
При роботі на ЕОМ для обчислення значень функцій, що часто використовуються, існує можливість використовувати вже готові програми, які знаходяться в пам’яті ЕОМ.
Таблиця 2.3.
Запис на мові QBASIC |
Математичні визначення |
SIN(X) |
Sin(x) |
COS(X) |
Cos(x) |
ATN (X) |
Arctg(x) |
LOG(X) |
Ln(x) |
LOG10(X) |
Lg(x) |
INT(X) |
[x] – найбільше ціле, що не перевищує х |
EXP(X) |
ех |
ABS(X) |
х |
SGN(X) |
1, при х>0; 0 при х=0; -1 при х<0 |
SQR(X) |
|
PI |
Число |
В табл. 2.3 наводяться стандартні функції, які можна застосовувати в мові QBASIC для числових змінних. Аргумент стандартної функції береться в дужки. В якості аргументу можна використовувати будь-який арифметичний вираз.
Для отримання інших обернених тригонометричних функцій можна застосовувати формули :
arcSin(x)=arctg(x*sgr(1-x^2))
arcCos(x)= arctg(sqr(1-x^2)/x)
arccTg(x)= arctg(1/x)
Операції та вирази
Вираз — послідовність операцій, які необхідно виконати над даними, щоб одержати потрібне значення. Результатом виразу може бути символьна або числова константа, змінна чи значення. В мові QBASIC існують такі категорії операцій:
арифметичні операції;
операції відношень;
логічні операції;
операції над символьними величинами.
В табл. 2.4. перераховані арифметичні операції мови QBASIC в порядку зменшення пріоритету виконання.
Таблиця 2.4.
|
Піднесення до степені |
*, / |
Множення, ділення |
+, - |
Додавання, віднімання |
Операції вищого пріоритету виконуються у виразах раніше операцій з більш низьким пріоритетом. Операції одного пріоритету виконуються послідовно зліва направо.
Існує ряд умов для правильного запису арифметичних виразів. При запису складного виразу, що включає кілька операцій, ви повинні пам’ятати такі правила:
У програмуванні вираз повинен бути записаний в межах одного рядка, тобто без “двоповерхових” записів . Наприклад:
записується як 17.0/(3.5+4.0)
Якщо вираз є дробом і його частини (дільник та ділене) вміщують кілька операцій, ви повинні використовувати дужки. Дужки змінюють порядок виконання операцій. Наприклад:
записується як (3*2+7)/(14/3-1)
Інколи, особливо в дуже складних виразах, доцільно ставити дужки, навіть якщо це не змінює порядку обчислень. Дужки сприяють кращому розумінню виразу.
Операції відношення застосовуються для порівняння арифметичних виразів. В мові QBASIC налічується 6 операцій відношення. Їх значення та запис на QBASIC представлені в табл. 2.6. і табл. 2.7.:
Таблиця 2.6.
Знак |
Значення |
= |
Рівно |
> |
Більше |
< |
Менше |
<> |
Не рівно |
<= |
Менше або рівно |
>= |
Більше або рівно |
Таблиця 2.7.
Оператор |
Значення |
Вираз в QBASIC |
= |
Рівність |
х=у |
<> |
Нерівність |
х<>у |
< |
Меньше |
х<у |
> |
Більше |
х>у |
<= |
Меньше або рівно |
х<=у |
>= |
Більше або рівно |
х>=у |
Оператори використовують два значення. Результатом операції відношення є два значення:
- TRUE (“так” або 1). Внутрішнє представлення TRUE — 1, таким чином, виконавши PRINT 10>3, одержимо в результаті 1.
- FALSE (“ні” або 0). Внутрішнє представлення FALSE — 0. Виконавши PRINT 10<3 , ми одержимо в результаті 0.
Оператори управління в програмі можуть використовувати результат операцій відношення .
Якщо в одному виразі зустрічаються і арифметичні оператори, і оператори відношення, то першими виконуються арифметичні оператори.
Логічні операції здійснюють маніпуляції над бітами. Інакше вони називаються булевими операції. Вони повертають значення “так” або “ні”, 1 або 0, TRUE або FALSE. Існує три логічних операції, представлені у табл. 2.8.
Таблиця 2.8.
Оператор |
Назва |
Пояснення |
NOT |
Заперечення |
NOT а =1 тоді, коли а=0 |
AND |
Логічне множення |
а AND b=1 тоді і тільки тоді, коли а=1 і b=1 |
OR |
Логічне складання |
а OR b=1 тоді і тільки тоді, коли хоча б одне з них =1 |
Операції над символьними величинами
Для обєднання символьних величин застосовується символ “+”. Наприклад:
A$="добрий", B$="день", C$=A$+B$, в результаті отримаємо С$="добрий день".
Порівняння символьних величин здійснюється у відповідності до ASCII кодів кожного символу змінних. Змінна, символи якої мають більші ASCII коди, вважається більшою. Якщо одна із порівнюваних змінних коротша за іншу, то вона вважається меншою. При порівнянні враховуються початкові і кінцеві пропуски.
Для роботи з символьними величинами існують наступні функції (х$, y$ — символьні величини; m, n – цілі величини)
Таблиця 2.9.
Функція |
Призначення |
LEN(Х$) |
Здійснює підрахунок кількості символів в х$ |
INSTR(n,x$,y$) |
Здійснює пошук підрядка у$, починаючи з символу n рядка х$, що є початковим у підрядку у$, або повертає 0, якщо підрядок не знайдено. |
LEFT$ (x$,n) |
Виділення n лівих крайніх символів рядка х$ |
RITH$ (x$,n) |
Виділення n правих крайніх символів рядка х$ |
MID$ (x$,n,m) |
Виділяє підрядок з m символів, починаючи з n-го символу рядка х$ |
Змінні
Усі програми використовують числові або текстові константи. Константи не можуть бути змінені під час виконання програми, тому для отримання іншого результату ми маємо змінювати саму програму. Наприклад, ви написали програму:
РRINТ " Я МАЮ АВТО "
але потім побажали, щоб результатом її роботи було ствердження, що ви маєте не авто, а, наприклад, велосипед . Найпростішим розв’язанням вважається зміна тексту програми.
Пригадаємо, однак, що комп’ютер може зберігати будь-яку інформацію у своїй пам’яті. Таким чином, щоб зберегти будь-які дані для програми, ви повинні сказати комп’ютеру, що вам потрібна деяка кількість пам’яті (або скажемо інакше – декілька комірок пам’яті). Це можна виконати, використовуючи змінні.
З мінна – це ім’я області пам’яті (розмір області залежить від типу даних), в якій зберігається значення, привласнене змінною.
Змінну часто порівнюють з ящиком в якому знаходиться значення. Щоб краще уявляти собі це, погляньте на рис. 2.1.
Однак таке порівняння не зовсім вірне. Неточність виникає, коли ви, спочатку розмістивши щось у ящику, потім виймаєте це щось. Цілком ймовірно припустити, що у ящику нічого не залишиться. Так це й буде, якщо ви з коробки забрали останню цукерку. У програмуванні дещо інакше. Коли ви пишете:
NameVar $="АВТО"
РRINТ " Я МАЮ "; NameVar$
QВАSIС звернеться до області пам’яті з ім’ям NamеVаг$, де зберігається значення «АВТО», і надрукує отриманий результат, але при цьому саме значення залишиться на своєму місці.
Таким чином, для програмування більш чітким буде порівняння областей пам’яті з полицями у магазині, на яких є різноманітний товар. Ви зможете, роздивлятися його, оцінювати і навіть взяти щось у руки, при цьому на полиці залишаться інші екземпляри цього ж товару. І тільки тоді, коли ви розмістите на цю полицю інший товар, ваша змінна одержить нове значення.
Змінні: імена і типи
Як ми сказали раніше, змінна – це ім’я області пам’яті, якій зберігається деяке значення. У перших версіях ВАSIС ім’я змінної могло складатися з одного чи двох символів; QBASIС не такий суворий. Ім’я змінної може вміщувати до 40 символів (літер латинського алфавіту, цифр), однак завжди повинно починатися з літери. Наприклад, припустимі такі імена:
FIRSТ.JOВ |
МYNAME$ |
А01 |
АRЕА |
А02 |
МОNTH$ |
Якщо два імені різняться хоча б одним символом (наприклад, WEEK1$ і WЕЕК2$), то вони визначають різні змінні і різні області пам’яті.
Створюючи нові імена для своїх змінних, ви можете використовувати як маленькі, так і великі літери. Але пам’ятайте, QBASIC не робить між ними різниці. Усі приведені нижче імена визначають одну й ту ж змінну.
ОurLife$ |
OURlife$ |
OURLIFE$ |
ourlife$ |
Спеціальні символи, що використовуються в іменах змінних
Можливо, ви вже помітили, що деякі імена змінних закінчуються знаком $. Це не випадково, більш того, дуже важливо. Як ви вже знаєте, дані для програми поділяються на 2 групи: числові та текстові. Спеціальний символ, що стоїть в кінці імені змінної, показує, до якого типу даних належить змінна. Знак $ в кінці імені змінної говорить QВАSIС, що змінна відноситься до текстової групи. Нижче приведені приклади текстових змінних:
Greeting$ = "З ДНЕМ НАРОДЖЕННЯ "
Myname$ = "СЕРГІЙКО"
Status$ = "ALL RIGHT "
Символи, які використовуються для позначення змінних інших типів, приведені у таблиці 2.10.
Таблиця 2.10.
Тип |
Символ |
Цілі(Integer) |
% |
Довгі цілі (Long integer) |
& |
Дійсні (Single–precision) |
! |
Дійсні з подвійною точністю (Double-precision) |
# |
Текстовий (String) |
$ |
Якщо ім’я змінної не має на кінці спеціального символу, що визначає його тип, то приймається, що змінна – дійсного типу.
В наступному прикладі імена змінних різняться лише закінченнями. Але цього досить, щоб в пам’яті їм відводились різні області. Ці змінні повинні приймати значення відповідного типу:
А% |
Gгееting |
A! |
Greeting$ |
Як вибрати ім’я для змінної
Ви можете вибрати для змінної будь-яке ім’я, яке вам сподобалося, але незабаром переконаєтесь, що відповідність між іменем змінної та роллю, яку вона виконує в вашій програмі, необхідна.
NAME$ |
РАGE. NAMBER% |
MAX. VALUE |
Вибираючи ім’я для змінної таким чином, ви завжди зможете легко й швидко згадати, для яких цілей потрібна та чи інша змінна, особливо якщо ви вирішили повернути до життя давно написану та вже забуту програму. Імена змінних будуть додатковим коментарем у вашій програмі. До того ж, ви не можете використовувати в іменах змінних пропуск, але якщо ви хочете, щоб ім’я змінної складалося нібито з кількох слів, використовуйте замість пропуску, наприклад, крапку.
Погляньте уважно на наступну програму 1:
‘Програма 1
RЕМ Тестування оператора РRINТ
РRINТ НЕLLО
ЕND
Н а перший погляд оператор РRINТ виглядає вірно, однак якщо ви запустите програму на виконання, то побачите не привітання, а результат, зображений на рис.2.2.
Що ж трапилось? Забувши поставити лапки, ви не повідомили QBASIC, що хочете друкувати текстову інформацію, і тому слово НЕLLO було інтерпретовано як ім’я змінної дійсного типу. А так як ніякого значення їй не було присвоєно, вона зберегла початкове значення, яке їй присвоєно QВАSIС.
Як бачите, в QBASIC, як і в багато інших мовах програмування, дійсне використання спеціальних символів необхідно щоб досягнути бажаного результату.