Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб. работа №2 по ОП НПиС.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
187.39 Кб
Скачать

3. Операторы управления matlab

В MATLAB имеется 6 операторов управления, которые позволяют реализовать разветвление алгоритмов. Это операторы for, while, if, switch, breake, return.

Операторы for и while – это операторы цикла. Они многократно выполняют однотипные инструкции при различных значениях некоторого целочисленного параметра.

Формат оператора for следующий:

for n=ni:h:nf

{инструкции}

end

Где - целочисленный параметр, изменяющийся от начального значения до конечного значения с шагом . При каждом выполняются {инструкции} – последовательность команд на языке MATLAB. Инструкции сами могут содержать вложенный цикл for:

for n=ni:hn:nf

{Инструкции}

for k=ki:hk:kf

{Инструкции}

end

{Инструкции}

end

Пример.

Записать с помощью оператора for алгоритм вычисления первых 10 членов арифметической прогрессии .

Решение.

N=10;

q=3;

a(1)=1;

S=a(1);

for n=1:1:N-1

a(n+1)=a(n)+q;

S=S+a(n+1);

end

Оператор while имеет формат

while {Условие}

{Инструкции}

end

При обращении к оператору while проверяется {Условие}, в случае его истинности выполняются {Инструкции}, после чего снова следует переход к оператору while. Если условие оказывается ложным, происходит переход к оператору, следующему за служебным словом end. {Инструкции} оператора while также могут содержать вложенный оператор while.

Пример.

Записать с помощью оператора while алгоритм вычислениям .

Решение.

P=1; % первый множитель факториала

k=1; % k - счётчик множителей

n=10; % число множителей

while k<=n-1

P=P*(k+1);

k=k+1;

end

Использовать операторы цикла в MATLAB слишком часто не желательно, поскольку они выполняются значительно медленнее, чем векторные поэлементные операции. Именно их и следует использовать в первую очередь.

Операторы if и switch – условные операторы. Они однократно выполняют различные инструкции в зависимости от значения, принимаемого некоторым условием или выражением. Эти операторы позволяют строить разветвлённые алгоритмы.

Формат оператора if следующий:

if {Условие}

{Инструкции}

end

или:

if {Условие 1}

{Инструкция 1}

elseif {Условие 2}

{Инструкция 2}

elseif {Условие 3}

{Инструкция 3}

.

.

elseif {Условие N}

{Инструкция N}

else

{Инструкции}

end

В первом случае при обращении к оператору if проверяется {Условие}. Если оно истинно, выполняются {Инструкции}, если же условие ложно, происходит переход к оператору, следующему за служебным словом end.

Во втором случае при обращении к оператору if проверяется {Условие 1}. Если оно истинно, выполняется {Инструкция 1}, если {Условие 1} ложно, проверяется {Условие 2}. При его истинности выполняется {Инструкция 2}, в противном случае проверяется {Условие 3} и т.д. до {Условия N}. Если все условий ложны, выполняются инструкции перед служебным словом end.

Оператор switch имеет формат

switch {Выражение}

case {Значение 1}

{Инструкция 1}

case {Значение 2}

{Инструкция 2}

.

.

case {Значение N}

{Инструкция N}

otherwise

{Инструкции}

end

При обращении к оператору вычисляется значение {Выражения}. В случае, если оно принимает {Значение 1}, выполняется {Инструкция 1}, после чего совершается переход к оператору, следующему за служебным словом end. Если {Выражение} принимает {Значение 2}, выполняется {Инструкция 2}, после чего также совершается переход к оператору, следующему за служебным словом end. Если же выражение не принимает ни одного из N {Значений}, выполняются {Инструкции} после служебного слова otherwise.