Материал: Matlab. Практический подход. Самоучитель

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Глава 3. Элементы программирования

тинном условии выполняется блок команд до следующего ключевого слова elseif. Если условие условие_2 ложно, проверяется условие_3, и так далее. В случае, если ни одно из условий не выполнено, выполняются команды после ключевого слова else. Далее приведен пример программного кода, в котором используются условные операторы:

function y=MakeChoice(x) if x<0

disp('Отрицательное значение аргумента!');

else

disp('Неотрицательное значение аргумента!');

end

disp('Вычисление значения функции:'); if x<-5

y=x+5; elseif x<0

y=x*(x+5); elseif x<7

y=x*(x-7);

else

y=x-7;

end

disp('Вычисление значения функции завершено!'); if y==0

disp('Значение функции равно нулю!');

end end

Окно редактора m-файлов с этим кодом представлено на рис. 3.21.

Код функции MakeChoice() несколько искусственный и носит иллюстративный характер. Основу его составляют три условных оператора. В первом из них проверяется условие x<0, где через x обозначен аргумент функции. Условие x<0 является истинным, если аргумент функции меньше нуля.

Вэтом случае на экран выводится сообщение о том, что у функции отрицательный аргумент. В противном случае, то есть если условие x<0 ложно, выводится сообщение о том, что аргумент неотрицательный.

Вследующем условном операторе проверяется условие x<-5. Если это так, то переменной y, которая предназначена для записи значения функции, присваивается значение x+5. Если условие x<-5 не выполнено, проверяется условие x<0. В этом случае выполняется команда y=x*(x+5). Если же не выполнено и условие x<0, проверяется условие x<7. На этот случай, то есть когда аргумент функции меньше семи (но не меньше нуля), предусмотрена команда y=x*(x-7). Если ни одно из перечисленных условий не выполняется (аргумент функции больше либо равен семи), значение переменной y определяется с помощью команды y=x-7.

121

Самоучитель Matlab

Рис. 3.21. Программный код функции MakeChoice() с использованием условных операторов

После того, как вычислено значение функции (присвоено значение переменной y), выполняется еще один условный оператор, в котором проверяется условие равенства нулю значения функции (условие y==0). Если условие выполнено, выводится текстовое сообщение о том, что значение функции нулевое. В противном случае никаких дополнительных действий не предпринимается. Результат вызова функции MakeChoice() с разными аргументами приведен на рис. 3.22.

На заметку

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

Подобно условному оператору if, в котором проверяется серия условий, с помощью оператора перебора switch выполняется проверка значения переменной или выражения. Переменная указывается после ключевого слова switch. Ключевое слово case используется для организации программных блоков, которые выполняются в зависимости от значения переменной. Общий синтаксис вызова оператора перебора switch следующий:

122

Глава 3. Элементы программирования

Рис. 3.22. Результат вычисления функции MakeChoice() для разных аргументов

switch выражение case значение_1 команды_1

case значение_2 команды_2

...

case значение_N команды_N otherwise

команды_N+1 end

123

Самоучитель Matlab

Оператор выполняется по следующей схеме: вычисляется значение выражения. Затем это значение последовательно сравнивается со значениями, указанными в case-блоках (после ключевого слова case), до первого совпадения. Если совпадение найдено, выполняются команды в соответствующем case-блоке. Если совпадения не найдено, выполняется блок команд, помеченный инструкцией otherwise. Последний блок (то есть otherwise-блок) не является обязательным. Пример использования оператора перебора switch приведен ниже:

function y=MultiFunc(x,n) switch n

case 1 y=x; case 2

y=x*(10-x); case {3,4,5}

y=x*sin(n*x); otherwise

y=1/(1+x^2);

end end

Кодом объявляется функция MultiFunc(), у которой два аргумента. Причем второй аргумент играет роль индикатора, который определяет тип функциональной зависимости. Варианты перебираются с помощью оператора switch. Значение функции записывается в переменную y. При единичном втором аргументе (переменная n) функции MultiFunc() значение переменной y определяется командой y=x в первом case-блоке (через x обозначен первый аргумент функции). Если значение переменной n равно 2, выполняется команда y=x*(10-x). Если же второй аргумент функции MultiFunc() равен 3, 4 или 5, значение функции вычисляется командой y=x*sin(n*x).

На заметку

Обращаем внимание читателя, что в этом случае в качестве проверяемого значения в соответствующем case-блоке указаны фигурные скобки с перечисленными в них значениями 3, 4 и 5 (в качестве разделителя используется запятая).

Наконец, если значение переменной n не совпадает ни с одним из перечисленных выше значений, для определения значения функции выполняется команда y=1/(1+x^2) (блок otherwise). На рис. 3.23 показано окно редактора m-файлов с кодом функции MultiFunc().

124

Глава 3. Элементы программирования

Рис. 3.23. Код функции с оператором перебора

Результат вызова функции MultiFunc() с разными аргументами приведен на рис. 3.24.

Рис. 3.24. Результат вызова функции с оператором перебора

125

Источник: https://studfile.net/preview/16433384/