Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



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

Приклад 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, об'єкт Рамка, об'єкт Кнопка-перемикач, об'єкт-контейнер.

Питання для роздумів

Могли б Ви самостійно довести справедливість наведених у цьому розділі правил булевої алгебри (правил винесення загального доданка і загального співмножника за дужки, правил де Моргана й інших)?

Могли б Ви самостійно визначити істинність виразу
(X > 5) Or (X = 0 And Y < 0) Or (Not (X >= Z))
для шести комбінацій значень величин X, Y, Z, наведених у табл. 6.5?

Табл. 6.5.
Номер X Y Z
      -10
    -10  
      -10
  -10    
  -10 -10  
  -10    

Як буде виглядати код 6.11, якщо замінити усі вхідні в нього оператори If Then Else операторами Select Case?

Скільки об'єктів класу Рамка і скільки об'єктів класу Кнопка-перемикач потрібно створити на екранній формі, щоб з їх допомогою вирішити задачу прикладу 6.11 про малювання різних геометричних фігур різного кольору?

Вправи

Запрограмуйте додаток, за допомогою якого можна перевірити істинність виразу
(X > 5) Or (X = 0 And Y < 0) Or (Not (X > - Z))для будь-яких значень величин, що вводяться Вами, X, Y, Z (у тому числі і тих, що наведені в табл. 6.5).

Спроектуйте два варіанти додатка, що вирішує задачу приклада 6.11 — з використанням кнопок-перемикачів і з використанням двох текстових полів для вводу значень змінних Колір і Фігура. У першому випадку використайте в програмі умовний оператор If Then Else, а в другому — оператор Select Case?





Дата публикования: 2014-12-28; Прочитано: 252 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...