Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Программирование. Операторы ветвления

Поиск

 

    Цель работы: научиться использовать операторы ветвления

 

 

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

 

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

Оператор if может применяться в простом виде для выполнения блока команд при удовлетворении некоторого условия или в конструкции if–elseif–else для написания разветвляющих алгоритмов.

Начнем с простейшего примера, то есть файл-функции для вычисления выражения  .

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

if условие

команды MatLab

end

 

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

Команда warning служит для вывода предупреждения в командное окно.

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

 

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.

    Другой конструкцией условных операторов является:

 

if условие 1

команды MatLab

else условие 2

команды MatLab

end

 

    Если ход программы должен меняться в зависимости от нескольких условий, то следует использовать полную конструкцию if - elseif - else. Каждая из ветвей elseif в этом случае должна содержать условие выполнения блока операторов, размещенных после нее. Важно понимать, что условия проверяются подряд: первое выполненное условие приводит к работе соответствующего блока, выходу из конструкции if - elseif - else и переходу к оператору, следующему за end. У последней ветви else не должно быть никакого условия. Операторы, находящиеся между else и end, работают в том случае, если все условия оказались невыполненными. Действительно, полезный пример – вычисление и построение кусочно-заданной функции:

 

f(x)=

    Программа вычисления значения данной функции:

 

Function f=pwf(x)

If x<-1, f=1-exp(-1-x);

elseif x  f=x^2-x-2;

else

f=2-x;

end

 

    Для построения графика кусочно-заданной функции pwf(x) следует

воспользоваться командой fplot (‘pwf’, [-2, 5]).

    Построение графика pwf не случайно осуществляется при помощи

fplot. Функцией plot воспользоваться не удастся, т.к. требуется предварительно вычислить вектор значений функции от вектора аргументов, а pwf не умеет работать с входным аргументом-вектором. Убедиться в этом можно, построив график pwf командами:

x = [-2: 0.1: 5];

y = pwf(x);

plot (x, y)

    Никакой ошибки при выполнении файл-функции не возникает, однако график строится неправильно. Дело в том, что вектор x входит в условия оператора if.

 

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

Задание 1. Напишите файл-программу построения кусочно-заданной функции f(x)=  и постройте ее график.

Задание 2. Напишите файл-программу построения кусочно-заданной

 

f(x)= и постройте ее график.

 

ТРЕБОВАНИЯ К ОТЧЕТУ

 

Отчет должен быть оформлен согласно ГОСТ 7.32-2001 и содержать

1.Титульный лист

2. Цель работы

3. Краткие теоретические сведения

4. Результаты выполнения заданий.

5. Выводы по работе.

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

 

1. Как применяется оператор ветвления if?

2. В каких случаях применяется оператор циклов elseif?

 

 

ЛАБОРАТОРНАЯ РАБОТА № 10



Поделиться:


Последнее изменение этой страницы: 2021-08-16; просмотров: 92; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.223.241.235 (0.005 с.)