Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Мал. 6.3. Назване число менше за загадане.
Перевірка умови " не рівно" Якщо ви хочете переконатися в тому, що одне значення відмінне від іншого, слід скористатися оператором < >:
if x < > 3 Then MsgBox " x не дорівнює 3" End If Цей оператор буває особливо корисним в ситуаціях, коли вимагається перевірити, що користувач ввів значення. Щоб зрозуміти, чому це так, Запустіть програму з попереднього прикладу: 1. Натисніть кнопку Загадати число, щоб згенерувати випадкове число від 1 до 10. 2. Натисніть кнопку Вгадати. 3. У вікні введення, що відкрилося, натисніть кнопку OK або Cancel З'являється повідомлення про помилку – не співпадіння типів. Натисніть кнопку End, щоб завершити роботу програми. Не вдаючись до подробиць процесу відладки, скажу, що помилка виникла в наступному рядку:
guess = CInt(InputBox(msg))
Річ у тому, що функція CInt() повинна отримувати дані, що перетворюються в ціле число. Якщо функція викликається для порожнього рядка, видається повідомлення про помилку. Щоб запобігти помилці, перед перевіркою слід переконатися в тому, що користувач ввів деяке значення. Оператор < > ідеально підходить для цієї мети! Перевірку можна виконати наступною командою:
If rс < > " " Then
У перекладі людською мовою це означає: " Якщо значення guess не рівно порожньому рядку, то зробити щось". 4. Відредагуйте процедуру події Click кнопки cmdGuess і приведіть її до наступного виду:
Private Sub cmdGuess__Click() Dim guess As Integer Dim msg As String Dim cap As String Dim rc As String
'Створити повідомлення msg = " Введіть число від 1 до 10"
'Отримати число від користувача rс = InputBox(msg)
'Переконатися в тому, що користувач ввів значення.. If rс < > " " Then 'Перетворити рядок в ціле число guess = CInt(rc) ' Число вгадане вірно? Select Case guess Case Is = SecretNumber ' Так! Користувач вгадав! msg = " Ви вгадали"! cap = " Вірно"! ' Вивести повідомлення MsgBox msg, vbExclamation, cap ' Закінчити гру End Case Is > SecretNumber ' Ні. Наступна спроба.. msg = " Невірно. Загадане число менше". cap = " Спробуйте знову"! MsgBox msg, vbInformation, cap Case Is < SecretNumber ' Ні. Наступна спроба.. msg = " Невірно. Загадане число більше". cap = " Спробуйте знову"! MsgBox msg, vbInformatidn, cap End Select Else msg = " Ви повинні ввести число"! cap = " Введіть число"! MsgBox msg, vbInformation, cap End If End Sub 5. Збережете і Запустіть проект Перевірка умови " більше або рівно" Іноді доводиться перевіряти, що деяка величина більше іншої або дорівнює їй. Для цієї мети використовується оператор > =:
if x > = 3 Then MsgBox " x більше або рівне 3" End If
Приведений фрагмент надзвичайно простий. Якщо значення x більше або рівне 3, програма виводить вікно повідомлення. Ймовірно, ви вже зрозуміли, як користуватися цим оператором. Припустимо, ви пишете програму для управління пасажирським літаком. Звичайно, якщо пілот летить занадто швидко, його необхідно попередити. Перевищення швидкості може привести до перевантаження і викликати катастрофічні ушкодження літака. Проте на літаку працює ваша (звичайно ж, чудова!) програма; вона перевіряє швидкість і переконується в тому, що пілот не перевищив максимальну рекомендовану швидкість. Виконаєте наступні дії: 1. Створіть новий проект командою File > New Project. 2. У діалоговому вікні New Project виберіть значок Standard EXE. Натисніть кнопку ОК. 3. Задайте властивості Name форми значення frmMain, а властивості Caption - значення Датчик швидкості. 4. Створіть на формі вертикальну смугу прокрутки і задайте її властивості Name значення vscThrottle. Розташуєте смугу в правій частині форми і розтягніть її на усю висоту форми. 5. Задайте властивості Мах смуги vscThrottle значення 100. 6. Створіть на формі frmMain напис. Задайте її властивості Name значення lbl Airspeed, а властивості Caption - значення Поточна швидкість:. 7. Двічі клацніть на формі frmMain в конструкторі форм, щоб відкрити вікно програми. 8. Вставте наступний фрагмент в секцію(Declarations) форми frmMain:
Option Explicit Private Throttle As Integer ' Поточне значення газу Private Const VNE = 427 ' Гранична швидкість
9. Ініціалізуйте значення газу в наступному фрагменті, який необхідно вставити в процедуру події Load форми frmMain,:
Private Sub Form_Load() vscThrottle.Value = 100 End Sub
10. Вставте наступний фрагмент в процедуру події Change елементу vscThrottle:
Private Sub vsc_Throttle_Change() Dim ias As Integer ' Поточна швидкість
' Відстань до верхньої позиції смуги прокрутки Throttle = 100 - vscThrottle.Value
' Вичислити поточну швидкість за значенням газу ias = Throttle * 4.5
' Відновити датчик швидкості lblAirspeed.Caption = " Поточна швидкість: " & Trim$(Str$(ias))
' Перевірити поточну швидкість і переконатися, що вона не перевищує граничної If ias > = VNE Then MsgBox " Зменшити газ"!, vbCritical, " Перевищення швидкості" End If End Sub Цю процедуру варто розглянути детальніше. Перша частина, в якій ми обчислюємо значення Throttle, потрібна через те, що при знаходженні бігунка у верхній позиції смуги прокрутки її властивість Value за умовчанням дорівнює 0. Максимальному газу на літаку, навпаки, відповідає верхнє положення руків'я (" від себе"). Наша програма імітує літакове руків'я газу за допомогою смуги прокрутки. Рядок, в якому розраховується поточна швидкість (ias), не занадто точний. Обчислення швидкості справжнього літака - завдання складна і така, що виходить далеко за рамки цієї книги. Я скористався простою формулою, яка дозволяє літаку розганятися до 400 вузлів. Попередження виводиться в наступному фрагменті: ' Перевірити поточну швидкість і переконатися, ' що вона не перевищує граничної If ias > = VNE Then MsgBox " Зменшити газ"!, vbCritical, " Перевищення швидкості" End If Якщо поточна швидкість перевищує граничну або дорівнює їй, програма виводить застережливе повідомлення. 11. Збережете і Запустіть проект. Переміщайте бігунок на смузі прокрутки і стежите за тим, як росте поточна швидкість. Коли вона досягне граничної, з'являється попередження (мал. 6.5).
|