Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Управляющие структуры языка MATLAB




Поскольку язык программирования системы MATLAB ориентирован на структурное программирование, в нем нет номеров строк и программных операторов безусловного перехода GO TO. Имеются лишь управляющие структуры следующих типов: условных выражений if... else...elseif...end, циклы for...end и while...end.

С позиций теории структурного программирования этих средств достаточно для решения любых задач. В MATLAB имеются также операторы-переключатели типа case.

 

Для создания программ необходимы специальные управляющие структуры

 

 

Функции ввода-вывода

Для ввода пользователем значений переменных служит функция input. При использовании

данной функции в следующем виде:

 

d=input(’Введите значение переменной d=’);

 

переменной d присваивается значение, введенное пользователем после запроса ’введите значение переменной’.

При выполнении этой функции она останавливает вычисления и ожидает ввода значения.

 

Для вывода на экран текста и значений переменных служит функция disp:

 

disp(’pi=’); disp(pi)

 

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

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

 

if Условие,

Инструкции_1,

elseif Условие,

Инструкции_2,

else

Инструкции_3,

end

 

 

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

 

if Условие

Инструкции

end

 

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

 

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

 

if Условие,

Инструкции_1,

else

Инструкции_2,

end

 

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

 

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

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

 

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

 

Задание 1: Создайте m-файл и проверьте работоспособность программы: вычисление корней квадратного уравнения.

 

% Решение квадратного уравнения

a=input(’Input coefficient a=’);

b=input(’Input coefficient b=’);

c=input(’Input coefficient c=’);

% Вычисление дискриминанта

d= b^2-4*a*c;

if d>0

disp(’Корни вещественны’)

disp(’x1=’), disp((-b+sqrt(d))/(2*a))

disp(’x2=’), disp((-b-sqrt(d))/(2*a))

elseif d==0

disp(’Кратные корни’)

disp(’x1=x2=’), disp(-b/(2*a))

else

disp(’Корни комплексные’)

disp(’x1=’), disp((-b+sqrt(d))/(2*a))

disp(’x2=’), disp((-b-sqrt(d))/(2*a))

end

%Конец программы

 

 

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

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

 

for vаr=Выражение,

Инструкция,

...,

Инструкция,

end

 

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

Список выполняемых в цикле инструкций завершается оператором end. Возможно создание вложенных циклов.

 

Задание 2: Создайте m-файл-функцию и проверьте работоспособность программы: вычисление факториала (m-файл должен иметь имя factorial.m).

 

function v=factorial(n)

% Факториал

if n==0

v=1;

else

v=1;

for i=1:n,

v= v*i;

end,

end

 

Циклы типа while...end

Цикл типа while выполняется до тех пор, пока выполняется Условие:

 

while Условие,

Инструкции

End

 

Задание 3: Создайте m-файл и проверьте работоспособность программы: приближенное вычисление бесконечной суммы.

 

% Вычисление числа \pi=4*(1-1/3+1/5-1/7+…)

% Из-за медленной сходимости ряда точность eps не рекомендуется брать меньше 0.0001

 

eps=input(’задайте точность’)

s=0;

k=0;

while 1/(2*k+1)>eps

s=s+(-1)^k/(2*k+1);

k=k+1;

end

disp(’pi=’),

disp(s*4)

 

 

Конструкция переключателя

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

 

switch switch_Bыражение

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

Список_инструкций

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

Список_инструкций

otherwise

Список_инструкций

end

 

Если выражение после заголовка switch имеет значение одного из выражений саsе_Выражение, то выполняется блок операторов case, в противном случае - список инструкций после оператора otherwise. При выполнении блока case исполняются те списки инструкций, для которых саsе_Выражение совпадает со switch_Выражением.

 

Задание 4: Создайте m-файл для реализации программы, использующей конструкцию переключателя.

 





Поделиться с друзьями:


Дата добавления: 2017-03-12; Мы поможем в написании ваших работ!; просмотров: 1427 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Победа - это еще не все, все - это постоянное желание побеждать. © Винс Ломбарди
==> читать все изречения...

2239 - | 2072 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.