Dim sum As Single, sa As Single 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Dim sum As Single, sa As Single



sum = 0

For i = 1 To 10

If b(i) Mod 2 = 0 Then

sum = summ + b(i)

k = k + 1

End If

Next

sa = sum / k

MsgBox("Среднее арифметическое четных чисел" + _
Str(sa), vbOKOnly, "Результат")

End Sub

 

18. При попытке выполнить программу выведется сообщение об ошибке: «There were build errors. Would you like to continue and run the last successful build?». После нажатия кнопки Yes запустится старая версия программы, в которой не было добавлена возможность расчёта среднего арифметического. Чтобы понять, в чём дело необходимо посмотреть на содержимое окна Error List, в нём вы увидите следующее: поле Description будет содержать текст – «Name ‘summ’ is not declared», а поле line – номер ошибочной строки. Данное сообщение говорит о том, что переменная summ не объявлена. Действительно, если посмотреть на процедуру btnSa_Click, мы нигде не увидим объявления этой переменной. Как теперь стало понятно имя переменной задано неправильно – надо удалить лишнюю букву m, чтобы имя переменной стало – sum.

19. Ввести большие числа 11111, 22222, 33333, 44444 и т.д. При вводе числа большего 32767 программа завершается аварийно, так как возникает ошибка выполнения – An unhandled exception of type ‘OverflowException was unhandled’, т.е. ошибка переполнения. Цветом выделяется строка с оператором, выполнение которого привело к возникновению ошибки. Это строка, в которой вызывается функция InputBox для ввода значения в элемент массива b(i). Так как тип элементов массива Short, то вводимое значение не должно превышать 32767. Если требуется работать с большими по значению целыми числами, нужно выбрать тип Integer или Long.

20. Перейти из режима отладки в режим конструктора. Для этого нажать кнопку (End) и в секции FormOtl Declarations изменить тип элементов массива b(10) Short на Long. Запустить программу и повторить ввод больших чисел. Затем проверить работу процедур нахождение суммы чисел и среднего арифметического четных чисел. В случае возникновения ошибки OverflowException (переполнение), изменить тип переменной, при работе с которой произошло переполнение.

21. Ввести числа 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 (кнопка Ввод чисел). Найти среднее арифметическое (кнопка Ср.арифм. четных чисел). При попытки расчёта среднего арифметического, программа выдаст строку: «Среднее арифметическое четных чисел NaN». Чтобы определить причину возникновения ошибки следует просмотреть значения всех переменных процедуры. Для этого поставим точку останова на строке sa = sum / k. После остановки программы на этой строке посмотрим значения переменных sum и k, они оказались равными нулю. Значит, ошибка в расчёте среднего арифметического возникла из-за деления на нуль. Можно воспользоваться любым из рассмотренных выше способов просмотра значения переменной, однако мы сделает это новым способом – нажать кнопку (Locals Window). В окне Locals отображаются все локальные переменные и их текущее значение. Использовать возможности отладчика, и посмотреть, почему переменные sum и k остаются равными нулю. Для этого:

- установить точку останова на строке sum = 0;

- выполнить трассировку процедуры, наблюдая за выделением в строках и значением переменных в окне Locals. При выполнении строки с оператором If строки с операторами sum = sum + b(i) и
k = k + 1 пропускаются, что означает, что они не выполняются, поэтому значения переменных sum и k остаются равными 0.

- перейти из режима отладки в режим конструктора. Для этого нажать кнопку (End).

В данном случае ошибка в расчёте возникла при делении нуля на нуль, и произошло это в том случае, когда были введены одни нечётные числа. Если бы результирующая переменная sa имела бы тип не Single, а какой-нибудь целочисленный тип данных, то произошло бы переполнение. Следует предусмотреть в алгоритме процедуры обработку ошибок выполнения.

Так как одни и те же ошибки выполнения могут возникать при выполнении разных процедур модуля, то следует разработать процедуру – обработчик ошибок, общую для всех процедур модуля формы.

22. Добавить процедуру Function в модуль формы. Для этого следует в конец файла с кодом программы, между строками
End Sub и End Class ввести следующий текст.

23. Ввести текст процедуры:

 

Public Function Obr_Err(ByVal Err_Num As Integer) _
As Integer

Dim txt As String

Select Case Err_Num



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 205; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.129.247.196 (0.004 с.)