Федеральное агентство по образованию
федеральное государственное образовательное учреждение
Тольяттинский политехнический колледж
МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ
К практической работе №12
по дисциплине «Пакеты прикладных программ»
2008
“Утверждаю”
Заместитель директора по
учебной работе ТПК _________________
“__”_______________ 200__ г.
Одобрено ПЦК по
специальности «Информатика и ВТ»
Зав. ПЦК_________
Методические указания составлены в соответствии с рабочей программой по дисциплине «Пакеты прикладных программ» Специальности 230105 «Программное обеспечение вычислительной техники и АС», утвержденной зам. Директора по учебной работе
Составитель: .
Преподаватель специальных и общеобразовательных дисциплин Тольяттинского политехнического колледжа.
Рецензент:
Методические указания к выполнению работы
Разработка процедур, предотвращающих появление ошибок
Краткие теоретические сведения
При составлении приложений важно предусмотреть, чтобы программа анализировала возможные ошибки, возникающие при ее выполнении по вине пользователя, и информировала его об этом, подсказывая пользователю, что конкретно он сделал неправильно. При этом возможно два подхода:
Предотвращение ошибки.
Программно анализируются вводимые или вычисляемые данные, и в случае, если они могут приводить к ошибке, обеспечивается, чтобы программа информировала пользователя о необходимости корректного задания данных
Обработка ошибки
В случае появления ошибки, она перехватывается, обрабатывается и создается программный отклик на возникшую ошибку
Рассмотрим процесс создания приложения, в котором предотвращается появление ошибок, на простейшем примере (листинг 1). Эта программа находит обратное значение без контроля над появлением возможных ошибок.

Листинг 1 Деление двух чисел без предупреждения о возможных ошибках
Private Sub cmdOk_Click()
Dim a As Double, b As Double, C As Double
a = CDbl(TextBox1.Text)*
b = CDbl(TextBox2.Text)*
C = a / b
TextBox3.Text = CStr(C)
End Sub
_____________________________
*Функция CDbl(E) – возвращает значение типа Double; E – любое допустимое численное или строковое выражение, которое может быть преобразовано в число
Несмотря на то, что рассматриваемая ситуация очень простая, уже она таит в себе множество подводных камней. Например, если пользователь по невнимательности забудет ввести в поле А число, при нажатии кнопки Ок произойдет аварийное прерывание выполнения программы с мал понятным сообщением о несоответствии типов (Рис 2). Данное сообщение об ошибке связано с инструкцией:
a = CDbl(TextBox1.Text),
Microsoft Visual Basic" align="left" width="280" height="40"/>где параметром функции CDbl должна быть строка, преобразуемая в число. Если в поле А не введено ничего, по умолчанию из этого поля будет считываться пустая строка. Но пустая строка не может быть преобразована в число, и поэтому из-за функции CDbl происходит ошибка. Ошибка несоответствия типов возникнет также, если в одно из полей пользователь по неосторожности введет число с десятичной запятой, а установками системы предусматривается десятичная точка и наоборот.
Данные ошибки ввода легко избежать, предусмотрев в программе предварительную проверку: преобразуются ли вводимые данные в числа. Эту предварительную проверку можно сделать, например, как показано в листинге 2:
Листинг 2 Деление двух чисел с проверкой корректности вводимых данных
Private Sub cmdOk_Click()
Dim a As Double, b As Double, C As Double
If Not IsNumeric(TextBox1.Text) Then*
MsgBox "Неверный формат числа À"
TextBox1.SetFocus
Exit Sub
End If
If Not IsNumeric(TextBox2.Text) Then*
MsgBox “Неверный формат числа B”
TextBox2.SetFocus
Exit Sub
End If
a = CDbl(TextBox1.Text)
b = CDbl(TextBox2.Text)
If b=0 Then
MsgBox “На ноль делить нельзя”
TextBox2.SetFocus
End If
C = a / b
TextBox3.Text = CStr(С)
End Sub
________________________________________
*Функция IsNumeric возвращает значение (тип Boolean), указывающее, является ли результатом вычисления выражения численное значение
Практическое задание
1. Самостоятельно создать форму «Вычисление полных лет» с вводом даты рождения

2. В программе учесть проверки: правильности введенной даты и даты больше текущей даты с выдачей сообщений.

3. Применить проверку ошибок в задании «Калькулятор».


