русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Пошаговая отладка


Дата добавления: 2015-07-09; просмотров: 586; Нарушение авторских прав


Выявить допущенную ошибку можно во встроенном отладчике C++Builder. С точками прерывания мы уже знакомы. С их помощью мы проверяли работу валютного калькулятора. Теперь попробуем проанализировать, как реально выполняется игровая программа.

Перезапустите программу, повторите все вышеописанные действия до момента, когда в копилке будет 6 очков, а на кубике выпадет пятерка. Теперь перейдите в редактор C++Builder и найдите там метод NextltemClickQ, который вызывается при щелчке на кнопке Передать очередь хода. Поставьте с помощью клавиши F5 точку остановки на первый оператор и вернитесь к запущенному приложению. Теперь при попытке передать ход компьютеру работа программы прервется, и зеленая стрелка укажет, какой оператор должен выполняться на следующем шагу (см. рис. 39). Можно посмотреть значения переменных Referee.Human. Scores и Referee. Human. CurrentScores, наведя на них указатель мыши — получится, соответственно, 6 и 5.

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

Пошаговое выполнение очень удобно тем, что позволяет взглянуть на работу приложения изнутри, в динамике, непрерывно контролируя изменения любых переменных. Выполнить очередную строку, помеченную стрелкой, можно, нажав клавишу F8. Следующая строка, которая будет выполнена, выделится в редакторе синим цветом.

Если теперь проверить содержимое переменной Referee.Human.Scores, то выяснится, что в ней записано число 5 (хотя планировалось 11), которое методом Showlnfo() и будет выведено на экран.Во время нахождения в отладчике и выполнения программы по шагам переключиться на запущенное приложение нельзя, так какого выполнение приостановлено. Продолжить его работу можно только нажатием клавиши F9.



Наверное, вы уже поняли причину ошибки. Дело в том, что значение переменной Referee. Human. CurrentScores не прибавлялось к переменной Referee.Human. Scores. Происходила просто перезапись старого значения. Для правильной реализации логики работы надо операцию = заменить на операцию +=:

Referee.Human.Scores += Referee.Human.CurrentScores;

Видите, как сильно может влиять на логику работы всего один пропущенный символ? А подобные опечатки не обнаружит никакой компилятор.

Теперь отлаживаемую программу надо завершить, нажав комбинацию Ctrl+F2, затем убрать точку остановки, перекомпилировать текст и запустить приложение заново. Проверьте его работу — в нужный момент в накопленную человеком сумму запишется число 11. Так и должно быть. По клавише F8 выполняются сразу всё операторы в очередной строке. По клавише F7 происходит «вход внутрь» в очередной метод, при условий, что он, конечно, в данной строке имеется. Например, если должна выполняться строка Referee. ComputerMove();

то при нажатии на клавишу F7 отладчик перейдет к выполнению операторов метода ComputerMove(). По окончании выполнения этого метода отладчик вновь вернется обратно, в метод NextItemClick().



<== предыдущая лекция | следующая лекция ==>
Проверяем, все ли в порядке | Случайная генерация


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.245 сек.