Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VB.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
7.65 Mб
Скачать

If IsNumeric("-67,3") Then MsgBox ("Это число") Else MsgBox ("Это не число")

что означает: "Если -67,3 - число, то …" Поэтому же совсем не обязательно писать If IsNumeric("-67,3") = True Then ….

Алгоритм работы калькулятора с проверкой звучит примерно так: Если в текстовом поле Число1 введено число и в текстовом поле Число2 введено число, то делай все, что положено, иначе выдавай сообщение "Вводите только числа". Процедура сложения с учетом этого алгоритма будет выглядеть так:

Private Sub Кл_сложения_Click()

If IsNumeric(Число1) And IsNumeric(Число2) Then

Чис1 = Число1.Text

Чис2 = Число2.Text

Результат.Text = Чис1 + Чис2

Else

MsgBox ("Вводите только числа")

End If

End Sub

Здесь я немного сэкономил на переменной Рез. Поскольку мы ее никак не обрабатываем, я обошелся без нее. Процедуры для остальных действий пишутся аналогично.

Запрет деления на ноль

Вторая ошибка, на которую реагирует Visual Basic, это деление на ноль. От нее мы избавимся, если запретим компьютеру делить на ноль, записав вместо оператора

Результат.Text = Чис1 / Чис2

такой:

If Чис2 <> 0 Then Результат.Text = Чис1 / Чис2 Else MsgBox ("На ноль делить нельзя")

Вот как будет выглядеть теперь процедура деления:

Private Sub Кл_деления_Click()

If IsNumeric(Число1) And IsNumeric(Число2) Then

Чис1 = Число1.Text

Чис2 = Число2.Text

If Чис2 <> 0 Then Результат.Text = Чис1 / Чис2 Else MsgBox ("На ноль делить нельзя")

Else

MsgBox ("Вводите только числа")

End If

End Sub

Как видите, здесь в состав многострочного If входит однострочный.

Ставим пароль на калькулятор

Ваш калькулятор стал достаточно надежен и удобен. Теперь его не стыдно показать друзьям. Ну а защищаться от врагов будем паролем.

Наша задача - сделать так, чтобы при попытке запустить калькулятор на экране появлялось приглашение ввести пароль, известный только вам. При попытке ввода неправильного пароля, программа должна заканчивать свою работу.

Поскольку приглашение на ввод пароля должно появляться раньше всего остального, то программируем его в процедуре Form_Load, в самом начале. Предварительно объявим строковую переменную для хранения пароля и выдумаем сам пароль, например, "калям".

Dim Parol As String 'Переменная-пароль

Private Sub Form_Load()

Parol = InputBox("Введите пароль")

If Parol <> "калям" Then MsgBox ("Пароль неверный!"): End

End Sub

Новый для вас оператор End делает всего одну вещь - вызывает завершение программы.

Запустите проект и проверьте, как он работает.

То же самое можно было бы запрограммировать короче, без использования переменной:

Private Sub Form_Load()

If InputBox("Введите пароль") <> "калям" Then MsgBox ("Пароль неверный!"): End

End Sub

Вообще, переменные нужны, если нужна неоднократная обработка какой-то информации: складывать что-то, затем сравнивать это что-то с чем-то другим и т.д. В нашем же случае пароль нужен всего один раз, для сравнения, так что можно обойтись и без переменной.

Вы скажете: Кто угодно перед запуском моей программы посмотрит в ее текст и сразу же увидит пароль. Совершенно верно. Чтобы текст программы не был виден, преобразуйте проект в исполнимый файл, как мы это делали в 1.13.

Сделаем так, чтобы в случае ввода пароля в текстовое поле там появлялись не буквы пароля, а звездочки. В этом случае никто из-за вашей спины не сможет пароль подсмотреть. Для этого достаточно до ввода пароля выполнить строку

Text1.PasswordChar = "*"

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]