Главная страница
Навигация по странице:

  • MinGW C/C

  • SciTE

  • MinGW C/C++ 4.8

  • 7-Zip

  • SciTEGlobal.properties

  • MinIDE.cmd и SciTE.properties

  • .session

  • Alt+n

  • Лекции. Основные понятия и определения


    Скачать 1.94 Mb.
    НазваниеОсновные понятия и определения
    Дата27.03.2018
    Размер1.94 Mb.
    Формат файлаdocx
    Имя файлаЛекции.docx
    ТипКонтрольные вопросы
    #39570
    страница54 из 58
    1   ...   50   51   52   53   54   55   56   57   58

    ПРИЛОЖЕНИЯ. ПРОЕКТ ПРОГРАММЫ. СРЕДСТВА РАЗРАБОТКИ


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

    Приложение 1. Среда разработки MinGW C/C++ 4.8


    Среда разработки содержит: компилятор MinGW C/C++ 4.8.1, отладчик GDB 7.5, текстовый редактор SciTE, справку cppreference.com (июль 2014).

    Здесь в качестве оболочки используется текстовый редактор SciTE, которая называется Текстовым редактором производства фирмы Scintilla,дополненный средствами для работы с отладчиком и автоматизированного создания файлов управления процессом построения программы. Реализация подключения среды разработки MinGW C/C++ 4.8 к программе SciTE выполнена преподавателем кафедры Прикладной математики ЮУрГУ Демидовым А.К.

    П 1.1. Установка среды


    Установочный файл MinGW.7z может быть скачан по адресу: http://ipc.susu.ac.ru/learn.html, раздел MinIDE v1.1 либо скопирован из папки h:\ Учебные материалы \ 1 курс \ Информатика и программирование \ MinGW на сервере кафедры ПРИМА. Файл представляет собой архив, который открывается программами 7-Zip или WinRar. Папку MinGW в открывшемся окне следует извлечь в нужную папку. Папка не должна находиться внутри папок, имена которых содержат русские буквы на любом уровне вложенности. То же касается папок с приложениями, для разработки которых используется данная среда.

    П 1.2. Запуск среды


    Среда запускается с помощью командного файла с расширением .bat или .cmd, например, MinIDE.cmd, который должен содержать текст:

    set path=<путь к папке установки среды>\MinGW\bin;%path%

    start "" " <путь к папке установки\MinGW\SciTE\scite.exe"

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

    - g++.exe – компилятор языка С++,

    - gcc.exe – компилятор языка С,

    - ld.exe –компоновщик,

    - mingw32-make.exe –утилита для управления процессом построения программы,

    - gdb.exe – отладчик

    и другие необходимые для работы файлы.

    Во вложенной папке SciTE находится программа SciTE.exe и конфигурационные файлы для нее.

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

    Для создания кода и отладки приложения желательно установить такие свойства редактора как: размеры отступов и табуляции, выполнение отступа по нажатии клавиши Tab, возврат к предыдущему его положению по нажатию клавиши ← (BackSpace), показ номеров линий (строк кода) и некоторые другие. Первоначально настройка свойств задана в файле SciTEGlobal.properties, находящемся в папке SciTE. Можно изменить нужные и сохранить их в файле SciTE.properties, который следует поместить в папку создаваемого приложения. Тогда при запуске среды редактор будет работать в соответствии с установками данного файла. При создании нового приложения надо повторить указанные действия: создать папку, скопировать туда файлы MinIDE.cmd и SciTE.properties. Ниже приводится рекомендованное содержание файла SciTE.properties с поясняющими комментариями, который можно скопировать из любой выложенной задачи на сетевом диске кафедры H: \Учебные материалы\1 курс\Информатика и программирование\MinGW.

    #Показ панели инструментов

    toolbar.visible=1

    # Отступы

    #Размер табуляции

    tabsize=3

    #Размер автоматического отступа

    indent.size=3

    #Использует табуляцию для отступа

    use.tabs=1

    #Размеры табуляции и отступа у открываемого файла устанавливаются, как у открытого документа

    indent.auto=1

    #Включает автоматический отступ

    indent.automatic=1

    #Задают положение открывающей { и закрывающей } Так нормально

    indent.opening=0

    indent.closing=0

    #При нажатии Tab сдвиг на indent.size, а не на tab.size

    tab.indents=1

    #При нажатии backspace внутри отступа сдвиг влево на indent.size

    backspace.unindents=1

    #Сохраняет все файлы-буферы при компиляции, компоновки и выполнении, а не только текущий

    save.all.for.build=1

    #Сохраняет список открытых файлов в файле *.session для дальнейшего одновременного открытия

    save.session=1

    #Показ строки статуса внизу, содержащей 4 строки - переключаются щелчком по строке

    #1: {li-№ строки, co-№ столбца} - положение курсора; INS - вертикальный курсор, OVR - горизонтальный, переключаются клавишей Ins

    #2: Показывает: число символов, число строк, число выделенных символов в файле-буфере

    #3: Текущие дата и время

    #4: Дата/время последней коррекции файла SciTE.properties

    statusbar.visible=1

    #Задает выбранный шрифт Courier New - моноширинный, что удобно

    font.base=font:Courier New,size:10

    #Показывает при запуске номера строк

    line.margin.visible=1

    #Не показывать значки свертки

    fold=0

    #В пункте "Поиск\Заменить" появляется кнопка "Заменить в буфере", которая позволяет заменить все вхождения во всех открытых файлах

    find.replace.advanced=1

    При двойном щелчке по значку файла MinIDE.cmd, откроется окно редактора.

    Как видно из рисунка, редактор уже настроен на заданные свойства (показывается № строки, панель инструментов, строка статуса и т.д.).c:\documents and settings\администратор.komirev.000\local settings\temporary internet files\content.word\новый рисунок (6).bmp

    Следующий шаг – сохранить файл Безымянный под каким-либо осмысленным именем <имя>.cpp (пункт Файл→Сохранить как …) в ранее созданной папке будущего приложения. Рекомендуется main.cpp. Далее в переименованном файле можно создавать код модуля.

    П1.3. Меню Файл


    Тексты программных (исходных) модулей сохраняются в файлах с расширением .cpp (язык C++). Изложим действия, выполняемые в некоторых пунктах данного меню.

    Создать (Ctrl+N) – создает пустой файл с именем Безымянный и открывает его в окне редактирования. В скобках указывается «горячая» клавиша (сочетание клавиш) (нажатие на них позволяет выполнить то же действие, не открывая меню). Задать осмысленное имя исходному модулю можно при его сохранении либо в пункте Файл→Сохранить как …. Использовать, начиная со 2-го файла приложения, 1-й создается при открытии среды. c:\documents and settings\администратор.komirev.000\local settings\temporary internet files\content.word\новый рисунок (7).bmp

    Открыть… (Ctrl+O) – открывает ранее созданный файл в окне редактирования. При выполнении открывается окно «Открытие файла». Необходимо найти нужный, выделить и щелкнуть по кнопке «Открыть». В окне редактора появится вкладка с именем открываемого файла. Для каждого открытого файла в окне кода устанавливается отдельная вкладка. По умолчанию (файл SciTEGlobal.properties) максимальное количество открытых вкладок в окне редактирования 10.

    Закрыть (Ctrl+W) – закрывает файл активной вкладки окна редактора. Если в текущем сеансе на вкладке были сделаны изменения, предлагается их сохранить. То же действие выполняется при щелчке на «корешке» вкладки правой кнопкой мыши и выборе во всплывающем контекстном меню пункта Закрыть.

    Сохранить (Ctrl+S) – сохраняет текст исходного файла активного окна редактирования без выхода из среды в той папке, откуда он был загружен. То же можно выполнить с помощью контекстного меню (см. предыдущий пункт).

    Сохранить как… (Ctrl+Shift+S) – сохраняет текст исходного файла в выбранной папке с возможным изменением имени и расширения. При выборе этого пункта открывается окно, похожее на окно открытия файла. Работа в окне аналогична (см.выше). Команда также может быть выполнена через контекстное меню.

    Сохранить сессию… – команда сохраняет информацию о всех открытых файлах в окне редактора в файле с расширением .session. Это позволит в дальнейшем с помощью команды Загрузить сессию… открыть сразу все файлы, имена которых сохранены. Это удобно при разработке приложений, содержащих более 2-х .cpp или .h файлов. В открывшемся окне надо выбрать папку для сохранения, указать имя файла .session (по умолчанию предлагается SciTE) и щелкнуть по кнопке «Сохранить».

    Загрузить сессию – команда позволяет после открытия среды выбрать в открывшемся окне файл .session и открыть файлы, имена которых в нем были сохранены (щелчок по кнопке «Открыть»). Результат на рисунке.c:\documents and settings\администратор.komirev.000\local settings\temporary internet files\content.word\новый рисунок (8).bmp

    Остальные пункты меню желающие могут изучить самостоятельно.

    П1.4. Меню Сервис


    Пункты меню управляют процессами компиляции, компоновки, выполнения и отладки приложения.c:\documents and settings\администратор.komirev.000\local settings\temporary internet files\content.word\новый рисунок (84).bmp

    Проверить на ошибки компиляции (Ctrl+F7) – запускает файл в активной вкладке окна редактора на компиляцию. При этом в окне редактора появляется панель для сообщений компилятора, компоновщика и отладчика. Главным в этой панели являются сообщения о предупреждениях и ошибках этапа компиляции. Внешний вид выдачи на данном этапе показан на рисунке.c:\documents and settings\администратор.komirev.000\local settings\temporary internet files\content.word\новый рисунок (85).bmp

    Ошибки (error): трансляция и синтаксический анализ продолжаются, но компоновка не выполняется.

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

    Формат сообщения:

    < имя модуля>:<№ строки, № позиции, где обнаружена ошибка или подозрительное место>: <тип сообщения>: <поясняющий текст>.

    <фрагмент кода с указанием позиции сомнительного места>

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

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

    Собирать из всех (F7) – выполняет компоновку (редактирование связей) объектных модулей в 1 загрузочный модуль. На рисунке приведена выдача компоновщика.c:\documents and settings\администратор.komirev.000\local settings\temporary internet files\content.word\новый рисунок (86).bmp

    При компоновке внутри папки задачи создается папка release, в которую помещаются объектные (расширение ) и исполняемый (расширение .exe) файлы.

    Ошибки при компоновке относительно редки, связаны, в основном, с неправильным размещением объектных файлов по папкам и здесь не рассматриваются.

    Собирать из <имя>.cpp (Alt+F7) – выполняет компоновку приложения из указанного единственного файла. Разумное применение: наличие в папке нескольких вариантов задачи, реализованных в отдельных одиночных файлах.

    Выполнить (F5) – запускает задачу на решение. Для выдачи на экран на этом этапе открывается окно консоли.

    Чтобы правильно отображать русский алфавит, следует изменить свойства консольного окна. Для этого нужно вызвать контекстное меню щелчком правой кнопкой мыши по заголовку окна и выбрать пункт Свойства, вкладка Шрифт. Затем установить шрифт Lucida Console 12 или 14. Также разумно задать стандартный размер окна консоли 80х25 (вкладка Расположение). После изменения свойств появится соответствующее окно, в котором следует выбрать пункт Сохранить.

    Ошибки во время выполнения происходят из-за неправильного алгоритма решения задачи, поэтому их наиболее трудно исправлять. Сообщение о такой ошибке зависит от установленного на компьютере программного обеспечения и операционной системы. Часто это сообщение о необработанном исключении с предложением выбрать доступный отладчик (см.рис.). Предложенные отладчики в нашей среде разработки работать не могут, поэтому от отладки надо отказаться и обратиться к соответствующему пункту меню Сервис.c:\documents and settings\администратор.komirev.000\local settings\temporary internet files\content.word\новый рисунок (12).bmp

    Очистить окно консоли (Shift+F5) – очищает Панель сообщений. Полезно при неоднократном запуске приложения в одном сеансе работы.

    П1.5. Отладка


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

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

    - прогон программы до заданной точки,

    - пошаговое выполнение,

    - установка прерываний программы в выбранных заранее контрольных точках,

    - получение значений переменных и выражений в точке прерывания.

    Начало отладки


    Отладка: Запуск (Alt+r) – вызывает отладчик gdb.exe. Информация о выполняемых действиях и результаты отладки выводятся в Панель сообщений.

    Установка точек прерывания


    Отладка: Точка останова (F9-Breakpoint) – устанавливает прерывание исполнения приложения на заданной строке кода. Для этого необходимо поместить курсор мыши на выбранную строку и щелкнуть по данному пункту меню Сервис либо нажать клавишу F9. После этого справа от № строки появится красный треугольник, индицирующий установленную точку прерывания, и строка выделяется цветом (см.рис.). Повтор этих действий на той же строке снимает точку останова.c:\documents and settings\администратор.komirev.000\local settings\temporary internet files\content.word\новый рисунок (87).bmp
    Замечание. При первом запуске отладчика точка останова должна быть установлена обязательно. В противном случае будут недоступны другие пункты меню отладки.c:\documents and settings\администратор.komirev.000\local settings\temporary internet files\content.word\новый рисунок (89).bmp

    После запуска отладчика и остановки выполнения в Панели сообщений появится информация вида (см. выше).

    Кроме того, в папке задачи появится папка debug, в которую помещается вариант исполняемого файла с дополнительной отладочной информацией.c:\documents and settings\администратор.komirev.000\local settings\temporary internet files\content.word\новый рисунок (90).bmp

    Справа показан вид меню Сервис при запущенном отладчике. Если завершить прогон, не закрывая среду разработки, то все отладочные пункты в меню Сервис сохранятся.

    Прогон до точки прерывания


    Отладка: Идти до строки (Alt+g) – выполнить программу до места в тексте, помеченного курсором. Это и последующие отладочные действия работают только при наличии хотя бы одной установленной точки прерывания.

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


    Отладка: Шаг (Alt+c) – нажатие этих клавиш вызывает выполнение одной строки кода. При выполнении строки, содержащей вызов процедуры, эта команда переходит в тело данной процедуры и продолжает пошаговое выполнение ее инструкций.

    Отладка: Шаг над (Alt+n) – команда работает аналогично предыдущей, но при выполнении инструкции, содержащей вызов процедуры, в ее тело не переходит.

    Отладка: Шаг из (Alt+m) – выполняет действия от точки останова до конца процедуры, где произошло прерывание, и передает управление в точку возврата.

    Получение значений объектов программы


    Под объектами здесь будем понимать переменные, массивы и структуры.

    Отладка: Вывести переменную (Alt+i) – вызывает вывод в Панель сообщений значения или значений объекта программы, на котором расположен указатель мыши. Эта цель достигается проще наведением указателя мыши на имя объекта в момент прерывания (значение «всплывает» рядом с именем).

    Отладка: Следить за переменной (Alt+w) – включает объект программы, на имени которого находится указатель мыши, в список отслеживаемых. При каждом останове программы его значение будет выводиться в Панель сообщений.

    Отладка: Локальные переменные (Alt+Ctrl+l) – выводит значения всех локальных объектов текущей процедуры в Панель сообщений.

    Замечание. Все перечисленные выше приемы отладки будут иметь смысл только в том случае, если будут известны правильные значения объектов программы в точках прерывания. Их получают ручным вычислением, с помощью других средств или специальным подбором входных данных программы.

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

    Выход из отладчика производится выполнением команды Отладка: Завершить (Alt+k).

    Остальные функции отладчика рекомендуется изучить самостоятельно.


    1   ...   50   51   52   53   54   55   56   57   58


    написать администратору сайта