Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабораторныйПрактикум1.pdf
Скачиваний:
395
Добавлен:
02.02.2015
Размер:
4.76 Mб
Скачать

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

В разделе об Excel вы уже сталкивались с оператором ветвления ЕСЛИ. В Mathcad также есть функция – условный оператор, позволяющая в зависимости от выполнения условия использовать первое или второе выражение (или константу). Функция if(усл,выр1,выр2) использует три аргумента, первый – логическое выражение (или значение 0 – ЛОЖЬ, 1 - ИСТИНА), обычно в качестве логического выражения используют операторы сравнения. Функция if() возвращает в качестве результата второй аргумент, если значение первого аргумента ИСТИНА

(1) или третий аргумент, если значение первого аргумента – ЛОЖЬ (0).

В новом документе введите: «z := 2 z > 3 =». Результат операции сравнения равен нулю. Теперь измените в первом выражении значение z с двух на четыре. Изменится и результат. Иногда необходимо в математическом документе вывести текстовый результат. Текстовой переменной присваивают значения с помощью функции if(). Для наглядности само присваивание можно скрыть с помощью области. Ниже введите «S := concat("Результат сравнения: ", if(z>3,"ИСТИНА","ЛОЖЬ"))», ниже выведите результат «S =». Функция concat() объединяет строки.

С помощью условного оператора можно создавать составные функции для разных диапазонов аргумента. Введите «y(x) := if(x>1, ln(x), sin(x–1))», постройте график функции X-Y по x и y(x). Как видно из графика, функция имеет значения в области (x < 0), где функция ln(x) не определена. Сохраните документ как MC15.xmcdz.

Другая функция until позволяет вычислять значения в цикле, завершающемся при выполнении условия.

until(x, z) – возвращает значение выражения z, пока выражение x не становится отрицательным; x должно содержать дискретный элемент.

Рассмотрите математическую модель простой химической реакции первого порядка A B , протекающей в изотермическом режиме. Условием окончания реакции принимается исчерпание сырья (концентрация меньше 0,05 моль). Константа скорости реакции kA (по веществу A) зависит от природы вещества, но не от его концентрации, единицы измерения константы скорости зависят от порядка реакции. Для реакции первого порядка она записывается как 1/с. Отрицательное значение константы показывает, что вещество разлагается. Начальная

303

концентрация вещества А – 1 моль. Концентрация в каждую следующую секунду реакции определяется как разница текущей концентрации и приращения, зависящего от k.

Сохраните документ как MC16.xmcdz.

Кроме этих простых функций Mathcad предоставляет возможности построения программ. Программа в Mathcad есть выражение, в свою очередь, состоящее из других выражений. Программы Mathcad содержат конструкции, во многом подобные программным конструкциям языков программирования: условные передачи управления, операторы циклов, области видимости переменных, использование подпрограмм и рекурсии.

12.1.5. Программирование

Программа Mathcad есть частный случай выражения. Подобно выражению, программа возвращает значение, если за ней следует знак равенства. Точно так же, как переменную или функцию можно определить через выражение, их можно определить и с помощью программы. Главным различием между программой и выражением является способ задания вычислений. При использовании выражения алгоритм получения ответа должен быть описан одним оператором. В программе может быть использовано столько операторов, сколько нужно.

304

Рассмотрим кнопки панели программирования (Programming palette), с помощью которых можно создавать программу Mathcad.

Add Line – команда добавления строки в программу, в тело цикла, в плечо альтернативы и т.д. Вставляемая вертикальная линия объединяет отдельные операторы в операторный блок с одним входом и одним выходом, который выполняется как единый оператор.

Кнопка (Local Assignment, Shift+[ ) – оператор присвоения значения локальной переменной (т.е. переменной, используемой внутри блока программы)

while (While Loop) – выводит на экран заготовку цикла с предпроверкой. Выводится служебное слово while с двумя пустыми квадратиками. В квадратик правее while нужно записать логическое выражение (переменную), управляющее циклом, а в квадратик внизу – тело цикла, операторы которого будут выполняться, пока логическое выражение возвращает «верно» (числовое значение, отличное от нуля). Если в теле цикла более одного оператора, то нужно использовать кнопку Add Line.

if (If Statement, Shift+] ) – позволяет вводить в программу альтернативу с одним плечом. Если плечо альтернативы один оператор, то запись будет выглядеть следующим образом: C D if A > B, но если плечо альтернативы составной оператор, то выражение будет выглядеть так:

otherwise (Otherwise Statement) – превращает неполную альтернативу в полную (аналог оператора else в языках программирования):

Операторы if и otherwise позволяют записать в программах алгоритмическую конструкцию множественное ветвление.

for (For Loop) – вводит в программы цикл с параметром. Когда заранее неизвестно количество итераций цикла, используют оператор while,

305

когда известно – оператор for, в заголовке которого пишут не логическое выражение, а параметр цикла и указывают, какие дискретные значения он должен принимать в цикле. Эти значения можно перечислить через запятую (1, 2, 3.7) или указать диапазоном (2..100) или вектором (V). Пример нахождения суммы вектора традиционным способом и с помощью программы:

break (Break Statement) – прерывает цикл, действие передаётся следующему оператору за пределами цикла.

continue (Continue Statement) – прерывается выполнение текущей итерации цикла, действие передаётся в начало цикла.

return (Return Statement) – выход из программы

on error (On Error Statement) – возвращает указанное значение при возникновении ошибки или результат вычисления при её отсутствии.

Рассмотрите несколько примеров. В качестве первого представлено нахождение числа e методом Эйлера106 и Рунге-Кутты107 4-го порядка.

106http://ru.wikipedia.org/wiki/Метод_Эйлера

107http://ru.wikipedia.org/wiki/Метод_Рунге_—_Кутты

306

Сохраните документ как MC17.xmcdz. 307