Как сделать условие в маткаде

Обновлено: 08.07.2024

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

К таким пакетам относятся MatLab, Mathematica , Maple и MathCAD.

Подпрограмма-функция. Описание и вызов.

Программирование в системе MathCad, предполагает использование так называемых подпрограмм-функций (П-Ф), определяемых непосредственно пользователем. П-Ф позволяют реализовывать выполнение последовательности действий с использованием различных сочетаний алгоритмических структур – следования, ветвления и циклов.

Работа с П-Ф начинается с ее описания. Для этого нужно:

1. Присвоить имя П-Ф, посредством которого осуществляется обращение к этой функции в дальнейшем и ввести список формальных параметров (список формальных параметров при решении некоторых задач может отсутствовать).

Примеры имен П-Ф: f(x), A, Z(x,y,v).

f(x):=, A:=, Z(x,y,v) :=.

3. Открыть палитру Программирование и щелкнуть кнопкой Add line (рис. 1.1). На экране появится вертикальная черта и вертикальный столбец с двумя полями для ввода операторов, образующих тело П-Ф (рис. 1.2);


Рис.1.1. Палитра ПРОГРАММИРОВАНИЕ

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


Рис.1.2. Структура подпрограммы-функции.

4. Перейти в поле 1 (щелкнув на нем мышью или нажав клавишу [Tab]) и начать вводить операторы П-Ф, оставляя самое нижнее поле тела для возвращаемого значения функции – результата работы П-Ф. на рис. 1.2.это поле 2.


Так как тело П-Ф как правило состоит из более чем двух полей, то поля ввода для дополнительных операторов открываются с помощью щелчка на кнопке Add line палитры программирование (см. рис. 4.1.3). При этом поле ввода добавляется внизу выделенного к этому моменту оператора. Для удаления того или иного оператора или поля ввода из тела П-Ф нужно заключить его в выделяющую рамку и нажать клавишу [Delete];

Обратите внимание, что оператор присваивания в теле П-Ф имеет вид стрелки, направленной влево: ← и называется локальным оператором присваивания.

Рис.3.1. Пример программирования линейного алгоритма

Поле 2 заполняется условием, если оно верно (истинно), то выполняется выражение, стоящее в Поле 1.

Вычислить значение функции, заданной следующим образом:

Реализация ЕСЛИ – ТО (if) в MathCad:


Для получения условной структуры ЕСЛИ – ТО – ИНАЧЕ используется оператор otherwise, вводимый с палитры ПРОГРАММИРОВАНИЕ, в поле которого размещается конструкция ВЫР2, которая выполняется, если проверяемое логическое выражение принимает значение ЛОЖЬ (0) (рис. 4.2). Оператор otherwise непосредственно следует после условного оператора if.


Для ввода ВЫР2 в поле оператора otherwise необходимо:

· выделить поле, стоящее после оператора if;

· щелкнуть на кнопке otherwise палитрыПРОГРАММИРОВАНИЕ;

· в появившееся поле оператора otherwise ввести необходимую конструкцию ВЫР2.

Вычислить значение функции, заданной следующим образом:

Реализация ЕСЛИ – ТО – ИНАЧЕв MathCad :


Рис. 5.1. Поля оператора цикла for

· в поле ввода 1 ввести имя переменной, являющейся параметром цикла;

· в поле 2 — закон изменения параметра цикла, используя для этого описание дискретной переменной или описание массива;

· в поле 3 — операторы, составляющие тело цикла. Если одной строки недостаточно, то дополнительные поля ввода (дополнительные строки) создаются щелчком на кнопке Add line палитры ПРОГРАММИРОВАНИЕ, и тогда слева от тела цикла появляется вертикальная черта, охватывающая тело цикла.

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


Рис. 5.2. Реализация цикла FOR в MathCad:

На отрезке [-1;3] с шагом 0,3, вычислить значения функции и сформировать из этих значений вектор .

Примем - начальное значение, а - конечное значение аргумента, приращение аргументы происходит по закону , получим реализацию алгоритма for:


Рис. 5.3. Формирование вектора примера 5.2

Следует помнить, что и в тексте программы не являются элементами вектора и знаки 0 и k пишутся через десятичную точку.

Рис. 5.4. Структура оператора итерационного цикла

· в поле 1 ввести условие выполнения цикла;

· в поле 2 ввести операторы тела цикла. В теле цикла должны присутствовать операторы, которые могут изменить значение условия цикла, иначе цикл будет продолжаться бесконечно.

Оператор цикла while выполняется следующим образом: обнаружив оператор while, Mathcad проверяет указанное в операторе условие. Если оно равно 1 (т.е. выполняется), то выполняется тело цикла, и снова проверяется условие. Если условие принимает значение 0, то цикл заканчивается.

Вычислять значение функции с шагом на отрезке [0.001; 3], до тех пор, пока .

Решение. Как видно из рисунка 5.5, функция , действительно меняет знак на отрезке [0.001; 3].

Введем следующие обозначения: а – начальное значение функции, d – приращение аргумента (шаг, с которым вычисляется значение функции ).


Рис. 5.5. График функции

Реализация программы итерационного цикла с использованием оператора whileприведена ниже на рис. 5.6:


Рис. 5.5. решение задачи примера 5.3

ПРОГРАММИРОВАНИЕ В СИСТЕМЕ MATHCAD

Введение

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

К таким пакетам относятся MatLab, Mathematica , Maple и MathCAD.

Программные операторы в Mathcad

В системе Mathcad можно реализовать расчеты по сложным разветвленным алгоритмам или с циклическими процессами. Это реализуется использованием встроенных программных операторов, похожих на используемые в различных языках программирования (рис. 1.17). Как видно на рис. 1.18 и 1.19, где вычисляется факториал, программный модуль в системе Malhcad превратился в самостоятельный блок, причем при необходимости выполнить несколько операторов, их объединяют жирной вертикальной чертой.







Модуль может вести себя как безымянная функция без параметров, но возвращающая результат – первый пример. Программный модуль может выполнять и роль тела функции пользователя с именем и параметрами – второй пример.

Набор программных операторов для создания программных модулей ограничен и содержит следующие элементы:


  • Add Line – создает и при необходимости расширяет жирную вертикальную линию, справа от которой в шаблонах задается запись программного блока;
  • – символ локального присваивания (в теле модуля);
  • if – условный оператор;
  • for – оператор задания цикла с фиксированным числом повторений;
  • while – оператор задания цикла, действующего до тех пор, пока выполняется некоторое условие;
  • otherwise – оператор иного выбора (обычно применяется с if);
  • break – оператор прерывания;
  • continue – оператор продолжения;
  • return – оператор возврата;
  • on error – оператор обработки ошибок.

Оператор добавления линии Add Line выполняет функции расширения программного блока. Расширение фиксируется удлинением вертикальной черты программных блоков или их древовидным расширением. Благодаря этому, в принципе, можно создавать сколь угодно большие программы.

Оператор внутреннего присваивания выполняет функции внутреннего, локального присваивания. Например, выражение присваивает переменной x значение 123. Локальный характер присваивания означает, что такое значение х сохраняет только в теле программы. За пределами тела программы значение переменной х может быть неопределенным, либо равно значению, которое задается вне программного блока операторами локального := или глобального присваивания.

Условный оператор if является оператором для создания условных выражений. Он задается в виде:


Если условие выполняется, то возвращается значение выражения. Совместно с этим оператором часто используются операторы прерывания break и иного выбора otherwise.

Оператор цикла for служит для организации циклов с заданным числом повторений. Он записывается в виде:


Эта запись означает, что выражение, помешенное в расположенный ниже заменитель, будет выполняться для значений переменной Var, меняющихся от Nmin до Nmax с шагом +1. Переменную счетчика Var можно использовать в исполняемом выражении.

Оператор цикла while служит для организации циклов, действующих до тех пор, пока выполняется некоторое условие. Этот оператор записывается в виде:


Выполняемое выражение записывается на место расположенного ниже заполнителя.

Оператор иного выбора otherwise обычно используется совместно с оператором if . Это поясняет следующая программная конструкция:


Здесь f(x) получает значение 1, если х>0, и –1 во всех остальных случаях.

Оператор прерывания break вызывает прерывание работы программы всякий раз, как он встречается. Чаще всего он используется совместно с оператором условного выражения if и операторами циклов while и for, обеспечивая переход в конец тела цикла.

Оператор продолжения continue используется для продолжения работы после прерывания программы. Он также чаще всего используется совместно с операторами задания циклов while и for, обеспечивая возвращение в точку прерывания и продолжение вычислений.

Оператор возвращения return прерывает выполнение программы и возвращает значение операнда, стоящего следом за ним. Например, конструкция


будет возвращать значение 0 при любом х Оператор и функция обработки ошибок позволяет создавать конструкции обработчиков ошибок. Этот оператор задается в виде:


Здесь если при выполнении Выражения_1 возникает ошибка, то выполняется Выражение_2. Для обработки ошибок полезна также функция error(S), которая, будучи помешенной в программный модуль, при возникновении ошибки выводит всплывающую подсказку с надписью, хранящейся в символьной переменной S.

Программный модуль, в сущности, является функцией, но описанной с применением упомянутых программных средств. Она возвращает значение, определяемое последним оператором (если не предусмотрено иное с помощью оператора return). Это значит, что после такого модуля, выделенного как целый блок, можно поставить знак равенства для вывода результата его работы (см. рис. 1.18). В блоке могут содержаться любые операторы и функции входного языка системы. Для передачи в блок значений переменных можно использовать переменные документа, которые ведут себя в блоке как глобальные переменные.

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

Программы в MathCAD могут быть не только линейными, но и разветвленными. Одним из вариантов ветвления в программах является проверка условия. Условия могут проверять значения как локальных, так и глобальных переменных, а также выражений, содержащих эти переменные.





Если невыполнение условия должно привести к выполнению какого-либо иного программного кода, можно в строке, следующей за оператором if, вставить оператор . В поле ввода слева от этого оператора необходимо ввести строку программы, которая будет выполняться только в том случае, если не выполнилось условие, заданное в операторе if.

Следует помнить, что если в программе введено подряд несколько строк с оператором if

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

Другим очень важным элементом при создании нелинейных программ являются циклы. Циклы позволяют повторять несколько раз выполнение одного и того же программного блока. Для создания циклов в MathCAD предусмотрено два оператора for и while.

Цикл for - цикл со счетчиком.

В таких циклах создается некоторая переменная-счетчик, значение которой изменяется после каждого выполнения тела цикла. Выход из цикла происходит при достижении этой переменной заданного значения. Этот оператор вводится с панели Programming клавишей for . В поле ввода после слова for следует указать имя переменной - счетчика. Это может быть любое имя, которое не использовалось ранее в программе. Внутри цикла можно использовать эту переменную в любых выражениях, нельзя только присваивать ей никакого значения. В поле ввода после знака следует указать диапазон значений переменной-счетчика. Вводить диапазон в данном случае следует так же, как и при создании ранжированной переменной. Вместо диапазона в данном поле ввода можно указать имя некоторого массива (вектора или матрицы). В этом случае переменная-счетчик будет последовательно принимать значения всех элементов этого массива. Возможность перебора элементов массива не может быть реализована с помощью цикла while, поэтому именно в таких случаях цикл for и является незаменимым. В поле ввода под словом for следует ввести тело цикла.

Пример: Заполнить вектор числами от xнач до xкон с шагом h. Затем определить сумму элементов этого вектора и найти их среднее арифметическое значение.

Цикл while - цикл, который выполняется до тех пор, пока выполняется определенное условие.

В поле ввода справа от слова while следует ввести условие. Это условие строится по тем же правилам, что и в операторе if. Оно будет проверяться после каждого выполнения тела цикла и в тот момент, когда условие перестанет выполняться, повторение тела цикла прекратится. В поле ввода ниже слова while следует ввести тело цикла (напомним, что для ввода нескольких строк в теле цикла надо воспользоваться кнопкой Add Line).

Пример1: Вычислить сумму с точностью е.







Пример2: Найти первый элемент, превышающий определенный порог.

Использование операторов break и continue.

Иногда возникает необходимость повлиять на выполнение цикла некоторым образом, например, прервать его выполнение по какому-либо условию или выполнять некоторые итерации не так, как другие. Для этого и служат операторы break и continue.

Оператор break, если он расположен внутри цикла, означает немедленное прекращение выполнения текущей итерации и выход из цикла. Если есть необходимость прекратить выполнение цикла по какому-либо условию, то следует использовать конструкцию следующего вида break if (условие).

Пример: Выделить из массива все элементы от начала и до первого вхождения в него заданного числа.

Оператор continue используется для того, чтобы немедленно перейти в начало цикла и начать следующую итерацию. Этот оператор также обычно используется в составе конструкции вида continue if (условие). Оператор continue используется в случаях, когда необходимо чтобы некоторые вычисления производились для одних итераций и не производились для других.

Пример: Требуется заполнить элементы квадратной матрицы в шахматном порядке.

Оператор return (возврат значения).

Как мы уже указывали, результат выполнения программного модуля помещается, как правило, в последней его строке. Но можно прервать выполнение программы в любой ее точке (например, с помощью условного оператора) и выдать некоторое значение, применив оператор return. В этом случае при выполнении указанного условия значение, введенное в поле ввода после return, возвращается в качестве результата, и никакой другой код больше не выполняется. Вставляется в программу оператор return с помощью одноименной кнопки панели Programming . Пример:

Описание подпрограммы-функции ( П-Ф ) и локальный оператор присваивания

Описание П-Ф размещается в рабочем документе перед ее вызовом и включает в себя имя подпрограммы-функции, список формальных параметров (который может отсутствовать) и тело подпрограммы-функции. Для ввода конструкций в тело П-Ф используется палитра инструментов ПРОГРАММИРОВАНИЕ, приведенная на рис. 1.


Рис. 1. Палитра ПРОГРАММИРОВАНИЕ

В качестве формальных параметров могут использоваться имена простых переменных, массивов и функций. Формальные параметры отделяются друг от друга запятой.

Замечание 1. П-Ф может не иметь формальных параметров, и тогда данные передаются через имена переменных, определенных выше описания П-Ф.

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

Порядок описания подпрограммы-функции Math cad .

Для ввода в рабочий документ описания П-Ф необходимо выполнить следующие действия:

· ввести имя П-Ф и список формальных параметров, заключенный в круглые скобки

· ввести символ “:” – на экране отображается как “: =”;

· открыть палитру Программирования и щелкнуть кнопкой Add line (см. рис. 1). На экране появится вертикальная черта и вертикальный столбец с двумя полями для ввода операторов, образующих тело П-Ф (см. рис. 2);


Рис. 2. Структура подпрограммы-функции

· перейти в поле 1 (щелкнув на нем мышью или нажав клавишу [Tab]) и ввести первый оператор тела П-Ф.

· затем ввести второй, третий и т.д. операторы, добавляя пустые поля с помощью щелчка на кнопке Add line палитры программирование .

· заполнить самое нижнее поле ввода, введя туда выражение, определяющее возвращаемое через имя П-Ф (см. рис. 3).


Рис. 3. Окончательная структура подпрограммы-функции

Замечание 2. Если результатом работы П-Ф являются несколько величин, то из них в теле П-Ф необходимо сформировать массив и его имя поместить в последней строке тела П-Ф.

Локальный оператор присваивания

Для задания внутри программы значения какой-либо переменной используется так называемый локальный оператор присваивания, имеющий вид:

Обращение к подпрограмме-функции Math cad

Для выполнения П-Ф необходимо обратиться к ее имени с указанием списка фактических параметров (если в описании программы присутствует список формальных параметров), т.е.:

Фактические параметры отделяются друг от друга запятой.

· Очевидно, что между фактическими и формальными параметрами должно быть соответствие по количеству, порядку следования и типу.

Замечание 3. Обращение к П-Ф должно находиться после ее описания, и к моменту обращения фактические параметры должны быть определены.

Пример 4. Обращение к программе f ( x ), приведенной на рис. 4.1.4, может иметь следующий вид:

Замечание 4. Передать данные внутрь П-Ф можно, используя внутри подпрограммы переменные, определенные до описания П-Ф (см. пример на рис. 4.2.1).


Рис. 4. Подпрограмма-функция без формальных параметров

Программирование линейных алгоритмов в подпрограмме-функции

Операторы, реализующие этот алгоритм, в теле П-Ф также размещаются последовательно и выполняются все, начиная с первого и заканчивая последним .

Пример 6 . Оформим в виде П-Ф вычисление корней квадратного уравнения ax 2 + bx +c = 0 по формуле

Подпрограмма-функция реализует линейный алгоритм все операторы выполняются всегда строго последовательно.

Пример программирования линейного алгоритма

Программирование разветвляющихся алгоритмов в подпрограмме-функции

Для программирования разветвляющихся алгоритмов в подпрограмме-функции Math cad можно использовать:

§ условную функции

§ условный оператор if .

Условный оператор. Этот оператор используется только в теле П-Ф и для его ввода необходимо щелкнуть на кнопке if палитры программирование . На экране появляется конструкция с двумя полями ввода, изображенная на рисунке .


Структура условного оператора if

В поле 2 вводится логическое выражение УСЛ (в простейшем случае это выражение отношений). В поле 1 вводится конструкция ВЫР1, которая выполняется, если проверяемое логическое выражение принимает значение 1. Если УСЛ = 0, то ВЫР1 не выполняется. Это соответствует условной структуре, называемой ЕСЛИ – ТО .

Для получения условной структуры ЕСЛИ – ТО – ИНАЧЕ используется оператор otherwise , вводимый с палитры ПРОГРАММИРОВАНИЕ, в поле которого размещается конструкция ВЫР2, которая выполняется, если проверяемое логическое выражение принимает значение 0 (см. рисунок). Оператор otherwise непосредственно следует после условного оператора if .


Реализация структуры ЕСЛИ – ТО – ИНАЧЕ

Для ввода ВЫР2 в поле оператора otherwise необходимо:

· выделить поле, стоящее после оператора if ;

· щелкнуть на кнопке otherwise палитры программированиЕ ;

· в появившееся поле оператора otherwise ввести необходимую конструкцию ВЫР2.

Пример 6. Составим описание П-Ф, вычисляющей функцию y(x), заданную выражением

Описание и вызов П-Ф приведены на рисунке

Реализация разветвляющегося алгоритма

Пример 7. Составим описание П-Ф для вычисления переменной z ( t ) по формуле

Описание П-Ф и ее вызов приведены на рисунке

Реализация разветвляющегося алгоритма

Из описания видно, что функция z (t) получит значение ln(t) только тогда, когда не выполняются условия, записанные в двух вышестоящих строках тела П-Ф.

Внимание! Если в строке 3 ввести просто ln ( t ), то это выражение будет вычисляться всегда вне зависимости от выполнения заданных выше условных операторов.

Задание 2 . Составьте описания П-Ф, реализующих следующие разветвляющиеся алгоритмы:

Вариант 1. При выполнении заданного условия УСЛ необходимо выполнить несколько конструкций MathCAD .


Вариант 2. При невыполнении заданного условия УСЛ необходимо выполнить несколько конструкций MathCAD .

В этом случае необходимо выделить поле оператора otherwise , щелкнуть на кнопке Add line палитры ПРОГРАММИРОВАНИЕ нужное число раз и заполнить появившиеся поля.


Пример 8. Составьте описание П-Ф, вычисляющей значения двух полиномов x ( t ), y ( t ) нулевой или первой степени. Порядок полиномов задается переменной n . Если n или n > 1, то значения полиномов равны 0. Описание П-Ф приведено на рисунке.

Реализация алгоритма примера

Пример 9. Даны два числа x , y . Составить описание П-Ф, которая переменной x присваивает максимальное значение из этих двух чисел, а y – минимальное. Описание приведено на рисунке.

Реализация разветвляющегося алгоритма

Вызов подпрограммы-функции arrangement

Задание 3. Даны три числа a , b , c . Составить П-Ф, реализующую следующий алгоритм. Если , то все числа заменить их квадратами, если , то каждое число заменить максимальным значением из этих трех чисел, в противном случае — сменить знаки у чисел.

Задание 4. Координаты точки на плоскости задаются двумя числами x , y . Составить П-Ф, вычисляющую номер четверти на плоскости, в которую попала точка.

Задание 5 . Длина сторон треугольника задается числами a , b , c . Составить П-Ф, вычисляющую значение целой переменной n по следующему правилу: n = 3, если три стороны равны; n = 2, если любые две стороны равны; n = 1, если все три стороны имеют разную длину.

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

Циклы можно условно разделить на две группы:

· циклы типа арифметической прогрессии;

· итерационные циклы.

Программирование цикла типа арифметической прогрессии

Для программирования таких циклов используется оператор цикла for (часто называемый оператором цикла с параметром). Для ввода такого оператора необходимо выполнить следующие действия:

· щелкнуть на кнопке for палитры ПрограммированиЕ . На экране появятся поля ввода, изображенные на рисунке


Поля оператора цикла for

· в поле ввода 1 ввести имя переменной, являющейся параметром цикла;

· в поле 2 — закон изменения параметра цикла, используя для этого описание дискретной переменной или описание массива ;

· в поле 3 — операторы, составляющие тело цикла. Если одной строки недостаточно, то дополнительные поля ввода (дополнительные строки) создаются щелчком на кнопке Add line палитры программированиЕ, и тогда слева от тела цикла появляется вертикальная черта, охватывающая тело цикла.

Пример 9. Составить описание П-Ф, реализующей алгоритм формирование вектора.

Заметим, что значение системной переменной ORIGIN (начальное значение индексного выражения) задается равным 1.

Подпрограмма-функция формирования вектора

Пример 9. Для x меняющегося от -2 до 2 с шагом 0.5 вычислить значение f(x) = e -x. Cos (2 x ) и сформировать из этих значений вектор y, т.е. y1 = f(-2), y2 = f(-1.5) и т.д.

В этом примере количество повторений тела цикла определяется по формуле

где xk, x0 – конечное и начальное значения параметра цикла, d – шаг его изменения. Подставив значения, получаем (2 –(–2)) /0.5+1=9.

Следовательно, сформированный вектор y будет содержать 9 элементов.

Описание П-Ф и ее вызов приведены на рисунке. Видно, что в теле цикла выполняется два оператора. Первый оператор формирует элемент массива y , а второй изменяет на 1 значение индекса. ¨

Формирование вектора примера 9

Пример 10. Составить описание П-Ф, где значения параметра цикла задаются вектором.

На рисунке приведено описание такой П-Ф.


Задание 5. Составьте описание П-Ф формирования вектора y примера 9, приняв в качестве параметра цикла переменную i .

Программирование итерационных циклов

Для программирования таких циклов используется оператор цикла while . Для ввода этого оператора необходимо выполнить следующие действия:

· щелкнуть на кнопке while палитры ПрограммированиЕ . На экране появляются элементы, показанные на рисунке


Структура оператора цикла while

· в поле 1 ввести условие выполнения цикла;

· в поле 2 ввести операторы тела цикла. В теле цикла должны присутствовать операторы, которые могут изменить значение условия цикла, иначе цикл будет продолжаться бесконечно.

Оператор цикла while выполняется следующим образом : обнаружив оператор while, Math cad проверяет указанное в операторе условие. Если оно равно 1 (т.е. выполняется), то выполняется тело цикла, и снова проверяется условие. Если условие принимает значение 0, то цикл заканчивается.

Пример 11 . Составим П-Ф, реализующую итерационную процедуру приближенного вычисления корня квадратного , используя итерационную процедуру:

В качестве приближенного значения принимается , удовлетворяющее условию:

где – заданная точность вычисления корня квадратного.

Поэтому в Math cad имеется специальный оператор break , который позволяет выйти из цикла или приостановить исполнение программы при выполнении заданного в операторе break условия.


Пример 12.2 Составить П-Ф, осуществляющую суммирование ряда с бесконечным числом слагаемых. Накопление суммы прекращается, как только очередное слагаемое по абсолютной величине становится меньше заданной погрешности .

Описание П-Ф и ее вызов показаны на рисунке. Заметим, что вторым формальным параметром является имя функции пользователя, определяющей зависимость величины члена ряда от его номера. При вызове этот формальный параметр заменяется фактическим – именем функции пользователя, описанной до обращения к П-Ф.


Вызовы подпрограммы-функции

Программирование двойных циклов

Варианты вложений операторов цикла

Составить описание П-Ф формирующей матрицу по следующему правилу:

Описание и вызов П-Ф приведены на рисунке. В этой П-Ф параметром внешнего цикла является переменная i , а параметром внутреннего — переменная j .


Реализация двойного цикла

Дополнительные операторы, используемые при программировании циклов

Оператор continue . Обычно используется для продолжения выполнения цикла путем возврата в начало тела цикла. Следующий пример поясняет работу этого оператора.

Пример 12.3 Составить описание П-Ф, формирующей новый вектор из положительных проекций исходного вектора.

Описание приведено на рисунке


Оператор return . Прерывает выполнение П-Ф и возвращает значение операнда, стоящего в поле 1 (см. рисунок).


Структура оператора return



Вариант B

Оператор on error . Этот оператор является обработчиком возникающих при выполнении тех или иных вычислений ошибок и записывается в виде:

конструкция 1 > on error .

Оператор выполняется следующим образом. Если при выполнении конструкция 2 > возникает ошибка, то выполняется 1>. Если ошибка не возникает, то выполняется 2>.


Имя функции вводится с клавиатуры . Функция используется в левом поле условного оператора if , как показано в следующем примере.

Одним из важнейших инструментов математики являются функции. Некоторые функции бывают достаточно сложны, чтобы их уместить в одно выражение. В таком случае прибегают к программной реализации в виде череды вычислений.

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

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

Спецификации функций

Для создания спецификации функции можно обратиться к мастеру функций и более и посмотреть на предоставляемые им для его функций описания. На рис. 3.43 открыта страница со спецификацией функции rnorm.

Спецификация функции, предоставляемая мастером функций

Рис. 3.43. Спецификация функции, предоставляемая мастером функций

Через формальные параметры программе-функции передаются данные, необходимые для выполнения вычислений внутри программы. Формальные параметры отделяются друг от друга запятой. В качестве формальных параметров используются простые переменные, массивы и функции.

При описании назначения функции необходимо указать, что возвращается функцией в качестве своего результата (функция rnorm возвращает вектор нормально распределенных случайных величин). При этом обязательно нужно объяснить предназначение каждого из формальных параметров, например m - количество значений, mu -среднее значение, sigma - стандартное отклонение.

Программирование функций

Для создания подпрограмм-функций в системе Mathcad предусмотрена специализированная панель Programming (Программирование), содержащая перечень операторов языка программирования. Вид панели Programming представлен на рис. 3.44. Операторы в программу необходимо вставлять с помощью кнопок этой панели. Здесь также

указано назначение основных команд, представленных на панели программирования.


Add Line - добавление новой строки в программу или создание заготовки программы из двух строк, если программы еще нс существует;

Читайте также: