Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Программирование. Операторы ветвленияСодержание книги
Поиск на нашем сайте
Цель работы: научиться использовать операторы ветвления
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Условный оператор if и оператор переключения switch позволяют создать гибкий разветвляющийся алгоритм выполнения команд, в котором при выполнении определенных условий работает соответствующий блок операторов или команд MatLab. Практически во всех языках программирования имеются аналогичные операторы. Оператор if может применяться в простом виде для выполнения блока команд при удовлетворении некоторого условия или в конструкции if–elseif–else для написания разветвляющих алгоритмов. Начнем с простейшего примера, то есть файл-функции для вычисления выражения . Создание файл-функции не должно вызвать затруднений. Она работает для любых значений x, причем для –1< x < 1 результат является комплексным числом. Предположим, что вычисления происходят в области действительных чисел и требуется вывести предупреждение о том, что результат является комплексным числом. Перед вычислением функции следует произвести проверку значения аргумента x и вывести в командное окно предупреждение, если модуль x не превосходит единицы. Здесь уже не обойтись без условного оператора if, применение которого в самом простом случае выглядит так: if условие команды MatLab end
Если условие верно, то выполняются команды MatLab, размещенные между if и end, а если условие неверно, то происходит переход к командам, расположенным после end. Команда warning служит для вывода предупреждения в командное окно. Файл-функция, проверяющая значение аргумента, выглядит так:
function f = Rfun (x); % вычисляет sqrt (x^2–1) % выводит предупреждение, если результат комплексный % использование y = Rfun (x) % проверка аргумента if abs (x) < 1 warning (‘результат комплексный’) end % вычисление функции f = sqrt (x^2 – 1);
Теперь вызов Rfun от аргумента, меньшего единицы по модулю, приведет к выводу в командное окно предупреждения: >> y = Rfun (0.2) результат комплексный y = 0 + 0.97979589711327i
Файл-функция Rfun только предупреждает о том, что ее значение комплексное, все вычисления с ней продолжаются. Если же комплексный результат означает ошибку вычислений, то следует прекратить выполнение функции, используя error вместо warning. Другой конструкцией условных операторов является:
if условие 1 команды MatLab else условие 2 команды MatLab end
Если ход программы должен меняться в зависимости от нескольких условий, то следует использовать полную конструкцию if - elseif - else. Каждая из ветвей elseif в этом случае должна содержать условие выполнения блока операторов, размещенных после нее. Важно понимать, что условия проверяются подряд: первое выполненное условие приводит к работе соответствующего блока, выходу из конструкции if - elseif - else и переходу к оператору, следующему за end. У последней ветви else не должно быть никакого условия. Операторы, находящиеся между else и end, работают в том случае, если все условия оказались невыполненными. Действительно, полезный пример – вычисление и построение кусочно-заданной функции:
f(x)= Программа вычисления значения данной функции:
Function f=pwf(x) If x<-1, f=1-exp(-1-x); elseif x f=x^2-x-2; else f=2-x; end
Для построения графика кусочно-заданной функции pwf(x) следует воспользоваться командой fplot (‘pwf’, [-2, 5]). Построение графика pwf не случайно осуществляется при помощи fplot. Функцией plot воспользоваться не удастся, т.к. требуется предварительно вычислить вектор значений функции от вектора аргументов, а pwf не умеет работать с входным аргументом-вектором. Убедиться в этом можно, построив график pwf командами: x = [-2: 0.1: 5]; y = pwf(x); plot (x, y) Никакой ошибки при выполнении файл-функции не возникает, однако график строится неправильно. Дело в том, что вектор x входит в условия оператора if.
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ Задание 1. Напишите файл-программу построения кусочно-заданной функции f(x)= и постройте ее график. Задание 2. Напишите файл-программу построения кусочно-заданной
f(x)= и постройте ее график.
ТРЕБОВАНИЯ К ОТЧЕТУ
Отчет должен быть оформлен согласно ГОСТ 7.32-2001 и содержать 1.Титульный лист 2. Цель работы 3. Краткие теоретические сведения 4. Результаты выполнения заданий. 5. Выводы по работе.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Как применяется оператор ветвления if? 2. В каких случаях применяется оператор циклов elseif?
ЛАБОРАТОРНАЯ РАБОТА № 10
|
||||
Последнее изменение этой страницы: 2021-08-16; просмотров: 92; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.223.241.235 (0.005 с.) |