Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
02_Programmirovanie_v_Matlab.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
122 Кб
Скачать

4. Оператор альтернативного выбора switch

Одним из способов организации разветвлений является оператор switch, имеющий следующую структуру

switch параметр

case значение1

операторы 1

case значение2

операторы 2

case значение3

операторы 3

....

otherwise

операторы

end

Если значение параметра равно значению 1, то выполняются операторы 1, иначе, если параметр равен 2, то выполняются операторы 2 и т.д. Если значение параметра не совпадает ни с одним из значений в группах case, то выполняются операторы, которые идут после слова otherwise.

Например, выведем на экран название дня недели, соответствующее заданному числу D, при условии что в месяце 31 день и 1-ое число – понедельник.

------------------------------------------------------------------------------------------------------------------------

D = input('ВВЕСТИ ЧИСЛО ОТ 1 ДО 31: ')

или

function day_week(D)

md = mod(D,7); %ВЫЧИСЛЕНИЕ ОСТАТКА ОТ ДЕЛЕНИЯ D НА 7

switch md

case 1

disp('ПОНЕДЕЛЬНИК')

case 2

disp('ВТОРНИК')

case 3

disp('СРЕДА')

case 4

disp('ЧЕТВЕРГ')

case 5

disp('ПЯТНИЦА')

case 6

disp('СУББОТА')

otherwise

disp('ВОСКРЕСЕНЬЕ')

end

------------------------------------------------------------------------------------------------------------------------

5. Функции от функций

MatLab предоставляет возможность написания файл-функции, входными аргументами которых, наряду с обычными переменными, являются и другие файл-функции. При этом имя файл-функции передается в строковой переменной, а её вычисления производиться при помощи команды feval.

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

------------------------------------------------------------------------------------------------------------------------

function str = znach (’fname’, ymin, ymax, x)

% проверка входных аргументов

if ymin >= ymax

error('нижняя граница должна быть меньше верхней')

end

y = feval(fname, x)

if (y >= ymin) & (y <= ymax)

str = 'значение функции попадает в заданный интервал';

else

str = 'значение функции не попадает в заданный интервал';

end

------------------------------------------------------------------------------------------------------------------------

Замечание. В этой программе str – строковая переменная и её значения набирают в апострофах.

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

Например, наберем в командной строке последовательность операторов:

>> r = znach('sin', 0.2, 0.5, pi/5)

y =

0.58779

значение функции не попадает в заданный интервал