Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Керування виконанням програм




Існують чотири основні оператори керування послідовністю виконання інструкцій:

1) оператор циклу «for» виконує групу інструкцій з фіксованим числом повторень;

2) оператор умови «while» виконує групу інструкцій з невизначеним числом повторень відповідно до деякої логічної умови завершення;

3) оператор умови «if» в поєднанні з операторами «else» і «elseif» виконує групу інструкцій відповідно до деяких логічних умов;

4) оператор перемикання «switch» в поєднанні з операторами «case» і «otherwise» виконує різні групи інструкцій залежно від значення деякої логічної умови.

Усі оператори керування містять оператор «end», щоб указати кінець блока, в якому діє цей оператор керування.

Оператор циклу з фіксованим числом операцій «FOR...END»

Синтаксис:

For<змінна циклу>=<початкове значення>':<приріст>':<кінцеве значення>

інструкції

end

for <змінна циклу> = А

інструкції

end

Опис: оператор циклу «for<змінна циклу>=<початкове значення>: <приріст>:<кінцеве значення> інструкції end» виконує інструкцію або групу інструкцій визначене число разів. За замовчанням приріст дорівнює 1. Можна задавати будь-який приріст, у тому числі негативний. Для позитивних індексів виконання завершується, коли значення індексу перевищує «<кінцеве значення>»; для негативних приростів виконання завершується, коли значення індексу стає меншим ніж «<кінцеве значення>».

Оператор циклу «for i = А інструкції end» визначає змінну циклу «i» як вектор А(:, k). Для першого кроку циклу k =1; для другого k = 2 і т. д., поки k не досягне значення n. Тобто цикл виконується стільки разів, скільки стовпців в матриці А. Для кожного кроку «i» – це вектор, що містить один із стовпців масиву А.

Приклади:

Цей цикл виконується 5 разів;

for i = 2:6

х(i) = 2*х(i-l);

end

Укладені цикли:

for i = 1:m

for j = 1:n

А(i,j) = l/(i + j - 1);

end

end

Цикли з векторною змінною:

х =[];

for v = [0 2 31]

х = [х 2^v]

end

Супутні оператори і функції:BREAK,END,IF,RETURN,SWITCH, WHILE.

Оператор циклу з невизначеним числом операцій «WHILE... END»

Синтаксис:

while <логічний вираз>

<оператори>

end

Опис: оператор циклу «while ... end» багато разів виконує інструкцію або групу інструкцій, поки логічний вираз істинний.

Приклад. Визначити машинну точність macheps, тобто таке найменше число, для якого ще виконується умова 1 + macheps > 1.

eps = 1;

while (1 + eps) > 1

eps = eps/2;

end

macheps = eps*2

Супутні оператори і функції: ALL, ANY, BREAK, END, FOR, IF, RETURN, SWITCH.

Оператор умови «IF...ELSE...ELSEIF...END»

Синтаксис:

IF... END IF...ELSE...END IF... ELSEIF...END
if логічний вираз інструкції end if логічний вираз інструкції else інструкції end if логічний вираз інструкції еlseif логічний вираз інструкції else інструкції end

 

Опис: оператор умови «if ... end»обчислює деякий логічний вираз і виконує відповідну групу інструкцій залежно від значення цього виразу. Якщо логічний вираз істинний, то MATLAB виконає всі інструкції між «if» і «end», а потім продовжить виконання програми в рядку після «end». Якщо умова хибна, то MATLAB пропускає всі інструкції між «if» і «end»і продовжує виконання в рядку після «end».

Оператори «if...else...end» і «if...elseif…end» створюють додаткові розгалуження всередині тіла оператора «if»:

- оператор «else»немістить логічної умови. Інструкції, пов'язані з ним, виконуються, якщо попередній оператор «if» (і можливо, «elseif») хибні;

- оператор «elseif» містить логічну умову, яка виконується, якщо попередній оператор «if» (і можливо, «elseif») хибні. Інструкції, пов'язані з оператором «elseif», виконуються, якщо відповідна логічна умова істинна. Оператор «elseif» може багато разів використовуватися всередині оператора умови «if».

Приклади.Визначення парності числа:

if rem(а, 2) == 0

disp('а парне')

b = а/2;

end

Супутні функції і оператори: BREAK, ELSE, END, FOR, RETURN, SWITCH, WHILE.

Переривання виконання циклу «BREAK»

Опис: функція «break» перериває виконання циклів «for» і «while». У разі вкладених циклів переривання можливе тільки з самого внутрішнього циклу.

Приклад:

Цикл while ... end буде виконуватися доти, поки не буде введено нульове або негативне значення змінної n:

while 1

n = input('Введіть n. Припинення введення n<= 0. n = ')

if n <= 0, break,end

r = rank(magic(n))

end

Супутні оператори: END, ERROR, FOR, IF, RETURN, SWITCH, WHILE.

Оператор перемикання «SWITCH...CASE...OTHERWISE...ENF»

Синтаксис:

switch <вираз> % вираз - це обов'язково скаляр або рядок

case <значення_1>

інструкції % виконуються, якщо <вираз> = <значення_1>

case {< значення _2> < значення _3> ... < значення _к>}

інструкції % виконуються, якщо <вираз> = < значення _1 (i = 2:k)>

otherwise

інструкції % виконуються, якщо <вираз> не дорівнює жодному зі значень

end

Перехоплення і обробка помилок «TRY... CATCH ... END»

Синтаксис:

«try» інструкції «catch» інструкції «end»

Опис: блок «try...catch...end» функціонує таким чином – у нормальному режимі виконуються тільки інструкції між операторами «try» і «catch»; у разі помилки вона перехоплюється функцією «lasterr» і починають виконуватися інструкції між операторами «catch» і «end». Якщо виникає помилка при виконанні цих інструкцій, то виконання буде припинено, якщо тільки ця помилка не буде перехоплена іншим блоком «try...catch». При цьому повідомлення про помилку може бути отримано за допомогою функції «lasterr».

Супутні оператори: EVAL, EVALIN, CATCH, END.

Повернення із функції «RETURN»

Синтаксис: return

Опис: команда «return» виконує нормальне повернення із функції, або до режиму роботи з клавіатурою. Ця команда дозволяє також завершити режим роботи з клавіатурою.

Супутні оператори: BREAK, DISP, END, ERROR, FOR, IF, SWITCH, WHILE.


Поделиться:

Дата добавления: 2015-09-14; просмотров: 99; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты