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

Оператор цикла с предусловием

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

while <условие продолжения цикла>

<операторы>

end

Сформируем вектор нечетных чисел:

>> i=1;

>> while i<=5

x(i)=2*i-1;

i=i+1;

end;

x =

1 3 5 7 9

Как видим, такой способ получения последовательности нечетных чисел тоже возможен, но он также является неэффективным, т. е. медленным.

Найти наибольшее число, факториал которого< 150.

>>echo on

%нахождение наибольшего числа, факториал, которого меньше 150

>>i=0;

f=1;

while f<150

i=i+1;

f=f*i;

end

disp(i-1)

на экране получим:

5

или можно воспользоваться встроенной функцией:

>> i=1;

while prod(1:i)<150

i=i+1;

end;

disp(i-1)

на экране получим:

5

Условный оператор

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

if (<логическое выражение1>)

<операторы>

[elseif (<логическое выражение2>)

<операторы>

elseif (<логическое выражение3>)

<операторы>

]

[else

<операторы>]

end

В этой конструкции может быть произвольное количество вложений ветвей elseif или их может не быть вовсе.

Пусть необходимо по введенной с клавиатуры температуре воздуха охарактеризовать погоду. Введем следующий текст:

>> t=input('введи температуру')

if (t<0)

s='мороз'

elseif and(t>0,t<=10)

s='холодно'

elseif and(t>10,t<=20)

s='тепло'

else

s='жарко'

end

В результате выполнения этих команд получим на экране:

введи температуру (например, ввели -4) -4

t =

-4

s =

мороз

Логическое выражение может быть записано и в такой форме:

(t>0)&(t<=10)

Оператор переключения (выбора)

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

Switch <ключевое выражение>

Case { <список значений1}

<операторы>

Case {<список значений2>}

<операторы>

[Otherwise

<операторы>]

End

Сначала вычисляется значение ключевого выражения. Затем это значение ищется в списках значений. Если совпадение найдено, то выполняются операторы соответствующего блока, в противном случае выполняются операторы, стоящие после ключевого слова otherwise.

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

>>n=input('введи номер месяца :')

switch n

case {1,2,12}

disp('зима')

case {3,4,5}

disp('весна')

case {6,7,8}

disp('лето')

case {9,10,11}

disp('осень')

otherwise

disp('ошибка')

end

На экране получим:

введи номер месяца : 11

n =

11

осень

Встроенные функции для работы с символьными данными Функция eval

В ML имеется возможность сформировать требуемую команду в виде строки символов, а затем выполнить ее, как обычную команду, набранную в командном окне. Для этого предназначена встроенная функция eval.

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

еval (<текст>) – предназначена для выполнения команды, заданной текстом, как команды ML.

Например, eval (‘2*2+3’) выводит на экран 7. ML. Аргументом функции может быть также строковая переменная.

Команда eval (‘<имя скрипт-файла>’) выведет на экран результат выполнения операторов, находящихся в файле с соответствующим именем.

Соседние файлы в предмете Вычислительная математика