Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

До розд. 6.3) Програмування вибору альтернативи




Додаткові відомості

(До розд. 6.1) Короткі зведення про алгебру логіки (булеву алгебру)

У математиці є розділ, що називається алгеброю логіки. Іноді на честь її засновника, англійського математика Джорджа Буля (1815—1864), цю алгебру називають булевою алгеброю. На відміну від знайомої зі школи звичайної алгебри, у якій ми маємо справу з арифметичними операціями додавання, множення й іншими, в алгебрі логіки розглядаються операції логічного додавання, логічного множення й інші.

Як і в звичайній алгебрі, в алгебрі логіки діють свої строгі закони. Їх досить багато, і ми не будемо їх усі розглядати. Приведемо лише приклади.

Від перестановки логічних додатків (чи співмножників) логічна сума (чи логічний добуток) не міняється. Це можна записати так:

A Or В = В Or A,
A And В = В And А.

Є і такі правила:

(А Оr В) And (A Or С) = A Or (В And С)

(A And В) Or (A And С) = A And (В Or C)

(Їх називають правилами винесення загального доданка чи співмножника за дужки)

Правила розкриття дужок:

Not (Not A) = А
Not (A Or В) = (Not A) And (Not B)
Not (A And S) = (Not A) Or (Not B)

(Останні два правила називаються правилами де Моргана.)

Є і таке правило (старшинства логічних операцій): Насамперед виконується операція заперечення, потім — операція логічного множення, і тільки потім — операція логічного додавання. Наприклад, у виразі:

X > 5 Or X = 0 And Y < 0 Or Not X >= Z (6.1)

насамперед обчислюється значення логічного заперечення Not X >= Z, потім — значення логічного множення: X = 0 And Y < 0 і тільки після цього значення X > 5 логічно складається з отриманими результатами!

Щоб не заплутатися, можна скористатися дужками і переписати вираз (6.1) так:

(X > 5) Or (X = 0 And Y < 0) Or (Not (X >= Z)) (6.2)

Чи не правда, вираз (6.2) більш зрозумілий, ніж вираз (6.1)?

Часто доводиться програмувати вибір однієї з декількох взаємовиключних можливостей, що називаються альтернативами.

Приклад 6.11. Нехай Ви хочете зобразити в графічному вікні одну з трьох фігур (окружність, квадрат чи трикутник) одним з чотирьох кольорів (червоним, зеленим, жовтим чи чорним). Тут Ви маєте справу з 12 альтернативами, з яких Вам треба вибрати тільки одну.

Можна запропонувати наступну програму для такого вибору (код 6.12):

Код 6.12

Програма складається з двох частин: у першій частині вибирається колір, а в другій — вибирається фігура, що зображується обраним кольором. При цьому передбачається, що дві змінні — Колір і Фігура, — вже одержали потрібні значення. (Ці значення користувач міг, наприклад, внести в текстові поля чи ввести за допомогою вікон введення.)

Як Ви бачите, програма дуже проста — у ній всього 7 умовних операторів, що виконуються послідовно, один за одним. Ці оператори не містять слова Else — за допомогою кожного з них здійснюється не подвійний, а одинарний умовний перехід. Може здатися, що це і є ідеальне вирішення проблеми вибору альтернативи.

Однак, Ви можете побачити в цій програмі (і не без підстави) один недолік: у своїй роботі вона буде робити зайві перевірки умов. Дійсно, якщо, наприклад, за допомогою першого оператора обраний червоний колір, то немає сенсу виконувати 3 оператори, що залишились і у яких вибираються інші кольори. Але ці оператори все-таки будуть виконуватися послідовно!

Одним зі способів усунення цього недоліку є включення до умовних операторів слова Else, наприклад, так:

Код 6.13

Але читати (а тим більше, писати) такі програми не дуже приємно — Ви самі бачите, чому.

На щастя, у мові Visual Basic є більш простий спосіб запису програми, що покликана вибирати альтернативу. Цей спосіб застосовується в тому випадку, коли умова в умовних операторах наступна: Змінна = Значення. Він полягає у використанні оператора Select Case.

Розглянемо спрощений синтаксис цього оператора (детальніше оператор Select Case буде розглянутий у другій частині посібника, присвяченій перевірці складних умов).

SelectCase Змінна Case Значення 1 ПослідовністьОператорів 1... CaseЗначення(N-1) ПослідовністьОператорів(N-1) [CaseElse Послідовністьоператорів ] End Select

Вважається, що ціле число N (кількість альтернатив) не менше двох — інакше і вибір не треба було б робити.

З використанням оператора Select Case код 6.13 буде мати більш «приємний» вигляд:

Код 6.14

Для програмування вибору альтернативи в наборі Toolbox середовища Visual Basic є дуже зручний інструмент — Option Button (Кнопка-перемикач).

— піктограма цього інструмента.

З його допомогою на екранній формі створюються особливі об'єкти керування — кнопки-перемикачі, що обов'язково поєднуються у групи (кнопок повинно бути не менше двох в одній групі).

Для об'єднання кнопок у групу найкраще помістити їх на особливий об'єкт, що називається Рамкою (Frame). Об'єкти класу Рамка створюються за допомогою інструмента Frame з набору Toolbox середовища Visual Basic.

— піктограма цього інструмента.

Об'єднані в групу, кнопки-перемикачі одержують цікаву особливість — якщо одна з них буде «натиснута», то інші автоматично стають «вимкненими». При цьому значення властивості Value y «натиснутої» кнопки буде дорівнює True, а у «вимкненій» — False. Використовуючи цю властивість, за допомогою кнопок-перемикачів можна легко запрограмувати введення і вибір різного роду альтернатив.

Приклад 6.12. На мал. 6.7 зображено вікно додатка, за допомогою якого в графічному вікні малюються кола різного кольору. Колір вибирає користувач за допомогою кнопок-перемикачів, поміщених на об'єкт Рамка з написом «Колір кола» на бордюрі (напис на бордюрі об'єкта Рамка — це значення властивості Caption цього об'єкта).

Мал. 6.7. Використання кнопок-перемикачів для вибору альтернативи

Об'єкт класу Рамка має особливу властивість, завдяки якій його називають об'єктом-контейнером (контейнерами є також об'єкти класів Екранна форма і Графічне вікно) — сховищем інших об'єктів, що знаходяться всередині (щоб помістити об'єкт всередину рамки, потрібно спочатку цю рамку створити і тільки потім помістити всередину її цей об'єкт (але не навпаки!)) рамки. Ця властивість така: переміщаючи рамку, Ви разом з нею переміщаєте і всі об'єкти, що знаходяться всередині; знищуючи рамку, Ви знищуєте і всі об'єкти, що знаходяться в ній; роблячи рамку невидимою (Об'єкт невидимий, якщо значенням його властивості Visible є False), Ви робите невидимими і всі об'єкти, що знаходяться в ній.

Нові поняття:

алгебра логіки (булева алгебра), альтернатива, оператор вибору альтернативи Select Case, об'єкт Рамка, об'єкт Кнопка-перемикач, об'єкт-контейнер.




Поделиться с друзьями:


Дата добавления: 2014-12-23; Просмотров: 463; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.