Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВЫ MATLAB.doc
Скачиваний:
7
Добавлен:
20.11.2019
Размер:
377.34 Кб
Скачать

1.3. Условный оператор if

Условный оператор if позволяет создать разветвляющийся алгоритм выполнения команд, в котором при выполнении определенных условий работает соответствующий блок операторов или команд MatLab.

Оператор if может применяться в простом виде для выполнения блока команд при удовлетворении некоторого условия или в конструкции  if-elseif-else для написания разветвляющихся алгоритмов. Пусть требуется вычислить выражение . Предположим, что вычисления выполняются в области действительных чисел и требуется вывести предупреждение о том, что результат является комплексным числом. Перед вычислением функции следует произвести проверку значения аргумента  x,  и вывести в командное окно предупреждение, если модуль  x  не превосходит единицы. Здесь необходимо применение условного оператора  if,  применение которого в самом простом случае выглядит так:

if  условие команды MatLab end

Если условие выполняется, то реализуются команды MatLab, размещенные между  if и end, а если условие не выполняется, то происходит переход к командам, расположенным после end. При записи условия используются операции, приведенные в табл. 1.

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

Листинг файл-функции  Rfun,  проверяющей значение аргумента

function f = Rfun(x) % вычисляет sqrt(x^2-1) % выводит предупреждение, если результат комплексный % использование y = Rfun(x)

% проверка аргумента if abs(x)<1 warning('результат комплексный') end % вычисление функции f = sqrt(x^2-1);

Теперь вызов  Rfun  от аргумента, меньшего единицы, приведет к выводу в командное окно предупреждения:

>> y = Rfun(0.2) результат комплексный y = 0 + 0.97979589711327i

Файл-функция Rfun только предупреждает о том, что  ее значение комплексное, а все вычисления с ней продолжаются. Если же комплексный результат означает ошибку вычислений, то следует прекратить выполнение функции, используя команду  error вместо warning.

1.4. Оператор ветвления if-elseif-else

В общем случае применение оператора ветвления if-elseif-else выглядит следующим образом:

if  условие 1 команды MatLab elseif  условие 2 команды MatLab elseif  условие 3 команды MatLab . . . . . . . . . . . elseif  условие N команды MatLab else команды MatLab end

В зависимости от выполнения того или иного из N условий работает соответствующая ветвь программы, если не выполняется ни одно из N условий, то реализуются команды MatLab, размещенные после else. После выполнения любой из ветвей происходит выход из оператора. Ветвей может быть сколько угодно или только две. В случае двух ветвей используется завершающее else, а elseif пропускается. Оператор должен всегда заканчиваться end. Пример использования оператора if-elseif-else приведен в следующем листинге.

function ifdem(a) % пример использования оператора if-elseif-else

if (a == 0) warning('а равно нулю') elseif a == 1 warning('а равно единице') elseif a == 2 warning('а равно двум') elseif a >= 3 warning('а, больше или равно трем') else warning('а меньше трех, и не равно нулю, единице, двум') end