Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Отладка и внесение изменений в программу




На этом этапе проверяется правильность работы программы. Ошибки, возникающие в процессе создания программы, могут быть вызваны и неадекватным моделированием, и некорректностью метода или алгоритма, и, наконец, неправильным применением самих средств VB.

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

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

· Как определить, что программа имеет смысловую ошибку? В лучшем случае программа не работает, то есть её работа прерывается в некоторый момент, и система выдаёт какое-нибудь сообщение типа «исчезновение порядка числа с плавающей точкой». В худшем случае программа успешно завершает свою работу и выдаёт результаты, отвечающие интуитивным представлениям о характере решения задачи.

· Как обнаружить скрытые ошибки? Самый популярный метод – тестирование программы. Следует взять такие исходные данные, правильный результат расчёта для которых известен заранее, и выполнить программу с этими данными. Если полученный результат совпадает с известным результатом, то, как говорят, «тест прошёл успешно». Неприятность заключается в том, что, это совсем не означает, что программа не содержит ошибок.

· Запустить программу, приведенную на рис. 4.2.5-7, на выполнение. Список полученных ошибок приведен на
рис. 4.2.5-9.

 

 

Рис.4.2.5.9. Список ошибок

 

Так как в программе запрещено использовать неявные преобразования (оператор Option Strict имеет положение On), то преобразования из String в Single и из Double в Single невозможны.

Это было ясно и без выполнения программного кода, поскольку технология IntelliSense не только указывает на ошибку в преобразовании (красный прямоугольник на ошибочной строке), но и помогает исправить ошибку (рис. 4.2.5-10).

 

 

 

Рис. 4.2.5-10. Иллюстрация использования технологии IntelliSense

 

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

VB считает содержимое текстового поля текстом (String), а не числом (Single), даже если в текстовое поле вводятся цифры. Поэтому для присваивания числовым переменным A, B и C значений, введенных в текстовые поля объектов TextBox1, TextBox2 и TextBox3, необходимо предварительно осуществить преобразование данных из типа String в тип Single. За такое преобразование отвечает функция CSng().

Аналогично при выводе вычисленных числовых значений периметра и площади в текстовые поля TextBox4 и TextBox5 числовые значения предварительно преобразуются в текст (String) с помощью функции CStr().

Последняя пятая ошибка – в выражении стоит лишняя скобка.

После устранения ошибок (рис. 4.2.5-11) необходимо запустить программу на выполнение и ввести значения сторон треугольника, как показано на рис. 4.2.5-12.

 

Option Strict On Option Explicit On Imports System.Math Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim A, B, C As Single Dim P, Pp, S As Single 'Присваивание переменной В значения поля TextBox2 B = CSng(TextBox4.2.Text) 'Присваивание переменной А значения поля TextBox1 A = CSng((TextBox1.Text)) 'Присваивание переменной С значения поля TextBox3 C = CSng((TextBox3.Text)) 'Вычисление периметра и присваивание значения Р P = (A + B + C) 'Вычисление полупериметра и присваивание значения Рр Pp = P / 2 'Вычисление площади и присваивание значения переменной S S = CSng((Sqrt(Pp * (Pp - A) * (Pp - B) * (Pp - C)))) 'Вывод значения полупериметра в текстовое поле TextBox4 TextBox4.Text = CStr(P) 'Вывод значения площади в текстовое поле TextBox5. TextBox5.Text = CStr(S) End Sub Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button4.2.Click End End Sub End Class
 

 

Рис.4.2.5-11 Усовершенствованный программный код проекта

 

· Далее необходимо проанализировать результаты вычислений. Очевидно, что при тех данных, которые были введены, периметр треугольника должен быть равен 12, а площадь – 6. Отсутствие сообщений компьютера о синтаксических ошибках есть необходимое, но недостаточное условие правильности программы.

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

 

 

 

Рис.4.2.5-12. Результат выполнения проекта с исходными данными:

А=3, В=4, С=5

 

 

Рис.4.2.5-13 Результат выполнения проекта с исходнымиданными: А=10, В=2, С=1

 

Ошибка произошла в связи с тем, что были введены данные, при которых треугольник не может существовать: подкоренное выражение имеет отрицательное значение. Обратите внимание, что все программы должны проверять вводимые данные на корректность. Проверить работу кнопки ЗАВЕРШИТЬ. Щелчок по ней должен привести к завершению программы. Сохраните изменения в проекте.

 





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


Дата добавления: 2016-11-18; Мы поможем в написании ваших работ!; просмотров: 528 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Два самых важных дня в твоей жизни: день, когда ты появился на свет, и день, когда понял, зачем. © Марк Твен
==> читать все изречения...

2218 - | 2051 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.