
- •Інформатика
- •1. Складання алгоритмів
- •1.1. Визначення алгоритму
- •Алгоритм повинен бути:
- •1.2. Алгоритми на природній мові
- •1.3 Алгоритми лiнійної структури
- •1.4 Алгоритми розгалуженої структури
- •1.5 Алгоритм циклічної структури
- •1.6 Комбіновані алгоритми
- •1.7 Схематичне зображення алгоритмів
- •Опис символів
- •2 Алгоритмічна мова qbasic
- •2.1 Інструментарій
- •2.2 Система меню
- •Поле опцій
- •Перемикачі
- •Поле вводу
- •Блок контролю
- •Поле списків
- •2.3 Редактор
- •Маркіровка тексту
- •Обробка тексту
- •2.4 Збереження і завантаження програм
- •Збереження
- •Збереження з іншим іменем
- •Завантаження програми
- •2.5 Складання нової програми
- •2.6 Друк програми
- •2.7 Пошук та зміна тексту
- •Пошук тексту
- •Багаторазовий пошук
- •Зміна тексту
- •2.8 Робота з кількома вікнами
- •2.10.1 Елементарні конструкції мови qbasic
- •Символи
- •2.10.2 Чисельні та символьні дані
- •2.10.3 Стандартні функції
- •2.10.4 Вирази
- •2.10.5 Операції та їх приорітет
- •Логiчні операцiї
- •2.11 Оператори мови qbasic
- •2.11.1 Оператор присвоєння
- •2.11.2 Оператор swap
- •2.11.3 Оператори введення-виведення Оператори введення read, data, restore
- •Оператор введення input
- •Оператор виведення print. Функції spc, tab
- •Оператор виведення print using
- •2.11.4 Оператори керування
- •Оператор goto
- •Оператор on…goto
- •Оператори stop і cont
- •Оператори if… then… else
- •Блок умовного переходу в програмі
- •Оператори gosub і return
- •Оператор on...Gosub
- •Цикл while
- •Цикл do
- •Оператор вибору select case
- •2.11.5 Графiчнi оператори Оператор view
- •Оператор screen
- •Оператор circle
- •Оператор window
- •Оператор line
- •Оператор draw
- •Оператор preset, pset
- •Оператор locate
- •2.11.6 Функції і процедури, визначенні користувачем
- •Функції-вираз
- •Власні функції
- •Власні процедури
- •2.11.7 Масиви Оператори option base, dim, erase
- •Встановлення кольорів екрана
- •2.11.9 Робота з файлами
- •2.11.10 Функція eof
- •Перелік посилань
2.10.4 Вирази
Простi вирази - це змiннi та числа. Бiльш складнi вирази складаються з чисел та змiнних, стандартних функцiй, за допомогою арифметичних операцiй та круглих дужок. Знак множення ““ у виразi записаному на мовi QBASIC, пропускати не можна. Пiд час виконання програми обчислюються значення виразiв. При обчисленнi дiють знайомi правила прiоритету чисельних операцiй: спочатку пiднесення до степеня, потiм множення та дiлення, та нарештi, додавання та вiднiмання. З двох операцiй однакового прiоритету спочатку виконується та, яка в програмi зустрiчалася ранiше. Для змiни стандартного порядку виконання дiй треба використати круглi дужки .
Приклад. Записати вираз мовою QBASIC :
y=0.3((
e
)ln
x-
).
В програмi вираз набуде вигляду:
Y=.3(((SIN(X)^2-COS(X)^2)/SIN((X+Y)/2)-EXP(ABS(COS(X)+ +SIN(X))))LOG(X)-SQR(X-1)).
Те
ж саме, для виразу:
x=
,
X=A/(B(C/(D(E/(FH))))) чи X=A/B/C/D/E/F/H
2.10.5 Операції та їх приорітет
Стандартний пріоритет операцiй, як було наведено вище, можна змiнювати за допомогою круглих дужок: вирази в круглих дужках завжди виконуються в першу чергу. Дужки можуть вкладатися однi в iншi практично необмежено; першим завжди виконується підвираз, взятий у самих внутрiшнiх дужках (квадратнi дужки можуть бути використанi тiльки при опису елементiв масивiв). При цьому вiдповiднi вiдкриваючi та закриваючi дужки повиннi бути одного типу.
Логiчні операцiї
В QBASIC, як бачимо з таблиці 2.10, передбачено шiсть логiчних операцiй. Для розумiння цих операцiй розглянемо такий приклад. Нехай операндами є твердження “Іванов бажає працювати на ЕОМ” та “Петров бажає працювати на ЕОМ”.
Таблиця 2.10 Пріоритет операцій
Позначення дії |
Кiлькiсть операндiв |
Назва операції |
Приклад |
Чисельнi операції |
|||
^ / \ MOD |
2 чисельних 1 чисельний 2 чисельних 2 чисельних 2 чисельних 2 чисельних 2 чисельних 2 чисельних |
зведення до степеня змiна знаку множення дiлення цілочисленне дiлення залишок вiд дiлення складання вiднiмання |
А^B -A AB A/B A\B A MOD B A+B A-B |
= <> чи >< < > <= чи =< >= чи => |
2 символьних 2 однотипних 2 однотипних 2 однотипних 2 однотипних 2 однотипних 2 однотипних |
конкатенацiя дорівнює не дорiвнює менше бiльше не бiльше не менше |
А$+В$ А=В чи А$=В$ А<>B чи A$<>B$ A<B чи A$<=B$ A>=B чи A$>=B$; A<=B чи A$<=B$; A>=B чи A$>=B$ |
Логiчнi операції |
|||
NOT AND OR XOR EQV IMP |
1 логiчний 2 логiчних 2 логiчних 2 логiчних 2 логiчних 2 логiчних |
заперечення кон’юнкцiя диз’юнкцiя виключаюча диз’юнкцiя еквiвалентнiсть iмплiкацiя |
NOT B<D A>C AN B<D A>C OR B<D A>C XOR B<D A>C EQV B<D A IMP B |
Використовуючи операцiю NOT, ви стверджуєте, що вашi погляди протилежнi.
Вираз з операцією AND каже, що ви бажаєте працювати на ЕОМ, якщо ваше бажання збігається з бажанням Іванова та Петрова.
Вираз з операцією OR означає, що ви бажаєте працювати на ЕОМ, якщо цього бажає чи Іванов, чи Петров, чи вони вдвох .
Вираз з операцiєю XOR означає теж саме, але за умови, що бажання працювати є або у Іванова, або у Петрова, але не в обох зразу.
Операцiя EQV протилежна XOR, вона говорить про те, що ви бажаєте працювати на ЕОМ, якщо обидва ваших товариша або бажають того ж або нi.
Вираз з операцією IMP стверджує, що ви бажаєте працювати на ЕОМ завжди, крiм випадку, коли цього ж бажає Іванов i не бажає Петров.
Особливостi операції NOT з числовими операндами:
A=77 : B=66 : C=7.9 : D=–6.3
AA=NOT A : BB=NOT B : CC=NOT C : DD=NOT D
PRINT A,B,C,D : PRINT AA, BB, CC, DD
77 -66 7.9 -6.3
-78 65 -9 5
Таким чином, результатом операції NOT з числовим операндом А є число (-sign(A)(округлене значення А))-1 .
Розглянем більш детально ці операції.
Приклад:
CLS
INPUT "Ввести число 1", zahl1%
INPUT "Ввести число 2". zahl2%
'Кінець програми
Припустимо вхідні дані повинні вводитися тільки тоді, коли zahl1% більше нуля, і водночас zahl2% менш нуля. Як перевірити одне з умов, Ви вже знаєте. Розглянемо засіб, що дозволить об'єднти обидві умови.
Логічне І (AND)
AND (І) кон'юнктивно об'єднує логичні умови:
Умова 1 AND Умова 2 [AND Умова 3]...
Результат такого об'єднання лише тоді істинний, коли істинне кожна окрема умова.
|
Умова 1 |
Умова 2 |
Умова 1 AND Умова 2 |
|
І |
І |
І |
|
І |
Н |
Н |
|
Н |
І |
Н |
|
Н |
Н |
Н |
Де І — істина, Н — неправда.
Приклад:
CLS
DO… INPUT "Введіть число 1 >0", zah11%
INPUT "Введіть число 2 < 0", zah12%
LOOP UNTIL zah11%>0 AND zah12%<0
PRINT "Спасибі за коректне введення"
'Кінець програми
Тільки тоді, коли zah11% > 0 та zah12%< 0, значення всього логічного виразу стане істинно, отже, виконання циклу закінчиться.
Логічне ЧИ (OR)
OR (ЧИ) дизюнктивно об'єднує логічні умови: Умова 1 OR Умова 2 [OR Умова 1...]. Результат такого об'єднання тільки тоді неправдивий, коли неправдиві всі складові частини
|
Умова 1 |
Умова 2 |
Умова 1 AND Умова 2 |
|
І |
І |
І |
|
І |
Н |
І |
|
Н |
І |
І |
|
Н |
Н |
Н |
Приклад:
СLS
DO
PRINT "Число 1 або число 2 повинно бути більше нуля “
INPUT "Введіть число 1", zahH%
INPUT "Введіть число 2", zahl2%
LOOP UNTlL zahl1%>0 OR zahl2%>0
PRINT "Спасибі за коректне введення"
‘Кінець програми
В цьому прикладі вихід з LOOP-циклу не відбудеться тільки в тому разі, якщо значення кожного з введених чисел буде менш або дорівнює нулю.
При програмуванні описаного вище прикладу чітко видно переваги застосування масивів.
Приклад:
'Вправа з використанням масиву
DIM artpr! (1 ТО 20) 'масив цін
DIM і% 'індекс змінна
CLS
'Введення цін для 20 найменувань товарів
FOR і%=1 ТО 20
PRINT "Ввести вартість"; і%;''-го товару"
"Введення в элемемент масиву з індексом і%
INPUT "", artpr (і%)
NEXT і%
'Виведення 20 найменувань
CLS 'Виведення в рядок
'суми, кількість, середнього значення, Мах, Min
Завдання: Доповнити програму останнього прикладу висновком даних.
Якщо при обробці масивів індекс перевищує проголошений розмір масиву, видається повідомлення про помилку.
Приклад:
DIM zahl% (1 Т010)
zahl% (1)=12 'Коректно
zahl% (0) = 13 'Помилка, бо 0 невизначений
zahl% (11) = 14 ' Помилка, бо 11 невизначений