Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Компиляция, редактирование связей, запуск программы на выполнение.

Поиск

Borland C++ включает богатейшие библиотеки функций для управлениями файлами, выполнения ввода-вывода и многих других действий. Прототипы (заголовки функций с описанием типов формальных параметров и типа возвращаемого функцией значения), символические константы и другие макро, связанные с библиотечными функциями, объединяют в заголовочные файлы, которые по традиции имеют расширение.h. Необходимые для компиляции файлы включаются в текст программы при помощи препроцессорной директивы #include. При запуске на компиляцию текст программы сначала обрабатывается препроцессором, который обрабатывает только “свои” директивы (в частности, вместо директивы “#include имя_файла” встраивается из библиотеки include файл, имя которого задано в директиве), а затем текст программы передается непосредственно на обработку компилятору.

Компиляция исходного текста программы инициируется либо через команду Compile\Compile to OBJ, либо нажатием “горячих” клавиш Alt+F9. Команда Make EXE file также запускает программу на компиляцию и при отсутствии синтаксических ошибок автоматически запускает компоновщик для получения.ЕХЕ-файла. Еще одна возможность для запуска программы на компиляцию – команда Run\Run (Ctrl+F9). После успешной компиляции и компоновки запускается полученный.ЕХЕ-файл на выполнение.

Все сообщения и предупреждения IDE помещает в окно по имени Message. Это окно активно после завершения компиляции. Если в программе обнаружены ошибки, включаются средства трассировки ошибок, которые связывают строки текста программы в окне редактора со строками окна Message. Перемещение высвечивания клавишами со стрелками в окне Message синхронно сопровождается высвечиванием соответствующих ошибочных строк в тексте программы. При нажатии клавиши Enter активизируется окно редактора и курсор устанавливается на ошибочную строку. Нажатие клавиши F6 (переход или активизация следующего окна) вновь делает активным окно Message.

Многофайловая компиляция

При модульном программировании не обойтись без многофайловой компиляции. При работе с большими программами намного удобнее размещать части программы не в одном, а в нескольких файлах. Каждый файл должен включать целиком одну или несколько функций. Имена этих файлов записываются в специальный файл – файл проекта, из которого IDE узнает, какие из текстовых файлов следует объединять в исполняемый (.ЕХЕ) файл.

Все необходимые6 для работы с файлами проектов команды включены в меню Project.

Для организации файла проекта необходимо открыть файл проекта. Для этого выполняется команды Project\Open Project… IDE активизирует специальное окно Project в нижней части экрана и открывает окно диалога, позволяющее загрузить нужный файл проекта или создать новый с заданным именем.

Если создан новый файл проекта, окно Project первоначально будет пустым. Включение файлов в проект и их удаление выполняются либо через команды Project\Add item… и Project\Delete item, либо нажатием клавиш Ins и Del, в случае если курсор размещен в окне Project. При добавлении файлов в проект открывается окно диалога, позволяющее выбрать нужный файл.

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

При работе со средой Borland C++ рекомендуется использовать проект, даже если программа состоит из одного файла.

Отладка программы.

В процессе отладки вы можете:

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

1. Проверять значение и местоположение (адрес) некоторой переменной в ходе выполнения программы»

2. Просмотреть последовательность вызова функций в программе.

Существует два режима пошагового выполнения программы:

1. Трассировка с заходом в тело функции, при встрече ее вызова в тексте программы (F7);

2. Пошаговое выполнение функции (как обычной команды без захода в тело функции), при встрече ее вызова в тексте программы (F8).

Команда Run\Trace into (F7) запускает программу на отладку. Интегрированная среда высвечивает строку программы, содержащую точку входа main(). После этого нажатием клавиши F7 вызывается выполнение кода, соответствующего одной строке текста программы. Если в строке записана ссылка на функцию, начинается трассировка по тексту тела функции. При необходимости выполнения строки функции за один шаг, используется клавиша F8 (команда Run\Step over).

Для ускорения процесса отладки используется команда Run\Go to cursor (F4). Программа выполняется до строки, в которой в данный момент располагается текстовый курсор. Можно также задать режим выполнения до точки останова (через опцию подменю “Debug\Toggle breakpoint” или одновременным нажатием клавиш Ctrl и F8, в дальнейшем будем использовать запись “Ctrl+F4”). При этом строка в точке останова подсвечивается обычно красным фоном. Снять установку точки останова можно повторным выполнением описанной команды, размещая курсор на подсвеченной строке останова.

Для наблюдения за изменением значений переменных в ходе выполнения программы используется подменю Debug\Watches\Add watch или “Ctrl+F7”. В появившемся окне Add Watch (вызов окна Add Watch можно также получить, если нажать клавишу Ins, предварительно сделав активным окно Watch) необходимо ввести имя переменной, значение которой необходимо просмотреть и нажать Ввод.

Указанная переменная размещается в окне Watch, создаваемом в нижней части экрана, и, в процессе отладки, через это окно можно наблюдать за изменением размещенных в нем переменных. Удалить переменную из окна Watch можно при помощи клавиши “Del”, предварительно выделив ее подсветкой.

Используя опцию меню Evaluate\modify или “Ctrl+F4”, можно изменить значение переменной в процессе выполнения отладки, чтобы протестировать алгоритм с новым заданным значением. Окно этой опции “Evaluate and Modify” можно использовать и в качестве калькулятора, если записать выражения с переменными в строке “Expression” и нажать клавишу “Evaluate” для получения результата в строке Result.

Использование глобальных переменных, объявленных вне файла.

Ниже приведена простая программа на языке С, состоящая из двух файлов (модулей) – first.c (главный файл) и second.c:

// начало первого файла first.c

#include <stdio.h> // подключение библиотеки stdio.h

extern int a,b; // объявление переменных, объявленных в другом файле

// (в файле second.c)

void main(void) // основная функция main

{

printf(“a=%d b=%d\n”,a,b); // вывод значений переменных a,b

}

Во втором файле second.c должно присутствовать объявление и инициализация переменных, например, в виде:

int a=2,b=5; // объявление переменных a,b

Две глобальные переменные a и b типа int описаны вне функции в файле second.c. Следовательно, их имена являются глобальными в файле, т.е. они видимы для загрузчика языка С. Поскольку в файле first.c присутствует описание extern для этих переменных типа int, то компилятор разрешает использовать их в функциях first.c, например в main(). Объявление extern int a,b можно поместить как внутри, так и вне функций (например, функции main()). При объявлении вне функции переменные a и b будут видимы во всем модуле first.c. Если оператор extern int a,b помещен внутри функции main(), то переменные будут видимы только внутри этой функции.

Если перед описанием int a=2,b=5; в файле second.c поместить обозначение класса памяти static, то указанные переменные скрываются от загрузчика. Такие переменные известны только в пределах файла, в котором они объявлены. Хотя программа в файле first.c будет успешно оттранслирована (компилятор учтет описание extern), загрузчик не сможет уточнить адреса для внешних ссылок и выдаст соответствующее сообщение об ошибке.


ЛИТЕРАТУРА

1. Березин Б.И., Березин С.Б. Начальный курс С и С++. –М: Диалог-МРТИ,1999.-288с.

2. Керниган Б., Ритчи Д. Язык программирования Си.-М.: Финансы и статистика.,1992.-271с.

3. Касаткин А.И., Вольвачев А.Н. Профессиональное программирование на языке Си: Oт Turbo –C к Borland C++: Справочное пособие –Мн.:Вышэйшая школа.,1992.-240с.

4. Страуструп Б. Язык программирования С++. 2-е изд.:В 2т. Киев: Диа Софт,1993.

5. Фьюэр А. Задачи по языку СИ. М.:Финансы и статистика.1985.

6. Хэнкок Л.,Кригер М. Введение в программирование на языке СИ. М.:Радио и связь.1986.

7. Берри В.,Микинз Б. Язык СИ: введение для программистов. М.:Финансы и статистика.1988.

8. Уэйт М.,Прама С.,Мартин Д. Язык СИ. Руководство для начинающих. М.:Мир.1988.

9. Больски М.Н. Язык программирования СИ. Справочник. М.:Радио и связь.1988.

10. Юлин В.А.,Булатова И.Р. Приглашение к СИ. Мн.:Высш. школа.1990.

11. Р.Уингер. Язык Турбо СИ. М.:Мир.1991.

12. Романовская Л.М.,Русс Т.В.,Свитковский С.Г. Программирование в среде СИ для ПЭВМ ЕС. М.:Финансы и статистика.1992.

13. Е. М. Демидович.Основы алгоритмизации и программирования..Язык СИ.Мн.:”Бестпринт “,2001. – 440c.

14. М. А Аксенкин О. Н. Целобенок. Язык С. Мн.:”Унiверсiтэцкае”, 1995. – 302c.

15. Г. П. Котлинская, О. И. Галиновский.Программирование на языке СИ..Мн.:”Выщэйшая школа”, 1991. – 155c.

16. В. В. Подбельский.Язык С++.M.:ФиС, 2001-. 559c.

17. Л.И. Климова. С++.Практическое программирование. М.:Кудиц-Образ, 2001. – 587c.

18. Г. Шилд. Программирование на Borland С++.Мн.:.”Попурри:, 1999. – 800c.

19. В. В.Тимофеев. Программирование в среде С++ Builder 5. М.:БИНОМ,2000.

 

 

Св. план 2002, поз.

 

 

Учебное издание

 

Авторы: Бусько Виталий Леонидович

Корбит Анатолий Григорьевич

Коренская Ирина Николаевна

Кривоносова Татьяна Михайловна

Убийконь Владимир Иванович

 

Под общей редакцией Бусько В.Л.

 

Лабораторный практикум

по программированию

 

 

 

Редактор

Корректор

 

 

Подписано к печати Формат 60x80 1/16

 

Объем усл. печ. л. уч.-изд.л. Тираж экз.

Заказ

Белорусский государственный университет

информатики и радиоэлектроники



Поделиться:


Последнее изменение этой страницы: 2016-04-23; просмотров: 541; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.221.183.34 (0.009 с.)