![](/user_photo/2706_HbeT2.jpg)
- •Ю.А Петров Программирование на языке высокого уровня
- •Часть 1
- •Введение
- •Задание
- •Комментарии
- •Идентификаторы
- •Ключевые слова
- •Константы
- •Управляющие последовательности
- •Строковые литералы
- •Константные выражения
- •Пунктуаторы
- •Операции
- •Задание на лабораторную работу 2 разработка программы линейной структуры Цель работы
- •Отчет по лабораторной работе должен содержать:
- •Задание
- •Замечания
- •Варианты заданий
- •Классификация ошибок
- •Ошибки, не обнаруженные компилятором
- •Ситуации, возникающие при неверных результатах
- •Отладка программы
- •Предупреждения
- •Первое сообщение об ошибке
- •Использование команд Find и Replace
- •Быстрое обнаружение ошибочных строк
- •Продолжение отладки
- •Использование встроенного отладчика
- •Разница между командами Step Into и Step Over
- •Дополнительные средства отладки
- •Работа с точками останова
- •Краткая характеристика объектов
- •Формат 1:
- •Стиль программирования
- •Задание на лабораторную работу 4 объекты и их характеристики Цель работы
- •В отчете по лабораторной работе следует представить:
- •5 Структурное программирование
- •Пример1
- •Пример 2
- •Задание на лабораторную работу 5 разработка программы со структурой «развилка» Цель работы
- •Задание:
- •Варианты задания
- •Задание на лабораторную работу 6 создание цикловых программ с фиксированным числом повторений Цель работы
- •Задание
- •Варианты задания
- •Задание на лабораторную работу 7 создание программ с итерационными циклами Цель работы
- •Задание
- •Варианты задания
- •Пояснения к выполнению лабораторной работы 7
- •6 Агрегаты данных
- •Структура
- •Объединения
- •Перечисления
- •Int array[3]; // Объявление определения;
- •Многомерные массивы
- •Вывод в файловый поток
- •Чтение из входного файлового потока
- •Чтение целой строки файлового ввода
- •Определение конца файла
- •Проверка ошибок при выполнении файловых операций
- •Закрытие файла
- •Управление открытием файла
- •Выполнение операций чтения и записи
- •Задание на ргз 1 использование структур данных при решении задач Цель работы
- •Задание
- •Варианты задания
- •7 Модульное программирование
- •Задание на ргз 2 использование модульного программирования при решении задач
- •Перемещаемые панели инструментов
- •Меню File
- •Меню Edit
- •Меню View
- •Меню Insert
- •Меню Project
- •Меню Build
- •Меню Tools
- •Меню Window
- •Список открытых окон
- •Меню Help
- •Приложение 2 Некоторые функции языка с
- •Используемая литература
- •Оглавление
- •5 Структурное программирование 53
Быстрое обнаружение ошибочных строк
Теперь необходимо выполнить повторную компиляцию программы, после которой окно сообщений будет выглядеть так, как показано на рис. 3.6.
Существует достаточно быстрый способ перехода от окна сообщений к окну редактирования. Поместим курсор на интересующей строке сообщения, например на первом предупреждении (рис. 3.7):
C:\Program Files\Microsoft Visual Studio\MyProjects\Ex_1\Error.c(22) : error C2143: syntax error : missing ';' before ')'
Выделив первую строку сообщений об ошибках, нажмем клавишу [Enter] или сделаем двойной щелчок мыши на сообщении. Курсор в окне редактирования будет автоматически помещен в строку исходного кода, вызвавшую появление сообщения об ошибке, а слева от строки появится стрелка (рис. 3.7). Отсюда видна ошибка – после идентификатора SIZE вместо запятой должна стоять точка с запятой.
Продолжение отладки
После того как будут исключены все синтаксические ошибки, программа готова к новой попытке построить исполняемый файл. Выполнив команду Rebuild All, получим Ex_1.exe. Запустить Ex_1.exe можно командой Execute Ex_1.exe из меню Build. Результат работы программы показан на рис. 3.8.
Использование встроенного отладчика
Созданная
программа в начале своей работы отображает
на экране исходное содержимое массива
данных, после чего запрашивает продолжение
работы. ОтветY
(yes
– да) сигнализирует о том, что можно
заполнить массив собственными данными
и отобразить их на экране.
Из рисунка 3.8 можно сделать вывод о том, что хотя программный код набран совершенно правильно, т.е. в нем нет синтаксических ошибок, программа работает не так, как нам бы хотелось. Ошибки такого рода называются логическими. К счастью, встроенный в Visual C++ отладчик содержит ряд средств, которые могут помочь найти и логические ошибки. Во-первых, можно выполнять программу в пошаговом режиме, строка за строкой. Во-вторых, появляется возможность анализировать значения переменных в любой момент выполнения программы.
Разница между командами Step Into и Step Over
Когда
начинается процесс отладки, появляется
панель инструментовDebug
(рис.
3.9, б).
Из
множества представленных
на ней кнопок наиболее часто задействуются
Step
Into
(четвертая
справа в верхнем ряду) и Step
Over(третья
справа). В обоих случаях программа будет
запущена на выполнение
в пошаговом режиме, а в тексте программы
выделяется та строка, которая сейчас
будет
выполнена.
Различия
между командами Step
Into
и Step
Over
проявляются
только тогда, когда в программе встречается
вызов функции. Если выбрать командуStep
Into,
то отладчик войдет в функцию и начнет
выполнять шаг за шагом все ее операторы.
При выборе команды Step
Over
отладчик выполнит функцию как единое
целое и перейдет к строке, следующей за
вызовом функции. Эту команду удобно
применять в тех случаях, когда в программе
делается обращение к стандартной
функции или созданной вами подпрограмме,
которая уже была протестирована.
Выполним
пошаговую отладку разрабатываемой
программы. При выполнении командыStep
Into
пункт главного меню Build
меняется на пункт главного меню Debug:
Как видно из рис. 3.10, в окне редактирования появилась стрелка (ее называют индикатором трассировки), указывающая на строку программы, которая будет выполнена на следующем шаге. В данный момент она указывает на тело функции main().
Пошаговое выполнение осуществляется командами Step Into или Step Over.