Выбрать главу

        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