Язык программирования MATLAB является типичным интерпретатором. Это означает, что каждая инструкция программы распознается и тут же исполняется, что облегчает обеспечение диалогового режима общения с системой. Этап компиляции всех инструкций, т. е. полной программы, отсутствует. Интерпретация означает, что MATLAB не создает исполняемых конечных программ. Они существуют лишь в виде m-файлов. Для выполнения программ необходима среда MATLAB.
Управляющие структуры языка MATLAB
Поскольку язык программирования системы MATLAB ориентирован на структурное программирование, в нем нет номеров строк и программных операторов безусловного перехода GO TO. Имеются лишь управляющие структуры следующих типов: условных выражений if... else...elseif...end, циклы for...end и while...end.
С позиций теории структурного программирования этих средств достаточно для решения любых задач. В MATLAB имеются также операторы-переключатели типа case.
Для создания программ необходимы специальные управляющие структуры
Функции ввода-вывода
Для ввода пользователем значений переменных служит функция input. При использовании
данной функции в следующем виде:
d=input(’Введите значение переменной d=’);
переменной d присваивается значение, введенное пользователем после запроса ’введите значение переменной’.
При выполнении этой функции она останавливает вычисления и ожидает ввода значения.
Для вывода на экран текста и значений переменных служит функция disp:
disp(’pi=’); disp(pi)
Условный оператор
Условный оператор if в общем виде записывается следующим образом:
if Условие,
Инструкции_1,
elseif Условие,
Инструкции_2,
else
Инструкции_3,
end
Эта конструкция допускает несколько частных вариантов. Простейший:
if Условие
Инструкции
end
Пока Условие возвращает логическое значение 1 (то есть "истина"), выполняются Инструкции, составляющие тело структуры if...end. При этом оператор end указывает на конец перечня инструкций. Инструкции в списке разделяются оператором , (запятая) или ; (точка с запятой). Если Условие не выполняется (дает логическое значение 0, "ложь"), то Инструкции также не выполняются.
Еще одна конструкция
if Условие,
Инструкции_1,
else
Инструкции_2,
end
выполняет Инструкции_1, если выполняется Условие, или Инструкции_2 в противном случае.
Условия записываются в виде:
Выражение_1 Оператор_отношения Выражение_2,
причем в качестве Операторов_отношения используются следующие операторы: ==, <, >, <=, >= или ~=. Все эти операторы представляют собой пары символов без пробелов между ними.
Циклы типа for...end обычно используются для организации вычислений с заданным числом повторяющихся циклов. Конструкция такого цикла имеет следующий вид:
for vаr=Выражение,
Инструкция,
...,
Инструкция,
end
Выражение чаще всего записывается в виде s:d:e, где s - начальное значение переменной цикла var, d - приращение этой переменной и е - конечное значение управляющей переменной, при достижении которого цикл завершается. Возможна и запись в виде s:е (в этом случае d=1).
Список выполняемых в цикле инструкций завершается оператором end. Возможно создание вложенных циклов.
Задание 2: Создайте m-файл-функцию и проверьте работоспособность программы: вычисление факториала (m-файл должен иметь имя factorial.m).