Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЕХНОЛОГИЯ ОБРАБОТКИ ИНФОРМАЦИИ | Лабораторная 1.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
834.95 Кб
Скачать

Управляющие структуры Условный оператор

Условный оператор if в общем виде записывается следующим образом:

if Условие 

Инструкции_1

elself Условие 

Инструкции_2 

else 

Инструкции_3 

end

Эта конструкция допускает несколько частных вариантов. В простейшем случае:

if Условие

Инструкции

end

Пока Условие возвращает логическое значение 1 (то есть «истина»), выполняются Инструкции, составляющие тело структуры if...end. При этом оператор end указывает на конец перечня инструкций. Инструкции в списке разделяются оператором , (запятая) или ; (точка с запятой). Если Условие не выполняется (дает логическое значение 0, «ложь»), то Инструкции также не выполняются.

Еще одна конструкция

if Условие 

Инструкции_1 

else 

Инструкции_2 

end

выполняет Инструкции_1, если выполняется Условие, или Инструкции_2 в противном случае.

Условия записываются в виде:

Выражение_1 Оператор_отношения Выражение_2,

причем в качестве Операторов_отношения используются следующие операторы: ==, <, >, <=, >= или ~=. Все эти операторы представляют собой пары символов без пробелов между ними.

Структура переключателя

Для осуществления множественного выбора (или ветвления) используется конструкция с переключателем типа switch:

switch switch_Bыражение 

case саsе_Выражение 

Список_операторов

case {саsе_Выражение1, Саsе_выражение2, саsе_ВыражениеЗ....} 

Список_операторов

Otherwise

Список_операторов

end

Если выражение после заголовка switch имеет значение одного из выражений саsе_Выражение..., то выполняется блок операторов case, в противном случае — список команд после оператора otherwise. При выполнении блока case исполняются те списки инструкций, для которых сазе_Выражение совпадает со switch_выpaжением. сазе_Выражение может быть числом, константой, переменной, вектором ячеек или даже строчной переменной. В последнем случае оператор case истинен, если функция strcmp (значение, выражение) возвращает логическое значение «истина».

Поясним применение оператора switch на примере m-файла swl.m:

switch var 

case {1,2,3}

disp(‘Первый квартал') 

case {4,5,6}

disp('Второй квартал') 

case {7,8,9}

d.isp( 'Третий квартал') 

case {10.11,12}

disp(‘Четвертый квартал') 

otherwise

disp('Ошибка в задании') 

end

Эта программа в ответ на значения переменной van — номера месяца — вычисляет, к какому кварталу относится заданный месяц, и выводит соответствующее сообщение:

» var=2;

» swl

Первый квартал 

» var=4;swl 

Второй квартал 

» var=7:swl 

Третий квартал 

» var=12;swl 

Четвертый квартал

» var=-l;swl 

Ошибка в задании

Циклы типа for...End

 Циклы типа for...end обычно используются для организации вычислений с заданным числом повторяющихся циклов. Конструкция такого цикла имеет следующий вид:

for vаг=Выражение. Инструкция. .... Инструкция end

Выражение чаще всего записывается в виде s:d:e, где s — начальное значение переменной цикла var, d — приращение этой переменной и е — конечное значение управляющей переменной, при достижении которого цикл завершается. Возможна и запись в виде s :е (в этом случае d=l). Список выполняемых в цикле инструкций завершается оператором end.

Следующие примеры поясняют применение цикла для получения квадратов значений переменной цикла:

» for 1=1:5 i^2. end; 

ans =

ans =

ans =

ans =

16 

ans =

25

» for x=0:.25:1 Х ^ 2, end: 

ans =

ans =

0.0625 

ans =

0.2500

ans =

0.5625 

ans =

1

Оператор continue передает управление в следующую итерацию цикла, пропуская операторы, которые записаны за ним, причем во вложенном цикле он передает управление на следующую итерацию основного цикла. Оператор break может использоваться для досрочного прерывания выполнения цикла. Как только он встречается в программе, цикл прерывается. Возможны вложенные циклы, например:

for i=1:3

for j=l:3

A(i,j)=i+j;

end 

end

В результате выполнения этого цикла (файл for2.m) формируется матрица А:

» for2 

» А

А =

2 3 4

3 4 5

4 5 6 

»

Следует отметить, что формирование матриц с помощью оператора : (двоеточие) обычно занимает намного меньше времени, чем с помощью цикла. Однако применение цикла нередко оказывается более наглядным и понятным. MATLAB допускает использование в качестве переменной цикла массива А размера тхп.

» А=[1 2 3;4 5 6] 

А =

1 2 3

4 5 6 

» for var=A

Var;

end