Основные теоретические сведения
ПРОГРАММИРОВАНИЕ В СРЕДЕ MATLAB
Цель занятия: ознакомиться с операциями отношения, логическими операциями и условными операторами, приобрести навыки их использования при разветвленных вычислениях.
Основные теоретические сведения
В MATLAB особое значение имеют файлы двух типов — с расширениями .mat и .m. Первые являются бинарными файлами, в которых могут храниться значения переменных, вторые представляют собой текстовые файлы, содержащие внешние программы, определения команд и функций системы. Именно к ним относится большая часть команд и функций, в том числе задаваемых пользователем для решения своих специфических задач.
Многооконный редактор–отладчик с пустым окном редактирования m–файлов можно вызвать командой Edit из командной строки или командой меню File > New > M-fiLe (рисунок 3.1).
Рисунок 1– Многооконный редактор–отладчик
После этого в окне редактора можно создать свой файл, а также пользоваться средствами его отладки и запуска. Для запуска файла его необходимо записать на диск, используя команду Save as в меню File редактора. Редактор–отладчик m–файлов выполняет синтаксическую проверку программного кода по мере ввода текста. При этом используется следующее цветовое выделение:
– ключевые слова языка программирования — синий цвет;
– операторы, константы и переменные — черный цвет;
- комментарии после знака % — зеленый цвет;
- символьные переменные (в апострофах) — коричневый цвет;
- синтаксические ошибки — красный цвет.
Благодаря цветовому выделению вероятность синтаксических ошибок резко снижается
М–файлы, создаваемые редактором-отладчиком, делятся на два класса: файлы-сценарии, не имеющие входных параметров и файлы-функции, имеющие входные параметры. Файл-сценарий, именуемый также script-файлом, является просто записью серии команд без входных и выходных параметров. Он имеет следующую структуру:
%Основной комментарий
%Дополнительный комментарий
Тело файла с любыми выражениями
Важны следующие свойства файлов – сценариев:
1) они не имеют входных и выходных аргументов;
2) работают с данными из рабочей области;
3) в процессе выполнения не компилируются;
4) представляют собой зафиксированную в виде файла последовательность операций, полностью аналогичную той, что используется в сессии.
Рассмотрим следующий файл-сценарий (рисунке 2):
Рисунок 2 – Создание файла-сценария в MATLAB
Первые три строки здесь — это комментарий, остальные — тело файла. Обратите внимание на возможность задания комментария на русском языке. Знак % в комментариях должен начинаться с первой позиции строки. Необходимо отметить, что такой файл нельзя запустить без предварительной подготовки, сводящейся к заданию значений переменным xmin и xmах, использованным в теле файла. Это следствие первого свойства файлов-сценариев — они работают с данными из рабочей области. Имена файлов-сценариев нельзя использовать в качестве параметров функций, поскольку файлы–сценарии не возвращают значений. Можно сказать, что файл–сценарий — это простейшая программа на языке программирования MATLAB.
М-файл–функция является типичным объектом языка программирования системы MATLAB. Одновременно он является полноценным модулем с точки зрения структурного программирования, поскольку содержит входные и выходные параметры и использует аппарат локальных переменных. Структура такого модуля с одним выходным параметром выглядит следующим образом:
function var= f_name(Cпиcoк_napaмeтpов)
%Основной комментарий
%Дополнительный комментарий
Тело файла с любыми выражениями
vаr=выражение
М–файл-функция имеет следующие свойства:
1) он начинается с объявления function, после которого указывается имя переменной var — выходного параметра, имя самой функции f_name и список ее входных параметров;
2) функция возвращает свое значение и может использоваться в математических выражениях;
3) все переменные, имеющиеся в теле файла-функции, являются локальными, т. е. действуют только в пределах тела функции;
4) файл-функция является самостоятельным программным модулем, который общается с другими модулями через свои входные и выходные параметры;
5) правила вывода комментариев те же, что у файлов-сценариев;
6) при обнаружении файла–функции он компилируется и затем исполняется, а созданные машинные коды хранятся в рабочей области системы MATLAB.
Последняя конструкция var = выражение вводится, если требуется, чтобы функция возвращала результат вычислений. Приведенная форма файла-функции характерна для функции с одним выходным параметром. Если выходных параметров больше, то они указываются в квадратных скобках после слова function. При этом структура модуля имеет следующий вид:
function [varl,var2....] = f_name(Список_параметров)
%Основной комментарий
%Дополнительный комментарий
Тело файла с любыми выражениями
vаr1=выражение
vаr2=выражение
Если функция используется как имеющая единственный выходной параметр, но имеет ряд выходных параметров, то для возврата значения будет использоваться первый из них. Это зачастую ведет к ошибкам в математических вычислениях. Поэтому, как отмечалось, данная функция используется как отдельный элемент программ вида [varl, var2] = f_nаmе (Список_параметров). После его применения переменные выхода varl, var2 становятся определенными и их можно использовать в последующих математических выражениях и иных сегментах программы.
Для организации диалогового ввода и вывода используются следующие операторы, представленные в таблице 1.
Таблица 1- Операторы диалогового ввода/вывода
Оператор | Синтаксис | Назначение |
INPUT | x = input(‘<приглашение>’) | Для ввода данных с клавиатуры |
DISP | disp (<переменная или текст в апострофах>) | Для вывода на дисплей |
Пример диалоговой программы, которая служит вычисления площадей круга и квадрата и их сравнения приведен на рисунке 3.
Рисунок 3 – Пример диалоговой программы
Для организации ветвлений служат условные операторы.
Конструкции условных операторов:
1)
if <условие>
<операторы>
End
Операторы (тело выражения) выполняются только в том случае, если условие истинно, если условие ложно, то тело выражения не выполняется.
2) if <условие>
<операторы 1>
Else
<операторы 2>
End
Если ход программы должен изменяться в зависимости от нескольких условий, то следует использовать полную конструкцию if-elseif-else. Каждая из ветвей elseif в этом случае должна содержать условие выполнения блока операторов, размещенных после нее. Важно понимать, что условия проверяются подряд, первое выполненное условие приводит к работе соответствующего блока, выходу из конструкции if-elseif-else и переходу к оператору, следующему за end. У последней ветви else не должно быть никакого условия. Операторы, находящиеся между else и end, работают в том случае, если все условия оказались невыполненными. Например, требуется написать файл-функцию для вычисления кусочно-заданной функции:
Рисунок 4 – Листинг программы для вычисления значения функции
В системе MATLAB могут применяться следующие операторы сравнения, приведенные в таблице 2.
Таблица 2- Операторы сравнения
Символ | Назначение | Имя функции |
< | Меньше | lt |
>= | Больше или равно | ge |
> | Больше | gt |
<= | Меньше или равно | le |
== | Равно | eq |
~= | Не равно | ne |
Операции (==, ~=) проводят сравнение вещественных и мнимых частей комплексных чисел, а операции (>, <, >=, <=) – только вещественных частей.
Логические операции можно записывать в виде функций (таблица 3).
Таблица 3- Логические операции
Символ | Назначение | Имя функции |
& | Логическое «и» | and |
| | Логическое «или» | or |
~ | Отрицание | not |
Результатом логических операций являются числа 0 (false) и 1(true).