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
значение функции не попадает в заданный интервал
