КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Операторы цикла. Управляющие конструкции языка программирования
Управляющие конструкции языка программирования Двумерные массивы (матрицы) Для хранения матрицы используется двумерный массив. При вводе матрицы ее можно рассматривать как вектор-столбец из двух элементов, каждый из которых является вектор-строкой, следовательно, строки при наборе отделяются точкой с запятой. Пример ввода матрицы размером 2´3 A = [3, 1, -1; 2, 4, 3]; Доступ к элементам матриц осуществляется при помощи двух индексов - номеров строки и столбца, заключенных в круглые скобки. Например А(2,1) означает обращение к элементу матрицы расположенному во второй строке и первом столбце. Элементы матриц могут входить в состав выражений, например A = C(1, 1) * C(2, 2) + C(2, 3); При использовании матричных операции следует помнить, что для сложения или вычитания матрицы должны быть одного размера, а при перемножении число столбцов первой матрицы обязано равняться числу строк второй матрицы. Сложение и вычитание матриц, так же как чисел и векторов, осуществляется при помощи знаков плюс и минус. Для умножения матриц и умножение матрицы на число используется оператор умножения. Поскольку векторы и матрицы хранятся в двумерных массивах, то применение математических функций к матрицам и поэлементные операции производятся так же, как для векторов. Умножение каждого элемента одной матрицы на соответствующий элемент другой производится при помощи оператора.*, например C = A.*B; Для решения многих задач требуются программы, в которых действия повторяются циклически» а в зависимости от некоторых условий выполняются различные части программы. Для реализации подобного рода алгоритмов предназначены управляющие конструкции. Управляющие конструкции языка программирования MATLAB, которые могут быть использованы при написании, как программ, так и функций.
Схожие и повторяющиеся действия выполняются при помощи операторов цикла for и while. Цикл for предназначен для выполнения заданного числа повторяющихся действий (арифметический цикл), a while — для действий, число которых заранее не известно, но известно условие продолжения цикла (циклы с предусловием или с постусловием).
Цикл for Использование for осуществляется следующим обратом:
for count = start: step: final команды MATLAB end
Здесь count – переменная цикла, start – ее начальное значение, final – конечное значение, а step – шаг, на который увеличивается count при каждом следующем заходе в цикл. Цикл заканчивается, как только значение count становится больше final. Переменная цикла может принимать не только целые, но и вещественные значения любого знака. Если шаг цикла равен 1,то его можно не указывать.
Пример. Пусть требуется вычислить точки семейства кривых для xÎ[0.2π], которое задано функцией , зависящей от параметры а, для значений параметра а от -0.1 до 0.1 с шагом 0,02.
Листинг 3.1. Файл-программа для расчета значений функции
х = 0: pi/30: 2*pi; % вычисление вектора значений аргумента % перебор значений параметра в цикле for а = -0.1: 0.02: 0.1 % вычисление вектора значений функции для текущего значения параметра у = ехр(-а*х).*sin(x); end
Пример. Пусть требуется вычислить значение суммы Алгоритм вычисления суммы использует накопление результата, т. е. сначала сумма равна нулю, затем в переменную k заносился единица, вычисляется 1/k! (т. е. 1/1!), добавляется к S и результат снова заносится в S. Далее k увеличивается на единицу, и процесс продолжается, пока последним слагаемым не станет 1/N!.
Листинг 3.2. Файл-программа для вычисления суммы
% обнуление S для накопления суммы S = 0; N=10; % накопление суммы в цикле с шагом 1 for k = 1: N S = S + 1/factorial(k); end
Цикл while
Цикл while служит для организации повторений однотипных действий и случае, когда число и повторений заранее неизвестно и определяется выполнением некоторого условия. while условие повторения цикла команды MATLAB end
Пример. Требуется найти сумму ряда для заданного х (синус разложением в ряд): Суммировать до бесконечности не возможно, но можно накапливать сумму с заданной точностью. Известно, что дня знакопеременного ряда теоретически достаточно удерживать слагаемые, превышающие по модулю заданную точность, например 10-10. Однако суммирование таких рядов с ограниченной точностью вычислений может привести к потере значащих цифр и, в конечном итоге, к неверному результату. Значение k, обеспечивающее малость текущего слагаемого, заранее неизвестно, поэтому циклом for воспользоваться не удастся. Следовательно, необходимо использовать цикл while, который работает, пока выполняется условие цикла. В данном примере условием повторения цикла является то, что модуль текущего слагаемого больше 10-10. Для записи условия в форме понятной MATLAB, следует использовать знак > (больше). Текст программы, вычисляющей сумму ряда на основе рекуррентного соотношения приведен в листинге 3.3.
Листинг 3.3 Файл-функция, вычисляющая синус разложением в ряд
% вычисление первого слагаемого суммы для k=0 k = 0; x = 0.5; u = x; s = u; while abs(u) > 1.0e-l0 k = k + 1; u = u*х^2/(2*k) /(2*к + 1); s = s + u; end
У цикла while, в отличие or for, нет переменной цикла, поэтому необходимо до начала цикла переменной k присвоить единицу, а внутри цикла увеличивать ее на единицу.
Условие цикла while может содержать логическое выражение, составленное из операций отношения и логических операций или операторов. Для задания условия повторении цикла допустимы операции отношения, приведенные в таблице 3.3.
Таблица 3.3 Операции отношения
Задание более сложных условий производится с применением логических операторов или операций. Например, условие -1≤х<2 состоит в одновременном выполнении неравенства х≥-1 и х<2 и записывается при помощи логического оператора and and(x >= -1, х < 2), или эквивалентным образом с применением логической операции "И" (х >= -1) & (х < 2). Основные логические операции и операторы приведены в таблице 3.4.
Таблица 3.4 Логические выражения и примеры их применения
При программировании алгоритмов кроме организации повторяющихся действий в виде циклов часто требуется выполнить тог иди иной блок команд в зависимости от некоторых условий, т. е. использовать ветвление алгоритма.
Дата добавления: 2014-01-06; Просмотров: 1316; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |