русс | укр

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

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

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

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


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

Выполнение и отладка программ в TurboC


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


В TurboC компиляция, компоновка и запуск программы выполняется с помощью команды Run меню Run или клавиш Ctrl+F9.

Ошибки и предупреждения при компиляции и компоновке программы выводятся в окно Message. Если при компиляции и компоновке не обнаружено ошибок, в TurboC как открывается внутреннее окно, в котором выполняется программа. Переключение между окном редактора/сообщений и окном выполнения производится в TurboC с помощью клавиш Alt+F5. После окончания работы программы окно выполнения закрывается.

Если в программе обнаружены логические ошибки или ошибки времени выполнения, то можно использовать встроенный в TurboC отладчик.

Самым простым способом отладки является пошаговое выполнение программы. В этом случае выполнение программы производится каждый раз по одному оператору. В TurboC существует два режима пошагового выполнения – into и over. Оба режима ведут себя одинаково, пока в программе не встретится оператор вызова функции. Если включен режим into, то начинается пошаговое выполнение вызванной функции, если же включен режим over, вызов функции выполняется за один шаг.

В TurboC очередной шаг в режиме into выполняется с помощью команды Trace into меню Run, а очередной шаг в режиме over – с помощью команды Step over меню Run. При этом в редакторе подсвечивается строка, которая будет выполняться следующей.

Для пошагового выполнения и в TurboC можно использовать также клавишу F7 (для режима into) и клавишу F8 (для режима over). Прервать пошаговое выполнение программы можно с помощью клавиш Alt+F2. (в TurboC для этого можно использовать также команду Program reset меню Run).

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



Для организации точки прерывания необходимо сначала установить курсор на той строке, где необходимо остановить программу. Затем можно выбрать один из двух вариантов. Наиболее простой вариант – выполнить команду Go to cursor меню Run или нажать клавишу F4. Второй вариант – запомнить точку прерывания с помощью команды Toggle breakpoint в меню Break/watch или нажатия клавиш Ctrl+F8. Удалить запомненную точку прерывания можно с помощью повторного выполнения команды Toggle breakpoint в меню Break/watch или повторного нажатия клавиш Ctrl+F8.

В процессе пошагового выполнения программы можно определить текущие значения тех или переменных или выражений. Для этого после выполнения очередного шага можно вызвать диалоговое окно Evaluator (в TurboC с помощью клавиш Ctrl+F4 или команды меню Debug. Затем в поле Evaluate можно ввести имя переменной, текущее значение которого необходимо узнать. После этого в поле Value диалогового окна будет выведено текущее значение переменной или выражение. В поле New Value можно модифицировать значение переменной, имя которой задано в поле Evaluate. Удалить диалоговое окно с экрана можно с помощью клавиши Esc.

Следить за значениями переменных можно также с помощью команды Add watch, в которой указываются имя или имена переменных, значения которых необходимо отслеживать. Эта команда, а также команда редактирования списка переменных – Edit watch, находится в меню Break/watch.

Удаление переменной из списка выполняется в TurboC с помощью команды Delete watch меню Break/watch.

3.5. Создание и редактирование простых программ в Dev-C++

Создать простую программу, состоящую из одного модуля, в Dev-C++ можно одним из следующих способов:

· с помощью команды Исходный файл подменю команды Создать в меню Файл;

· нажав кнопку Исходный файл ( )на панели инструментов;

· нажав клавиши Ctrl+N.

При этом в области редактора появляется новая вкладка с пустым содержимым – Безымянный1, Безымянный2 и т.д.

Набор и редактирование текста программы в Dev-C++ выполняется так же, как и в приложении Блокнот. Для вырезания, копирования и вставки фрагментов программы можно использовать команды Вырезать, Копировать и Вставить меню Правка, либо клавиши Ctrl+X, Ctrl+C Ctrl+V. Если текст программы был изменен, но изменения не сохранены, перед именем файла в названии вкладки выводятся символы "[*]".

При сохранении вновь созданного файла (с помощью команды Сохранить как меню Файл) рекомендуется задавать имя файла латинскими буквами. При сохранении файла в окне Сохранить файл следует в раскрывающемся списке Тип файла задать тип C source files (*.c).

Повторно сохранить отредактированный файл можно с помощью одной из следующих операций:

· выполнить команды Сохранить меню Файл;

· нажать кнопку Сохранить ( ) на панели инструментов;

· нажать клавиши Ctrl+S.

Открытие файла с программой выполняется одним из следующих способов:

· с помощью команды Открыть проект или файл меню Файл;

· при нажатии кнопки Открыть проект или файл ( ) на панели инструментов;

· при нажатии клавиш Ctrl+O.

Закрыть файл с программой можно:

· с помощью команды Закрыть меню Файл;

· нажатием кнопки Закрыть ( ) на панели инструментов;

· нажатием клавиш Ctrl+F4.

3.6. Выполнение простых программ в Dev-C++

Простую одномодульную программу в Dev-C++ можно сразу откомпилировать, скомпоновать и выполнить одним из следующих способов:

 

· с помощью команды Скомпилировать и выполнить меню Выполнить;

· нажав кнопку Скомпилировать и выполнить ( ) на панели инструментов;

· нажав клавишу F9.

Отдельно компиляция программы выполняется:

· с помощью команды Скомпилировать меню Выполнить;

· при нажатии кнопки Скомпилировать ( ) на панели инструментов;

· при нажатии клавиш Ctrl+F9,

а выполнение программы:

· с помощью команды Выполнить меню Выполнить;

· при нажатии кнопки Выполнить ( ) на панели инструментов;

· при нажатии клавиш Ctrl+F10.

 

Если при компиляции обнаружены ошибки, в окне Компилятор выводятся соответствующие сообщения:

 

Если же ошибок не обнаружено, выводится следующее диалоговое окно:

 

 

Если при компиляции и компоновке не обнаружено ошибок, в Dev-C++ открывается окно выполнения программы как окно приложения MS DOS:

 

 

Следует отметить, что при запуске программы в окне в Windows XP после выполнения оператора return окно выполнения программы автоматически закрывается и часто результат выполнения программы увидеть нельзя.

Чтобы этого не происходило, обычно перед оператором return ставят оператор

getchar();,

который вызывает функцию ввода символа. Эта функция, так же как и функция printf(), находится в разделе stdio.h стандартной библиотеки C. В этом случае окно выполнения приложения MS DOS закрывается при вводе любого символа (или просто нажатия клавиши Enter). Иногда программа уже ожидает ввода символов. В этом случае в программе необходимо два раза повторить вызов функции getchar().

Копирование результатов выполнения программы в другое приложение, например в Блокнот, выполняется с помощью команд Пометить и Копировать или команды Выделить все в подменю команды Изменить системного меню приложения MS DOS.

Следует отметить, что в редакторе Dev-C++ используется кодировка ANSI (Windows-1251), а в окне приложения MS DOS – кодировка OEM. Поэтому буквы кириллицы в строках формата функции printf() или в выводимых значениях строк будут передаваться неправильно. Чтобы этого избежать, следует использовать в строках только латинские буквы. Это не распространяется на комментарии в программе, которые можно задавать либо на английском, либо на русском или украинском языке.

3.7. Отладка программ в Dev-C++

Отсутствие в программе синтаксических ошибок не является гарантией того, что программа будет работать правильно, т. е. выдавать верные результаты. Обычно причиной неправильной работы программы является либо неверный алгоритм, либо неверная реализация правильного алгоритма, либо нарушение правил языка C (например, правил по преобразованию типов переменных).

Чтобы выявить ошибки при работе программы использовать один из следующих способов:

· вставить в «подозрительных» местах программы отладочные операторы printf();

· запустить программу в режиме отладки.

Операторы printf() можно вставить, чтобы проверить выполнение каких-либо фрагментов программы, например, выполнение цикла:

printf("\nLoop begin"); /* Фиксация начала цикла */

for(i=0; i < 10; i++)

{

sum += a[i];

}

printf("\nLoop end"); /* Фиксация окончания цикла */

Кроме того, операторы можно использовать для вывода текущих значений каких-либо переменных, например, изменения переменных i и sum в цикле:

for(i=0; i < 10; i++)

{

sum += a[i];

/* Вывод значений i и sum при выполнении цикла */

printf("\ni=%d sum=%d", i, sum);

}

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

· выполнить команду Отладка в меню Отладка;

· нажать кнопку Отладка ( ) на панели инструментов;

· нажать клавишу F8.

При первом запуске будет выведено сообщение:

Ваш проект не содержит отладочной информации, хотите разрешить отладку и перестроить проект?

Если в процессе отладки были внесены изменения в программу, будет выведено сообщение:

Исходный файл новее исполняемого модуля. Хотите пересобрать исполняемый модуль?

На эти вопросы необходимо ответить Yes и повторно запустить отладку.

Управление выполнением программы в режиме отладки производится с помощью команд меню Отладка, либо аналогичных им кнопок на панели инструментов. Однако более удобным является использование вкладки Отладка в нижней части окна Dev-C++. В этой вкладке находятся кнопки всех необходимых для отладки инструментов:

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

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

Чтобы запустить программу и остановить выполнение в точке прерывания, надо установить курсор в первой точке прерывания и нажать кнопку Выполнить до курсора ( ). При этом цвет выделения первой точки прерывания измениться с красного на синий:

Чтобы остановить выполнение программы в следующей точке прерывания, надо повторно нажать кнопку Выполнить до курсора ( ). Кнопка Продолжить выполнение ( ) выполняет программу либо до следующей точки прерывания, либо (после последней точки прерывания) до конца. Для прекращения выполнения программы в режиме отладки надо нажать кнопку Остановить выполнение ( ).

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

При использовании кнопки Следующий шаг ( ) для пошагового выполнения вызов функций пользователя в операторе рассматривается как один шаг. Чтобы перейти к пошаговому выполнению операторов вызываемой функции (в данном случае функции calcint()) надо использовать кнопку Шаг внутрь ( ):

Чтобы проверить правильность работы программы, часто требуется отслеживать изменение значения переменных при выполнении программы в режиме отладки. В качестве переменной могут выступать простые переменные, а также массивы, структуры и объединения (в этом случае будут отслеживаться все элементы массивов, структур или объединений). Можно также отслеживать отдельные элементы массивов, структур и объединений. Для того, чтобы отследить значения какой-либо переменной или ее элемента при выполнении программы надо (после достижения точки прерывания или выполнения очередного шага программы) нажать на кнопку Добавить в наблюдаемые ( ) и ввести имя переменной (или имя элемента переменной, например a[0]) в диалоговом окне:

После этого имена и текущие значения переменной будут выводиться в левом окне IDE (как это показано на рисунке для второй точки прерывания):

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

Чтобы убрать переменную из списка наблюдаемых, надо выделить строку для этой переменной в левом окне IDE и нажать на кнопку Удалить объект наблюдения ( ).

Для отладки программы, содержащей несколько функций, можно использовать обратную трассировку. Это средство позволяет проследить (в обратном порядке) какие функции вызвали выполняемую в данный момент функцию. Для каждой функции выводится:

· имя функции;

· значения аргументов, с которыми была вызвана функция (если функция содержит параметры);

· имя файла, содержащего функцию;

· номер текущей выполняемой строки в программе (для выполняемой функции) или номер строки, содержащей вызов функции (для остальных функций).

Так, в приведенном выше примере функция main() вызывает функцию calcint(), которая, в свою очередь, вызывает либо функцию addint(), либо функцию substractint(). Если при пошаговом выполнении программы или достижении очередной точки прерывания текущий выполняемый оператор находится в функции addint():

то во вкладке Отслеживать вкладки Отладка будет выведена обратная трассировка вызовов для функции addint():

 

3.8. Работа с проектами в Dev-C++

Большие и сложные программы обычно разбиваются на программные модули. В C программные модули – это функции. В ходе выполнения программы одни функции вызывают другие, и, после выполнения функции, управление возвращается в вызывающую функцию. Выполнение программы начинается с выполнения функции с именем main. Функции небольшой программы можно собрать в одном файле, однако если программа большая, лучше разбить ее на несколько файлов, в каждом из которых содержатся одна или несколько функций. В этом случае при модификации программы достаточно перекомпилировать только те файлы, в которых произведены изменения, а затем повторно выполнить компоновку и запуск программы. Этот процесс можно выполнять вручную, однако, многие IDE (не только для языка C) позволяют автоматизировать процесс создания и модификации больших программ с помощью проектов.

Проект – это набор файлов, содержащих программные модули, которые рассматриваются как одна программа.

Создать новый проект можно либо с помощью команды Проект подменю команды Создать меню Файл, либо нажав кнопку Проект ( ) на панели инструментов.

После этого открывается диалоговое окно нового проекта:

 

Во вкладке Basic этого окна необходимо выбрать вид проекта: приложение Windows (Windows Application), консольное приложение (Console Application), статическая библиотека (Static Library), библиотека динамических связей (DLL) для Windows или пустой проект (Empty Project). Для создания многомодульных программ с выводом в окно MS DOS лучше выбрать вид Empty Project. Затем в области Параметры проекта задается имя проекта (латинскими буквами) и тип проекта (C-проект). После нажатия кнопки OK выбирается папка, в которой будет сохранен файл с данными о проекте (с расширением .dev).

После этого в левом окне IDE во вкладке Проект появляется имя проекта. С помощью контекстного меню для проекта можно выполнить следующие операции:

· создать новый файл (команда Создать файл);

· добавить существующий файл программного модуля к проекту (команда Добавить к проекту);

· удалить файл из проекта – файл при этом не уничтожается (команда Удалить из проекта);

· добавить папку в проект (команда Добавить папку);

· настроить параметры проекта (команда Параметры проекта).

В проекте должен быть хотя бы один файл. После создания или добавления всех модулей проекта:

можно запускать проект на компиляцию и выполнение, используя те же команды и кнопки, что и для одномодульных программ. При этом будут повторно компилироваться только те файлы проекта, в которых проведены изменения. Загрузочный файл для проекта имеет то же имя, что и имя проекта, но с расширением .exe.

Примечания:

1. Имя файла проекта должно содержать только латинские буквы и цифры.

2. Файл проекта должен быть сохранен в той же папке, что и файлы проекта.

3. Абсолютный путь к файлу проекта не должен содержать пробелов.



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


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


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

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

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


 


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

 
 

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

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