Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетодичкаИПлб.doc
Скачиваний:
39
Добавлен:
08.05.2019
Размер:
6.96 Mб
Скачать

3.2. Оператор переключения

Синтаксис оператора следующий:

switch выражение

case значение1

операторы1

case значение2

операторы2

otherwise

операторы3

end

Оператор выполняет ветвления, в зависимости от значения некоторого выражения выражение. Вычисляемое выражение может быть скаляром или строкой. Количество ветвей case произвольное. Каждая ветвь состоит из слова case, за которым на одной строке следует возможное значение выражения. Последующие строки ветви содержат операторы, которые выполняются для данного значения выражения. Данная ветвь case продолжается до тех пор, пока не встретится следующий оператор case или оператор otherwise. Ветвь otherwise содержит операторы, которые выполняются, если значение выражение оказалось не обработанным ни одной из ветвей case. Блок переключателя завершается оператором end.

Пример

sym=input('введите символ ', 's');

switch sym

case '!'

disp(' это восклицательный знак')

case '?'

disp('это вопросительный знак')

case '.'

disp('это точка')

case ','

disp('это запятая')

otherwise

disp('это не "!", "?" не "." и не ","')

end

В этом примере проверяется, является ли введенный с клавиатуры символ вопросительным или восклицательным знаком, точкой или запятой.

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

switch var

case 1

disp('1')

case {2, 3, 4}

disp('2 или 3 или 4')

case 5

disp('5')

otherwise

disp('не от 1 до 5')

end

3.3. Оператор цикла с определенным числом повторений

Синтаксис оператора следующий:

for ПараметрЦикла = НачЗнач:Приращение:КонЗнач

операторы

end

При работе цикла ПарметрЦикла (счетчик) пробегает все возможные значения из диапазона от НачЗнач до КонЗнач с шагом Приращение. При каждом проходе по циклу выполняются операторы, составляющие тело цикла. По умолчанию Приращение равно 1. Можно задавать любое приращение, в том числе и отрицательное. Для положительных значений выполнение цикла завершается, когда значение параметра цикла превышает КонЗнач; для отрицательных приращений выполнение завершается, когда значение становится меньше чем КонЗнач.

Пример. Числа Фибоначчи определяются формулами . Напечатать K первых чисел Фибоначчи.

K=input('Задайте количество чисел Фибоначчи ');

disp([num2str(K) ' первых чисел Фибоначчи: '])

switch K

case 1

disp(1)

case 2

disp([1; 1])

otherwise

FibPred=1;

FibTek=1;

disp([1; 1])

for n=3:K

FibSled =FibTek + FibPred;

disp(FibSled)

FibPred=FibTek;

FibTek=FibSled;

end

end

При задании значения K = 6 получим следующий результат:

6 первых чисел Фибоначчи:

1

1

2

3

5

8

Один или несколько операторов for могут быть вложены друг в друга. В качестве переменной цикла for могут использоваться и массивы.

A=[2 3;-4 5; 12 0]

S=0;

for i = A

S=S+i;

end

disp('S=')

disp(S)

Переменная цикла i определяется как вектор A(:, k). Для первого шага цикла k равно 1 (перебираются все строки первого столбца матрицы); для второго – 2, и так далее, пока k не достигнет значения n. То есть цикл выполняется столько раз, сколько столбцов в матрице A. Для каждого шага i – это вектор, содержащий один из столбцов массива A. В результате работы этой программы сформируется вектор-столбец S из трех чисел – построчных сумм элементов матрицы А

A =

2 3

-4 5

12 0

S=

5

1

12