Сделай Сам Свою Работу на 5

Основы редактирования и отладки m-файлов

Интерфейс редактора/отладчика m-файлов

Для подготовки, редактирования и отладки m-файлов служит специальный многооконный редактор. Он выполнен как типичное приложение Windows. Редактор можно вызвать командой edit из командной строки или командой New > M-file из меню File. После этого в окне редактора можно создавать свой файл, пользоваться средствами его отладки и запуска. Перед запуском файла его необходимо записать на диск, используя команду Filе > Save as в меню редактора.

Рис. 5.20.Редактор/отладчик файлов при записи файла на диск

На рис. 5.20 показано окно редактора/отладчика с текстом простого файла в окне редактирования и отладки.

Подготовленный текст файла (это простейшая и наша первая программа на языке программирования MATLAB) надо записать на диск. Для этого используется команда Save As, окно которой видно на рис. 5.20 внутри окна системы редактора/ отладчика. Работа с окном команды Save As уже описывалась.

После записи файла на диск можно заметить, что команда Run в меню Tools (Инструменты) или Debug/Run <name> редактора становится активной (до записи файла на диск она пассивна) и позволяет произвести запуск файла. Запустив команду Run, можно наблюдать исполнение m-файла; в нашем случае — это построение рисунка в графическом окне и вывод надписи о делении на ноль в ходе вычисления функции sin(x)/x в командном окне системы (рис. 5.21).

На первый взгляд может показаться, что редактор/отладчик — просто лишнее звено в цепочке «пользователь — MATLAB». И в самом деле, текст файла можно было бы ввести в окно системы и получить тот же результат. Однако на деле редактор/отладчик выполняет важную роль. Он позволяет создать m-файл (программу) без той многочисленной «шелухи», которая сопровождает работу в командном режиме. Далее мы убедимся, что текст такого файла подвергается тщательной синтаксической проверке, в ходе которой выявляются и отсеиваются многие ошибки пользователя. Таким образом, редактор обеспечивает синтаксический контроль файла.

Редактор имеет и другие важные отладочные средства — он позволяет устанавливать в тексте файла специальные метки, именуемые точками прерывания (breakpoints). При их достижении вычисления приостанавливаются, и пользователь может оценить промежуточные результаты вычислений (например, значения переменных), проверить правильность выполнения циклов и т. д. Наконец, редактор позволяет записать файл в текстовом формате и увековечить ваши труды в файловой системе MATLAB.



Для удобства работы с редактором/отладчиком строки программы в нем нумеруются в последовательном порядке. Редактор является многооконным. Окно каждой программы оформляется как вкладка.

Рис. 5.21.Исполнение файла, показанного в окне редактора на рис. 5.20

Цветовые выделения и синтаксический контроль

Редактор/отладчик m-файлов выполняет синтаксический контроль программного кода по мере ввода текста. При этом используются следующие цветовые выделения:

· ключевые слова языка программирования — синий цвет;

· операторы, константы и переменные — черный цвет;

· комментарии после знака % — зеленый цвет;

· символьные переменные (в апострофах) — зеленый цвет;

· синтаксические ошибки — красный цвет.

Благодаря цветовым выделениям вероятность синтаксических ошибок снижается.

Однако далеко не все ошибки диагностируются. Ошибки, связанные с неверным применением операторов или функций (например, применение оператора - вместо + или функции cos(x) вместо sin(x) и т. д.), не способна обнаружить ни одна система программирования. Устранение такого рода ошибок (их называют семантическими) — дело пользователя, отлаживающего свои алгоритмы и программы.

 

Понятие о файлах-сценариях и файлах-функциях

Здесь полезно отметить, что m-файлы, создаваемые редактором/отладчиком, делятся на два класса:

· файлы-сценарии, не имеющие входных параметров;

· файлы-функции, имеющие входные параметры.

Видимый в окне редактора на рис. 5.21 файл является файлом-сценарием, или Script-файлом. Данный файл не имеет списка входных параметров и является примером простой процедуры без параметров. Он использует глобальные переменные, т. е. такие переменные, значения которых могут быть изменены в любой момент сеанса работы и в любом месте программы.

Рис. 5.22.Исполнение файла-сценария из командной строки

Для запуска файла-сценария из командной строки MATLAB достаточно указать его имя в этой строке. Рис. 5.22 поясняет это. Обратите внимание на команду grid on, исполняемую после запуска созданного файла. Эта команда наносит на график сетку из точечных линий.

Файл-функция отличается от файла-сценария прежде всего тем, что созданная им функция имеет входные параметры, список которых указывается в круглых скобках. Используемые в файле-функции переменные являются локальными переменными, изменение значений которых в теле функции никоим образом не влияет на значения, которые те же самые переменные могут иметь за пределами функции.

Иными словами, локальные переменные могут иметь те же имена (идентификаторы), что и глобальные переменные (хотя правила культурного программирования не рекомендуют смешивать имена локальных и глобальных переменных). В дальнейшем мы рассмотрим этот вопрос более подробно, а пока вернемся к теме данного урока — описанию интерфейса компонентов системы MATLAB.

 

Панель инструментов редактора и отладчика

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

Рис. 5.23.Панель инструментов редактора/отладчика m-файлов

Назначение кнопок панели инструментов редактора/отладчика следующее:

· New — создание нового m-файла;

· Open — вывод окна загрузки файла;

· Save — запись файла на диск;

· Print — печать содержимого текущего окна редактора;

· Cut — вырезание выделенного фрагмента и перенос его в буфер;

· Сору — копирование выделенного объекта в буфер;

· Paste — размещение фрагмента из буфера в позиции текстового курсора;

· Undo — отмена предшествующей операции;

· Redo — повтор отмененной операции;

· Find text — нахождение указанного текста;

· Show function — показ функции;

· Set/Clear Breakpoint — установка/сброс точки прерывания;

· Clear All Breakpoints — сброс всех точек прерывания;

· Step — выполнение шага трассировки;

· Step In — пошаговая трассировка с заходом в вызываемые m-файлы;

· Step Out — пошаговая трассировка без захода в вызываемые m-файлы;

· Save and Run — запись и сохранение;

· Exit Debug Mode — выход из режима отладки.

С назначением ряда из этих кнопок вы уже знакомы, поскольку оно аналогично описанному ранее для основного окна MATLAB. А вот о назначении других кнопок надо поговорить.

 

Работа с точками прерывания

Основным приемом отладки rn-файлов является установка в их тексте точек прерывания (Breakpoints). Они устанавливаются (и сбрасываются) с помощью кнопки Set/Clear Breakpoint Сброс всех точек прерывания обеспечивается кнопкой Clear All Breakpoints.

Рассмотрим рис. 5.24, на котором в окне редактора/отладчика видна конструкция цикла. Как будет меняться переменная s, значение которой должно давать ряд натуральных чисел?

Прежде всего для отладки надо записать программу на диск, а. затем установить напротив выражения s=s+l точку прерывания — она отчетливо видна на рис. 5.24 как красный кружок. Для установки точки прерывания необходимо поместить текстовый курсор в нужное место (напротив указанного выражения) и щелкнуть на кнопке Set/Clear Breakpoint или щелкнуть справа от номера строки.

Рис. 5.24.Простейший пример на применение точки прерывания в программе

Теперь при пуске программы командой Run она будет исполнена до точки прерывания, после чего текущие значения s будут выведены в окне MATLAB. С помощью кнопки Step (Шаг) можно выполнить очередной шаг вычислений и т. д. Если отпала необходимость останова в точках прерывания, достаточно кнопкой Clear All Breakpoints удалить разом все точки прерывания. Желтая стрелка указывает, в каком месте программы произошла остановка. Обратите внимание на то, что в этом примере каждый шаг исполнения цикла фиксируется в окне командного режима системы MATLAB. При остановке в точке прерывания вы можете провести контроль значений переменных как «вручную», так и с помощью организации вывода на просмотр перед точкой прерывания.

Вы можете задать выполнение программы без остановки при заходе, но с остановкой при выходе (кнопка Step Out), и с остановкой при заходе в вызываемые m-файлы (кнопка Step In). Кнопка Exit Debug Mode (Выход из режима отладки) прекращает операции отладки.

 



©2015- 2019 stydopedia.ru Все материалы защищены законодательством РФ.