Помощь в написании студенческих работ
Антистрессовый сервис

Условные операторы и циклы в matlab

РефератПомощь в написанииУзнать стоимостьмоей работы

Для того чтобы иметь возможность реализовать логику в программе используются условные операторы. Умозрительно эти операторы можно представить в виде узловых пунктов, достигая которых программа делает выбор по какому из возможных направлений двигаться дальше. Например, требуется определить, содержит ли некоторая переменная arg положительное или отрицательное число и вывести соответствующее… Читать ещё >

Условные операторы и циклы в matlab (реферат, курсовая, диплом, контрольная)

Вторым шагом создания полноценных программ на языке MatLab является изучение операторов ветвления и циклов. С их помощью можно реализовывать логику выполнения математических алгоритмов и создавать повторяющиеся (итерационные, рекуррентные) вычисления.

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

Для того чтобы иметь возможность реализовать логику в программе используются условные операторы. Умозрительно эти операторы можно представить в виде узловых пунктов, достигая которых программа делает выбор по какому из возможных направлений двигаться дальше. Например, требуется определить, содержит ли некоторая переменная arg положительное или отрицательное число и вывести соответствующее сообщение на экран. Для этого можно воспользоваться оператором if (если), который и выполняет подобные проверки.

В самом простом случае синтаксис данного оператора if имеет вид:

if.

end.

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

Таблица 2.1. Простые логические выражения.

if a < b.

Истинно, если переменная a меньше переменной b и ложно в противном случае.

if a > b.

Истинно, если переменная a больше переменной b и ложно в противном случае.

if a == b.

Истинно, если переменная a равна переменной b и ложно в противном случае.

if a <= b.

Истинно, если переменная a меньше либо равна переменной b и ложно в противном случае.

if a >= b.

Истинно, если переменная a больше либо равна переменной b и ложно в противном случае.

if a ≅ b.

Истинно, если переменная a не равна переменной b и ложно в противном случае.

Ниже представлен пример реализации функции sign (), которая возвращает +1, если число больше нуля, -1 — если число меньше нуля и 0, если число равно нулю:

function my_sign.

x = 5;

if x > 0.

disp (1);

end.

if x < 0.

disp (-1);

end.

if x == 0.

disp (0);

end.

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

if.

% выполняются, если истинно условие.

else.

% выполняются, если условие ложно.

end.

Тогда приведенный выше пример можно записать следующим образом:

function my_sign.

x = 5;

if x > 0.

disp (1);

else.

if x < 0.

disp (-1);

else.

disp (0);

end.

end.

В данной программе сначала выполняется проверка на положительность переменной x, и если это так, то на экран выводится значение 1, а все другие условия игнорируются. Если же первое условие оказалось ложным, то выполнение программы переходит по else (иначе) на второе условие, где выполняется проверка переменной x на отрицательность, и в случае истинности условия, на экран выводится значение -1. Если оба условия оказались ложными, то выводится значение 0.

Приведенный выше пример можно записать в более простой форме, используя еще одну конструкцию оператора if языка MatLab:

if.

% выполняются, если истинно выражение1.

elseif.

% выполняются, если истинно выражение2.

elseif.

% выполняются, если истинно выражениеN.

end.

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

function my_sign.

x = 5;

if x > 0.

disp (1); % выполняется, если x > 0.

elseif x < 0.

disp (-1); % выполняется, если x < 0.

else.

disp (0); % выполняется, если x = 0.

end.

С помощью условного оператора if можно выполнять проверку более сложных (составных) условий. Например, необходимо определить: попадает ли переменная x в диапазон значений от 0 до 2? Это можно реализовать одновременной проверкой сразу двух условий: x >= 0 и x <=2. Если эти оба условия истинны, то x попадает в диапазон от 0 до 2.

Для реализации составных условий в MatLab используются логические операторы:

& - логическое И.

| - логическое ИЛИ.

~ - логическое НЕ.

Рассмотрим пример использования составных условий. Пусть требуется проверить попадание переменной x в диапазон от 0 до 2. Программа запишется следующим образом:

function my_if.

x = 1;

if x >= 0 & x <= 2.

disp ('x принадлежит диапазону от 0 до 2');

else.

disp ('x не принадлежит диапазону от 0 до 2');

end.

Во втором примере выполним проверку на не принадлежность переменной x диапазону от 0 до 2. Это достигается срабатыванием одного из двух условий: x 2:

function my_if.

x = 1;

if x 2.

disp ('x не принадлежит диапазону от 0 до 2');

else.

disp ('x принадлежит диапазону от 0 до 2');

end.

Используя логические операторы И, ИЛИ, НЕ, можно создавать разнообразные составные условия. Например, можно сделать проверку, что переменная x попадает в диапазон от -5 до 5, но не принадлежит диапазону от 0 до 1. Очевидно, это можно реализовать следующим образом:

function my_if.

x = 1;

if (x >= -5 & x <= 5) & (x 1).

disp ('x принадлежит [-5, 5], но не входит в [0, 1]');

else.

disp ('x или не входит в [-5, 5] или в [0, 1]');

end.

Обратите внимание, что при сложном составном условии были использованы круглые скобки. Дело в том, что приоритет операции И выше приоритета операции ИЛИ, и если бы не было круглых скобок, то условие выглядело бы так: (x >= -5 и x <= 5 и x 1. Очевидно, что такая проверка давала бы другой результат от ожидаемого.

Круглые скобки в программировании используются для изменения приоритетов выполнения операторов. Подобно арифметическим операторам, логические также могут быть изменены по желанию программиста. Благодаря использованию круглых скобок, сначала выполняется проверка внутри них, а, затем, за их пределами. Именно поэтому в приведенном выше примере они необходимы для достижения требуемого результата.

Приоритет логических операций следующий:

НЕ (~) — самый высокий приоритет;

И (&) — средний приоритет;

ИЛИ (|) — самый низкий приоритет.

Показать весь текст
Заполнить форму текущей работой