Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка QB.doc
Скачиваний:
14
Добавлен:
06.11.2018
Размер:
2.41 Mб
Скачать

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/(FH))))) чи 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

AB

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 невизначений