system( "PAUSE" ) ; return 0 ;
}
Теперь вывод программы будет правильным. Протестировав эту программу с другими наборами чисел, я убедился, что она работает без ошибок.
Введите следующее число: 1
Введите следующее число: 2
Введите следующее число: 3
Введите следующее число: -1
Среднее равно: 2
Press any key to continue...
_________________
133 стр. Глава 10. Отладка программ на С++
►Использование отладчика...134
В небольших программах метод отладочной печати работает довольно неплохо. Добавление отладочных команд — достаточно простой и не влияющий на время компиляции способ нахождения ошибок, с помощью которого можно быстро отыскать ошибку, если программа невелика.
В больших программах зачастую программист даже не знает, куда нужно добавлять отладочные команды. Работа по добавлению отладочных команд, перезапуску программы, повторному добавлению отладочных команд и т.д. становится утомительной. Кроме того, после каждого переписывания программу нужно собирать заново. Не забывайте, что в большой программе один только процесс сборки может занять немало времени.
В конце концов, с помощью этого метода почти невозможно найти ошибку, связанную с указателями. Указатель, выведенный на экран в шестнадцатеричном виде, малоинформативен, и, пока программист поймёт, что нужно сделать для исправления ошибки, программа успеет морально устареть.
Второй, более изощрённый метод — использование отдельной утилиты, которая называется отладчиком. С помощью отладчика можно избежать трудностей, возникающих при использовании методики отладочной печати ( однако, если вы хотите использовать отладчик, вам придётся научиться с ним работать ).
Что такое отладчик...134
Отладчик — это утилита, встроенная, например, в Dev-C++ или Microsoft Visual Studio .NET ( в этих приложениях программы отладчиков отличаются, однако работают они по одному принципу ).
Программист управляет отладчиком с помощью команд так же, как, например, при редактировании или компиляции программы. Команды отладчика можно выполнять с помощью контекстных меню или горячих клавиш.
Отладчик позволяет программисту контролировать работу программы по ходу её выполнения. С помощью отладчика можно выполнять программу в пошаговом режиме, останавливать её в любой точке и просматривать содержимое любой переменной. Чтобы оценить удобство отладчика, его нужно увидеть в действии.
Работа с отладчиком...134
В отличие от стандартизированного языка С++, набор команд, поддерживаемый отладчиком, варьируется от производителя к производителю. К счастью, большинство отладчиков поддерживают некоторый базовый набор команд. Необходимые нам команды есть как в Dev-С++, так и в Microsoft Visual С++ .NET; в них также имеется возможность вызова этих команд с помощью меню и функциональных клавиш. В табл. 10.1 приведён список основных команд и клавиш их вызова.
Таблица 10.1. Команды отладчиков Microsoft Visual С++ .NET и Dev-C++
_________________
Команда — Visual С++ — GNU С++ ( rhide )
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Отладка — <F5> — <F8>
Шаг внутрь ( Step In ) — <F11> — <Shift+F7>
Следующий шаг ( Step Over ) — <F10> — <F7>
Продолжить выполнения — <F5> — <Ctrl+F7>
Просмотр переменной ( View Variable ) — Только в меню — Только в меню
Установка точки останова ( Set Breakpoint )* — <Ctrl+B> — <Ctrl+F5>
Добавить в наблюдаемые ( Add watch ) — Только в меню — <F4>
Перезагрузка программы ( Program Reset ) — <Shift+F5> — <Ctrl+Alt+F2>
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
__________
*Щелчок слева от строки исходного текста С++ в окне редактора представляет собой альтернативный путь установки точек останова.
_________________
134 стр. Часть 2. Становимся функциональными программистами
Запуск тестовой программы...135