|
Программирование >> Динамические структуры данных
Выполнение программы до точки прерывания Программа запускается в отладочном режиме с помощью команды Build ► Start Debug ► Go (или нажатием клавиши F5). В результате код программы выполняется до строки, на которой установлена точка прерывания. Затем программа останавливается и отображает в окне Editor ту часть кода, где находится точка прерывания, причем желтая стрелка на левом поле указывает на строку, которая будет выполняться на следующем шаге отладки. Продолжим демонстрацию описываемых средств на примере программы Buggy: □ Установите точку прерывания перед оператором for. □ Запустите программу в отладочном режиме, нажав клавишу F5. Обратите внимание - в Visual С++ меню Build заменилось на меню Debug. Заглянем в него из любопытства (рис. П1.7). Buggy - lrosoft \/ЫiЧ С+ + Ibre]ftugdqd: gtjRfeedl insert Project Debug ТсюЬ.:Wndow;--te II (Globels) jrjj(Allglobelmen int e[N] - {1, 2, 3. * float sum, average; int i; for(i-l; 1<Ы; i++) sum +- a[i]; average - sum / Ы; CO -e cte Restart Cgmexr jmeinO Nome lvalue а[Ы] average -1.0737< 5 StepOuc RtxitoCyrsor Exceptrons. Threads.. ~ -Modules ShowNe>t QuckWatch Ctrl+Shft+FS Shfft+Fli t+FlO Value AltNUfl: -1.07374e+008 jEK Auto/LocsX this/ Jfv. -Juiil Debug/Find !n№s ~~ esu $ jj iliolU V PL**m s ttift program:; Рис. П1.7. Меню Debug в отладочном режиме Среди различных команд этого меню особый интерес представляют команды Step Into (Fll), Step Over (FlO), Step Out (Shift+Fll), Run To Cursor (Ctrl+FlO) и Stop Debugging (Shift+F5). Выбор последней команды (или нажатие комбинации клавиш Shift+F5) вызывает завершение работы с отладчиком. Пошаговое выполнение программы Нажимая клавишу F10, можно выполнять один оператор программы за другим. Предположим, что при пошаговом выполнении программы вы дошли до строки, в которой вызывается некоторая функция fund О. Если вы хотите пройти через код вызываемой функции, то надо нажать клавишу F11. Если же внутренняя работа функции вас не интересует, а интересен только результат ее выполнения, то надо нажать клавишу F10. Допустим, что вы вошли в код функции funclO, нажав клавишу F11, но через несколько строк решили выйти из него, т. е. продолжить отладку после возврата из функции. В этом случае надо нажать клавиши Shift+Fll. Существует и другая возможность пропустить пошаговое выполнение некоторого куска программы: установите текстовый курсор в нужное место программы и нажмите клавиши Ctrl+FlO. Продолжим отладку программы Buggy: □ Нажмите клавишу F10. Указатель следующей выполняемой команды переместится на оператор sum += a[i]: Проверка значений переменных во время выполнения программы Чтобы узнать значение переменной sum, в которой будет накапливаться сумма элементов массива а, задержите над ней указатель мыши. Рядом с именем переменной на экране появляется подсказка со значением этой переменной: sum = -1.07374е+008 (или с другим произвольным значением). Ага!!! Ведь еще не было никакого суммирования и, следовательно, переменная sum, по идее, должна быть равна нулю. Вот где собака зарыта! Мы забыли обнулить переменную sum до входа в цикл. □ Нажмите комбинацию клавиш Shift+F5, чтобы выйти из отладчика и исправить найденную ошибку. Найдите строку с объявлением float sum. average: и добавьте в нее инициализацию переменной sum: float sum 0. average: □ Откомпилируйте заново проект - кнопка Build (F7). □ Запустите на выполнение - кнопка Execute Program (Ctrl+F5). Вы получите новый результат: average = 2.8 Это как бы теплее, но все равно еще неправильно. Нажмите любую клавишу для завершения работы приложения. Необходимо продолжить отладку: □ Установите точку прерывания перед оператором for. □ Запустите программу в отладочном режиме, нажав клавишу F5. □ Нажмите клавишу F10. Указатель следующей выполняемой команды переместится на оператор sum += a[i]: □ Нажмите клавишу FIG. Указатель следующей выполняемой команды переместится на оператор for (i = 1: i < N: i++) □ Задержите теперь над переменной sum указатель мыши. Рядом с именем переменной на экране появится подсказка со значением этой переменной sum = 2. Стоп!!! Позади 1-я итерация цикла, и в переменной sum должно находиться значение первого элемента массива а, т. е. число 1. А мы имеем число 2, то есть значение второго элемента массива а. Пришло время вспомнить, что в языке С++ нумерация элементов массива начинается с 01 Поэтому ошибка находится в заголовке цикла: for (i = 1: i < N: i++) и ее нужно немедленно исправить. Повторите действия, направленные на исправление ошибки: □ выйти Из отладчика, □ исправить текст программы в операторе for: for (i - 0: i < N: i++) □ откомпилировать, □ запустить на выполнение. Если в процессе исправления вы не внесли новых ошибок, то должен получиться результат: average - 3.0. Итак, все ОК! - программа работает правильно. В заключение отметим, что отладчик предоставляет и другие возможности для наблюдения за значениями переменных во время выполнения программы. Окна Auto и Watchi Помимо экранной подсказки, переменная sum со своим значением отображается в окне Auto, расположенном в левом нижнем углу экрана (см. рис. П1.7). В этом окне приведены значения последних переменных, с которыми работал Visual С++. Кроме этого, в окне Watchi, которое находится в правом нижнем углу, можно задать имя любой переменной, за значениями которой вы хотите понаблюдать. Более подробно о работе с этими окнами можно почитать в справочной системе через меню Help главного окна Visual С++. То, что она написана на английском языке, ни в коей мере не должно вас останавливать! ПРИЛОЖЕНИЕ 2 Интегрированная среда Borland С++3.1 Установка интегрированной среды Borland С++ 3.1 с дистрибутива достаточно проста, но вряд ли этот дистрибутив доступен кому-то из читателей <за давностию лет . К счастью, в то золотое время для установки у себя на машине программного продукта часто достаточно было найти уже установленную работающую версию, заархивировать ее, скопировать на дискеты, переписать к себе на компьютер и раз-архивировать. Предполагаем, что читатель справится с этими действиями самостоятельно или с помощью коллег. Есть еще один вариант: подключить к вашему компьютеру винчестер, одолженный у друзей, на котором уже установлен ВС, и скопировать необходимые каталоги на ваш винчестер. Запуск IDE Для запуска IDE Borland С++ 3.1 надо открыть каталог (папку), в котором расположен файл bc.exe (обычно это ...\BORLANDC\BIN), затем запустить этот файл на исполнение либо щелчком левой кнопки мыши, либо нажатием клавиши Enter в оболочке типа Far или Norton Сошшап(1ег. После запуска появляется рабочий экран ВС, содержащий четыре основных части: □ строка меню, □ окно редактирования, □ окно сообщений, □ строка состояния. Строка меню предоставляет доступ к командам интегрированной среды. Для активизации строки меню нужно нажать клавишу F10, после чего один из элементов меню выделяется подсвеченным курсором. Перемещение курсора для выбора нуж- ного элемента меню осуществляется с помощью клавищ со стрелками. После выбора и нажатия клавиши Enter появляется либо выпадающее меню со списком команд, либо окно диалога, соответствующее выбранному элементу. Окно редактирования предназначено для ввода и редактирования текста в одном из исходных (source) файлов программы. Система ВС позволяет одновременно держать в памяти несколько открытых окон, при этом активным является только одно окно, на которое установлен так называемый фокус ввода. Каждое окно имеет рамку, в верхней части которой расположены заголовок окна (имя файла, возможно с указанием пути к нему) и номер окна (окна нумеруются с 1 по 9, в эту нумерацию включается также окно сообщений (Message). Переключение фокуса ввода с одного окна на другое осуществляется нажатием клавиши F6. Приведем краткое описание назначения каждого элемента меню: □ ? - системное меню; □ File - загрузка и создание файлов, сохранение внесенных в программу изменений, выход из системы; □ Edit - реализация различных режимов редактирования текста в активном окне; □ Search - поиск фрагментов текста, контекстная замена и другие операции; □ Run - компиляция, компоновка и запуск программы на выполнение*; □ Compile - компиляция программы; □ Debug - управление возможностями отладчика; □ Project - организация проектов (многофайловых программ); □ Options - установка параметров компиляции, компоновки и других настроек интегрированной среды; □ Window - управление окнами; Q Help - обращение к системе оперативной подсказки. Работа с меню Опишем некоторые команды меню, достаточные для начала работы с интегрированной средой. Более полную информацию вы можете получить через меню Help. Меню File После выбора элемента меню File и нажатия клавиши Enter на экране появтшется выпадающее меню, содержащее группу команд. Рассмотрим основные команды из этой группы. □ Команда File ► New открывает новое окно редактирования со стандартным именем NONAMExx.CPP (где вместо букв хх используется целое число в диапазоне Команда Run из меню Run относится либо к активному окну - в случае однофайловой про1раммы. либо ко всему проекту в целом - в случае многофайловых npoq)aMM, имеющих в своем составе проектный файл. То же - для команды Compile из меню Compile. ОТ 00 др 99). Это имя считается временным (на время ввода нового текста). Если вы попытаетесь сохранить набранный текст с помощью команды File ► Save, то система ВС вызовет диалоговое окно Save File As , в котором пользователю предлагается ввести нужное имя файла. Если же на это предложение вы бездумно нажмете Enter (не изменяя имя файла), то файл с именем вида NONAME00.CPP будет сохранен в каталоге B0RLANDC\BIN. Указанный каталог вообще-то предназначен для хранения исполняемых файлов и динамически подключаемых библиотек системы ВС, поэтому засорение его какими-либо не относящимися к делу файлами крайне нежелательно. Отсюда первая практическая рекомендация начинающему программисту: СОВЕТ-- Заведите специальную папку (каталог) для размещения ваших программ (проектов), создаваемых в среде ВС, например, D:\BC WGRK, а уже внутри этой папки вы будете создавать отдельные каталоги для каждой новой программы (проекта). О создании такого каталога надо позаботиться еще до начала работы над новой программой. В него вы будете помещать файлы с исходными текстами программы. После завершения ввода текста в новый файл вызовите команду File ► SaveAs. □ Команда File ► SaveAs вызывает окно диалога Save File As . В этом окне выделим следующие элементы: текстовое поле Save File As, предназначенное для ввода имени файла; поле списка Files, содержащий список файлов для текущего каталога; в этом поле возможна навигация по списку файлов и каталогов с помощью клавиш со стрелками и клавиши Enter - аналогично тому, как это делается в оболочках типа Far или Norton Commander, причем строка с символами. Д обозначает переход в каталог верхнего уровня (родительский каталог); строка состояния (внизу диалогового окна), в которой отображается полный путь к текущему каталогу и текущее имя файла; три кнопки: ОК, Cancel и Help. Заметим, что переход от одного из перечисленных элементов диалогового окна к другому осуществляется нажатием клавиши Tab. После того как вы установили нужный каталог путем навигации в поле Files, перейдите, используя клавишу Tab, в текстовое поле Save File As и введите требуемое имя файла (не забывайте контролировать это по строке состояния). Осталось перейти на кнопку ОК и нажать клавишу Enter. □ Команда File ► Save (F2)* в зависимости от состояния файла выполняется одним из двух способов: либо сохраняет на диске текущее состояние файла (после тех изменений, которые вы в нем сделали) - если это файл не первой свежести , то есть вы ранее с ним работали; В скобках после обозначения команды меню указывается так называемая горячая клавиша (или сочетание клавиш), нажатие которой эквивалентно данной команде.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |