Автор работы: Пользователь скрыл имя, 22 Сентября 2013 в 22:30, доклад
Багато програм засновано на порівнянні двох величин і зміні послідовності виконання відповідно до результату цього порівняння. Результатом порівняння двох величин може бути: більше, рівно або менше. Іншими словами для побудови розгалуженого обчислювального процесу не обхідно залучати оперетори прийняття рішень.
Раздел 2. Тема: Операторы принятия решений
Оператори прийняття рішень
План
Багато програм засновано
на порівнянні двох величин і зміні
послідовності виконання
Простим оператором вибору (ухвалення рішення) є оператор IF. Цей оператор має наступний синтаксис: IF умова THEN оператор
умова – логічний вираз, звичайне порівняння двох величин, або формула з логічним результатом (TRUE або FALSE).
Оператора IF перевіряє
значення вираження. Якщо це значення
рівне TRUE, виконується оператор, якщо
ж значення – FALSE, оператор не виконується,
і виконується наступний
Оператор IF часто застосовується для перевірки діапазону, особливо, коли визначає нижній або верхній кордон.
Логічні величини – це змінні типа Boolean, або вирази, результатом яких є значення TRUE або FALSE.
Логічні вирази можуть бути представлені за допомогою операцій логічного порівняння (див. таблицю 1)
Таблиця 1. Операції логічного порівняння
Оператор |
Опис |
= |
= |
<> |
? |
< |
< |
> |
> |
<= |
<= |
=> |
=> |
Is |
Ідентично (тільки для об'єктів) |
Like |
Дозволяє поміняти підстановлювальні символи |
Операція Line – дозволяє при порівнянні рядків використовувати підстановлювальні символи.
Таблиця 2. Підстановлювальні символи, що застосовуються в операції Like
Підстановлювальні символи |
Об'єкт порівняння |
* |
Будь-яка кількість символів |
? |
Будь-який символ |
# |
Будь-яка цифра (0.9) |
[список символів] |
Будь-який символ із списку |
[! Список символів] |
Будь-який символ не із списку |
Функція StrComp() – функція порівняння рядків
StrComp(арг1, арг2, код_сравнения)
Якщо арг1>арг2, то функція поверне 1
Якщо арг1<арг2, то функція поверне 1
Якщо арг1=арг2, то функція поверне 0
Код_сравненія: 0 – двійкове
1 – текстове
Для порівняння двох об'єктів використовується операція IS, повертаюча TRUE тільки в тому випадку, якщо обидві порівнювані змінні посилаються на один і той же об'єкт.
Для перевірки різних величин в VB є спеціальні функції. Ці функції використовуються, щоб перевірити, чи є ті або інші величини величинами потрібного типа, перш ніж використовувати їх в подальшому алгоритмі.
Таблиця 3. Список функцій логічних перевірок VB.
Функція |
Опис |
IsArray() |
True, якщо аргумент – масив |
IsDate() |
True, якщо аргумент – дата |
IsEmpty() |
True, якщо аргумент – порожній рядок |
IsError() |
True, якщо аргумент – код помилки |
IsMissing() |
True, якщо аргумент опущений |
IsNull() |
True, якщо аргумент – Null |
IsNumeric() |
True, якщо аргумент – число |
IsObject() |
True, якщо аргумент – аргумент |
Логічні вирази – це прості розширення виразів порівняння, описаних вище. Щоб створити логічне вираження, потрібно об'єднати одну або більш за операції логічного порівняння і знаки логічних операцій (булевих операцій)
Таблиця 4. Булеві операції
Функція |
Опис |
Not |
Інверсія або заперечення |
And |
Логічне І |
Or |
Логічне АБО |
Xor |
Що виключає АБО |
Imp |
Імплікація |
Eqv |
Еквівалентність |
Структури IF – найефективніші із структур логічного галуження.
Раніше розгледіла проста структура, де за ключовим словом THEN йшов один оператор. Але можуть виникнути ситуації, коли умова достеменна, повинен виконається цілий блок операторів, а інакше виконується інший блок операторів якщо є ключове слово ELSE або друга умова ELSE IF. Або за умови FALSE виконуються оператори належні за оператором END IF.
Розгледимо можливі варіанти:
|
блокEND IF |
Блок1ELSE Блок2END IF |
Блок1ELSE IF умова THEN Блок2ELSE Блок3...END IF |
Структура Select Case – це особливий вид структури IF, що управляє.
Структура Select Case застосовується, коли одна величина бере участь у всіх логічних порівняннях і визначає, який блок, коли виконуватиметься.
Найчастіше Select Case використовується в тих випадках, коли порівнювана величина є цілим числом – селектором або індексом. Значення селектора або індексу і вибирає той блок коду, який виконуватиметься.
Синтаксис:
Select Case змінна
Case значення 1
блок операторів 1
Case значення 2
блок операторів 2
. інші варіанти
End Select
Sub TheCase()
DIM AC As Integer
AC = InputBox(“Введіть число:”)
Select Case AC
B = 5*5
Case 2
B = 5-5
Case 3
B = 5/5
Case ELSE ‘Помилка
Debug.Print “Невірно зроблений вибір ”
End Select
Debug.Print “Результат вибору” &Format(B,00)
End Sub
Неструктурований перехід був елементом мови BASIC з моменту його появи, що і ускладнювало структуру програм. Неструктурований перехід – це структура, яка може застосувати перехід в будь-якому місці процедури. Простим з неструктурованих переходів є оператор GOTO.
де влучна – це влучна або маркер деякого рядка в процедурі. Мітки записуються на початку рядка і після імені мітки ставиться двокрапка.
IF вираження THEN GOTO влучна
GoSub влучна
Різниця між операторами GoSub і GOTO полягає в тому, що після застосування оператора GoSub повинен застосуються оператор Return, що повертає управління операторові, який слідує за останнім оператором GoSub, що виконав.
ON величина GOTO метка1, метка2 .
ON величина GoSub метка1, метка2 .
У цих операторах величини є цілим числом, і якщо величина = 1, то перехід здійснюється на метку1; якщо величина = 2, - те метка2 і так далі
Ситуацій, що вимагають застосування неструктурованих переходів дуже мало. Будь-які звичайні обчислення можна здійснити за допомогою структурованих переходів, причому значно легше, ніж з неструктурованими.