Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Мал. 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).


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

mylektsii.su - Мои Лекции - 2015-2024 год. (0.009 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал