Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Оператор цикла for ⇐ ПредыдущаяСтр 3 из 3
Часто при организации цикла требуется перебирать значение счетчика в заданном диапазоне значений и с заданным шагом изменения. Например, чтобы перебрать элементы вектора (массива), нужно организовать счетчик от 1 до N с шагом 1, где N – число элементов вектора. Чтобы вычислить сумму ряда, также задается счетчик от a до b с требуемым шагом изменения step. И так далее. В связи с тем, что подобные задачи часто встречаются в практике программирования, для их реализации был предложен свой оператор цикла for, который позволяет проще и нагляднее реализовывать цикл со счетчиком. Синтаксис оператора цикла for имеет следующий вид: for < счетчик> = < начальное значение>: < шаг>: < конечное значение> Рассмотрим работу данного цикла на примере реализации алгоритма поиска максимального значения элемента в векторе: function search_max В данном примере цикл for задает счетчик i и меняет его значение от 1 до 10 с шагом 1. Обратите внимание, что если величина шага не указывается явно, то он берется по умолчанию равным 1. В следующем примере рассмотрим реализацию алгоритма смещения элементов вектора вправо, т.е. предпоследний элемент ставится на место последнего, следующий – на место предпоследнего, и т.д. до первого элемента: function queue Результат работы программы 3 6 5 3 6 9 5 3 1 0 Приведенный пример показывает, что для реализации цикла со счетчиком от большего значения к меньшему, нужно явно указывать шаг, в данном случае, -1. Если этого не сделать, то цикл сразу завершит свою работу и программа будет работать некорректно. В заключении рассмотрим работу оператора цикла for на примере моделирования случайной последовательности с законом изменения , где - коэффициент от -1 до 1; - нормальная случайная величина с нулевым математическим ожиданием и дисперсией , где - дисперсия моделируемого случайного процесса. При этом первый отсчет моделируется как нормальная случайная величина с нулевым математическим ожиданием и дисперсией . Программа моделирования имеет следующий вид: function modeling_x При выполнении данной программы будет показана реализация смоделированной случайной последовательности . Рис. 2. Результат моделирования случайной последовательности. Работа программы начинается с определения переменных , (в программе переменная ex) и для реализации указанной модели. Затем вычисляется дисперсия и моделируется первый отсчет случайного процесса с помощью функции randn. Функция randn выполняет генерацию нормальных случайных величин с нулевым средним и единичной дисперсией. Чтобы сгенерировать случайную величину с дисперсией достаточно случайную величину с единичной дисперсией умножить на , т.к. дисперсия – это средний квадрат случайной величины относительно математического ожидания. В результате имеем программную строчку x(1) = sqrt(ex)*randn; Затем, реализуется цикл for со счетчиком i от 2 до N с шагом 1. Внутри цикла выполняется моделирование оставшихся N-1 отсчетов случайного процесса в соответствии с приведенной выше формулой. В последней строчке программы записана функция plot(), которая выводит смоделированную последовательность на экран в виде графика.
Задание для лабораторной работы №6
Написать файл-функцию с использованием операторов ветвления и циклов, на основании вариантов задания, представленных в таблице 1.
Таблица 1. Варианты заданий
Содержание отчета 1. Цель работы. 2. Описание операторов, используемых для выполнения задания. 3. Листинг файла-сценария и результаты работы программы. 4. Ответы на контрольные вопросы. Контрольные вопросы 1. Какое значение имеют файлы с расширениями.mat и.m? 2. Как можно вызвать многооконный редактор–отладчик? 3. М–файлы каких типов можно создать в редакторе-отладчике? 4. Структура и свойства М-файла-сценария. 5. Структура и свойства М-файла-функции. 6. Какие операторы используются для организации диалогового ввода и вывода? 7. Какие операторы служат для организации ветвлений. Конструкции условных операторов и оператора выбора. 8. Какие операторы сравнения могут применяться в системе MATLAB? 9. Какие логические операции применяются в системе MATLAB? В виде каких функций их можно записывать? 10. Какие операторы служат для организации циклов. Конструкции циклических операторов.
|