- •Глава 2 36
- •1 Задание 1 62
- •Лабораторная работа №1
- •Краткие теоретические сведения
- •1.1Создание консольного приложения
- •1.2Отладка программы
- •1.2.1Установка точек останова (Add breakpoint)
- •2.2Идентификаторы
- •2.3Ключевые слова
- •2.4Знаки операций
- •2.5Константы
- •2.6Комментарии
- •2.7.1Понятие типа данных
- •2.7.2Основные типы данных
- •2.7.3Целый тип (int).
- •2.7.4Символьный тип (char).
- •2.7.5Логический тип (bool).
- •2.7.6Вещественный тип (float, double и long double).
- •2.8Переменные
- •2.9Функции и объекты ввода/вывода
- •2.9.1Основные функции ввода/вывода в стиле с:
- •2.10Операции
- •2.10.2Операция определения размера sizeof
- •2.10.4Деление (/) и остаток от деления (%).
- •2.10.8Логические операции (&& и ||).
- •2.10.10 Условная операция (?:).
- •2.11Выражения
- •2.11.1Преобразование типов в выражении.
- •Задание к лабораторной работе №1
- •Контрольные вопросы к лабораторной работе №1
- •1.1Оператор «выражение»
- •1.2Операторы ветвления
- •1.2.1Условный оператор if... Else
- •1.2.2Об условиях в операторе if
- •1.2.3Оператор выбора switch
- •1.3Операторы передачи управления
- •1.3.1Оператор goto
- •1.3.2Оператор break
- •2 Тестирование программ
- •Домашнее Задание
- •Задание к лабораторной работе №2
- •1Задание 1
- •2Задание 2
- •Содержание отчета
- •2Операторы цикла
- •2.1Цикл с предусловием (while)
- •2.2Цикл с постусловием (do … while)
- •2.3Цикл с параметром for
- •3Дополнительные операторы передачи управления
- •3.1Оператор break
- •3.2Оператор continue
- •4Вложенные циклы
- •Домашнее Задание
- •Задание к лабораторной работе №3
- •1Задание 1
- •2Задание 2
- •Содержание отчета
- •Контрольные вопросы к лабораторной работе №3
- •4Программа пузырьковой сортировки
- •Домашнее Задание
- •Задание к лабораторной работе №4
- •Содержание отчета
- •Контрольные вопросы к лабораторной работе №4
- •0 Строка
- •1 Строка
- •5 Строка
- •2Ввод и вывод многомерных массивов
- •Домашнее Задание
- •Задание к лабораторной работе №5
- •4Ссылки
- •5Динамическое распределение памяти
- •5.1Использование стандартных функций malloc и free
- •5.2Использование операторов new и delete
- •Домашнее Задание
- •Задание к лабораторной работе № 6
- •Содержание отчета
- •Контрольные вопросы к лабораторной работе №6
- •Лабораторная работа №7 отладка программы краткие теоретические сведения
- •6Отладочные пункты меню
- •7Элементы отладки
- •7.1Контрольные точки
- •7.1.1Контрольные точки в исходном коде
- •7.1.2Адресные контрольные точки
- •7.1.3Контрольные точки данных
- •7.2Команда Run to Cursor
- •7.3Команда Pause
- •8Наблюдение за переменными
- •8.1Быстрый просмотр данных
- •9Инспектор отладки
- •9.1Инспекция локальных переменных
- •10Другие инструменты отладки
- •10.1Диалог Evaluate/Modify
- •10.2Окно cpu
- •10.3Стек вызовов
- •10.4Команда Go to Address
- •10.5Команда Program Reset
- •Задание на лабораторную работу №7
- •Контрольные вопросы к лабораторной работе №7
- •Приложение I
- •Приложение II Блоки схем алгоритмов согласно гост 19.002 – 80 и 19.003 – 80
- •Приложение III Оформление алгоритма программы в виде блок-схемы
- •Приложение IV Базовая программа для выполнения лабораторных работ
- •Приложение V
- •Приложение VI
- •Список используемых источников
Содержание отчета
Отчет выполняется по выбору преподавателя либо в редакторе Word, либо в черновом варианте в лекционной тетради. Отчет должен содержать:
Листинг программы на языке Си, решающей задачи в соответствии с вариантом (номером компьютера) задания;
Результаты тестирования программы.
Контрольные вопросы к лабораторной работе №6
Что такое переменная-указатель и какие виды указателей Вы знаеете ?
Какие виды указателей допускают изменение, а какие нет ?
Что такое ссылка?
Запишите программу динамического выделения и освобождения памяти под массив A[5] с помощью функций malloc и free ?
Запишите программу динамического выделения и освобождения памяти под массив A[5] с помощью операторов new и delete ?
Запишите программу динамического выделения и освобождения памяти под массив B[5][6] с помощью операторов new и delete?
Лабораторная работа №7 отладка программы краткие теоретические сведения
Отладка программы – процесс исправления ошибок в коде программы. Ошибки могут быть синтаксическими и логическими. Синтаксические ошибки выявляются на этапе компиляции программы. Сообщения об ошибках компилятор выводит в окне. Исправление синтаксических ошибок необходимо начинать с первой ошибки, так как она может вызвать серию связанных с ней ошибок. Для выявления логических ошибок требуется наблюдать за изменением переменных, поведением функций, объектов, процессов и линий потока управления. Это можно сделать с помощью встроенного отладчика IDE C++Builder 5. Отладчик IDE обладает широкими возможностями вплоть до отладки на уровне машинного кода.
6Отладочные пункты меню
При отладке вам понадобится обращаться в основном к трем меню: это каскадное меню View>Debug Windows, меню Run и контекстное меню редактора кода. Пункты этих меню приведены в таблицах 6.1 - 5.3.
Таблица 5.1. Пункты меню Viev | Debug Windows
Пункт |
Клавиша |
Описание |
Breakpoints |
Ctrl+Alt+B |
Открывает окно списка контрольных точек, показывающее активные контрольные точки и их свойства. |
Call Stack |
Ctrl+Alt+S |
Открывает окно стека вызовов. Стек показывает, какие и в каком порядке вызывались функции, прежде чем управление достигло текущей точки программы. |
Watches |
Ctrl+Alt+W |
Открывает окно наблюдения за переменными. Окно отображает список наблюдаемых переменных с их текущими значениями. |
Local Variables |
Ctrl+Alt+L |
Открывает окно локальных переменных. В нем отображаются значения всех локальных переменных текущей функции. |
Threads |
Ctrl+Alt+T |
Окно активных процессов и линий потока управления (threads). |
Modules |
Ctrl+Alt+M |
Окно загруженных модулей – исполняемых файлов, динамических библиотек и пакетов запущенного проекта. |
Event Log |
Ctrl+Alt+E |
Отображает протокол событий, происходящих при запуске проекта; какие события будут регистрироваться, можно задать на странице Event Log диалога Debugger Options. |
CPU |
Ctrl+Alt+C |
Открывает окно состояния процессора. Отображает, в частности, компилированный код программы и содержимое регистров. |
FPU |
Ctrl+Alt+F |
Открывает окно состояния FPU, отражающее содержимое его регистров и флагов. |
Таблица 5.2. Пункты меню Run
Пункт |
Клавиша |
Описание |
Run |
F9 |
Запускает программу, при необходимости производя перед этим её сборку (Make). |
Attach to Process... |
|
Прикрепляет отладчик к уже выполняющемуся в данный момент процессу. |
Parameters... |
|
Позволяет ввести аргументы командной строки или указать приложение, которое является “хозяином” отлаживаемой DLL. |
Step Over |
F8 |
Исполняет текущую строку исходного кода и переходит к следующей строке. |
Trace Into |
F7 |
Исполняет текущую строку исходного кода; если строка содержит вызов функции, переходит к трассировке последней. |
Trace to Next Source Line |
Shift+F7 |
Исполняет программу до следующей строки исходного кода. Например, если программа вызывает функцию API, требующую возвратно-вызываемой процедуры, отладчик остановит выполнение на входе в эту процедуру. |
Run to Cursor |
F4 |
Исполняет программу до строки исходного кода, в которой установлен курсор редактора. |
Run Until Return |
Shift+F8 |
Исполняет программу до возврата из текущей функции |
Show Execution Point |
|
Устанавливает курсор редактора кода на строку, в которой приостановлена программа. |
Program Pause |
|
Приостанавливает выполнение программы, как только управление попадает в наличный исходный код. |
Program Reset |
Ctrl+F2 |
Закрывает программу. |
Inspect... |
|
Открывает диалог Inspect, в котором можно ввести имя инспектируемого объекта. |
Evaluate/Modify... |
Ctrl+F7 |
Открывает диалог Evaluate/Modify |
Add Watch... |
Ctrl+F5 |
Открывает диалог Watch Properties |
Add Breakpoint |
|
Каскадное меню, позволяющее устанавливать контрольные точки различного вида (в исходном коде, на адресе, на данных, точки загрузки модуля). |
Для любой из вышеперечисленных команд меню можно поместить соответствующую кнопку на инструментальную панель. Откройте правой кнопкой мыши контекстное меню инструментальной панели и выберите Customize...; на странице Commands открывшегося диалога выберите нужную кнопку и перетащите ее на инструментальную панель. Чтобы убрать с панели какую-нибудь кнопку, просто вытащите ее мышью за пределы главного окна C++Builder. По умолчанию на панели инструментов размещены кнопки Run, Pause, Trace Into и Step Over.
Следующая таблица показывает пункты контекстного меню редактора в режиме приостановленной программы. В основном они дублируют перечисленные пункты главного меню, но в ряде случаев более удобны.
Таблица 5.3. Отладочные пункты контекстного меню редактора
Пункт |
Клавиша |
Описание |
Toggle Breakpoint |
F5 |
Переключает (устанавливает или сбрасывает) контрольную точку в строке, где находится курсор редактора. |
Run to Cursor |
F4 |
То же, что и в меню Run. |
Goto Address... |
|
Позволяет указать адрес области памяти, которая будет отображаться в панели дизассемблера окна CPU. |
Inspect... |
Alt+F5 |
Открывает окно инспекции объекта, на имени которого находится курсор. |
Evaluate/Modify... |
|
То же, что и в меню Run. |
Add Watch at Cursor |
Ctrl+F5 |
Вносит в список наблюдения переменную, на имени которой находится курсор. |
View CPU |
|
То же, что Viev меню.| Debug Windows| CPU в главном |
Ну а теперь мы поговорим о том, чем управляют все эти меню и какие вообще инструментальные средства отладки имеются в распоряжении программиста.