Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум по QBasic.doc
Скачиваний:
4
Добавлен:
29.04.2019
Размер:
5.12 Mб
Скачать

Мова програмування 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, як і в багато інших мовах програмування, дійсне використання спеціальних символів необхідно щоб досягнути бажаного результату.