Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3324_KT / УМК_Красноярск_Учебное пособие_МатЛаб_МатКад.pdf
Скачиваний:
195
Добавлен:
28.03.2015
Размер:
5.19 Mб
Скачать

24.ЗАДАНИЕ СОБСТВЕННЫХ ФУНКЦИЙ И ПРОГРАММИРОВАНИЕ В MATHCAD

24.5.Кусочно-непрерывная функция

Рис. 24.11

Программа реализуется по следующему алгоритму: сначала проверяется условие х > 0, т. е. больше ли нуля аргумент функции. Если это так, то д а- лее проверяется условие х < 2. При верном втором условии значение функции равно ее аргументу, т. е. х. Таким образом, если аргумент функции попадает в интервал от 0 до 2, то функция задается линейной зависимостью. В ситуации, когда второе условие не выполняется (но выполняется первое), функция определяется зависимостью 4/х. Именно такое выражение указано вместе с инструкцией otherwise в блоке второго, внутреннего условного оператора. Эта формула, следовательно, соответствует значениям аргумента, большим либо равным двум. Наконец, если не выполнено условие первого, внешнего условного оператора, значение функции вычисляется по формуле sin(x). Разумеется, существует много способов проверки нескольких условий, в том числе с помощью вложенных условных операторов.

24.6. Вложенные операторы

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

При определении первой функции T1() использовано два последовательных условных оператора. В первом аргумент функции сравнивается с числом 5. Если аргумент не меньше этого числа, в качестве значения функции возвращается 3. Вторым оператором проверяется условие, состоящее в том, что аргумент функции меньше либо равен 1. В этом случае возвращается значение 1. При невыполнении ни одного из условий в условных операторах значение функции равно 2. Ниже под описанием функции на рис. 24.12 приведены примеры ее вызова. В правой части документа описана функция Т2 (). В теле блока описания этой функции в первом операторе аргумент сравнивается с единицей. Если он строго больше единицы, выполняется дру-

Математическое программное обеспечение. Учебное пособие

-233-

24.ЗАДАНИЕ СОБСТВЕННЫХ ФУНКЦИЙ И ПРОГРАММИРОВАНИЕ В MATHCAD

24.6.Вложенные операторы

гой условный оператор. В соответствии с этим вложенным оператором для аргументов функции, меньших 5, в качестве значения возвращается число 2, если это не так, то число 3. Наконец, для значений аргумента функции, не превышающего 1, значение функции равно 1 (команда у инструкции otherwise для внешнего оператора). Сразу под блоком программы приведены примеры вызова функции Т2 (). Несложно заметить, что оба программных блока фактически описывают одну и ту же зависимость: для значений аргумента, не превышающих 1, значение функции равно 1; если аргумент функции лежит в интервале от 1 до 5, функция принимает значение 2; при аргументе, принимающем значение от 5 и более, в качестве результата возвращается число 3. Разница между функциями Т1 () и Т2 () состоит лишь в способе ре а- лизации такой зависимости. В частности, условие второго условного оператора в функции Т1 () проверяется всегда, вне зависимости от того, выполнено или нет условие первого условного оператора. Напротив, в функции Т2 () условие второго вложенного условного оператора проверяется только в том случае, если выполнено условие первого оператора. При написании небольших программных блоков такая разница обычно мало сказывается на конечном результате. Однако когда программа достаточно большая или в процессе ее реализации предполагается выполнить существенное число итераций, такие нюансы следует принимать во внимание, поскольку при этом важно не только корректно составить алгоритм (последовательность команд), но и реализовать наиболее оптимальные схемы.

Рис. 24.12

Еще одна особенность условных операторов, на которую хочется обратить внимание читателя, связана с интерпретацией численных значений при работе с логическими операторами. Любое численное значение, отличное от нуля, интерпретируется, если оно указано в логическом операторе, как TRUE.

Математическое программное обеспечение. Учебное пособие

-234-

24.ЗАДАНИЕ СОБСТВЕННЫХ ФУНКЦИЙ И ПРОГРАММИРОВАНИЕ В MATHCAD

24.6.Вложенные операторы

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

24.7. Арифметическое выражение в условии

Пример арифметического выражения в условном операторе представ-

лен на рис. 24.13.

Рис. 24.13

В приведенном документе описывается функция, которая возвращает результат, равный единице, деленной на разность аргумента функции и единицы. Эта функция, очевидно, определена для любого аргумента, за исключением единицы. При таком аргументе функцией в качестве результата возвращается текстовая строка "infinity". Соответствующий программный код реализуется с помощью всего одного условного оператора. В качестве проверяемого условия, при выполнении которого значением является упомянутая текстовая строка, указано арифметическое выражение (разность аргумента функции и единицы, т. е. выражение в знаменателе при вычислении значения функции). Точнее, это выражение является аргументом логического оператора отрицания. Если это выражение равно нулю, результатом вызова функции должна быть текстовая строка. Нулевое значение, как отмечалось ранее, интерпретируется как логическое значение FALSE, поэтому возникает ситуация, будто условие в условном операторе не выполнялось. Поскольку выражение является аргументом логического оператора отрицания, то при нулевом выражении результат всей логической операции равен TRUE (В противном случае – FALSE). Поэтому слева от инструкции if условного оператора указана текстовая строка, возвращаемая функцией в качестве результата в точке разрыва. Для всех прочих значений аргумента результат вызова функции вычисляется по формуле, указанной слева от инструкции otherwise. Разумеется, можно было, например, просто записать в условном операторе в качестве условия упомянутое выражение (без оператора от-

Математическое программное обеспечение. Учебное пособие

-235-