Как сделать пробел в маткаде

Обновлено: 07.07.2024

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

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

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

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



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

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

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

Назначение основных команд, представленных на панели:


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

← – присвоение значения локальной переменной;

if – условный оператор. Позволяет в зависимости от условия выполнять или не выполнять те или иные действия;

otherwise – используется сразу после оператора if и позволяет выполнить определенные действия при невыполнении условия в операторе if ;

for – оператор создания цикла со счетчиком;

while – оператор создания цикла, выполнение которого продолжается до тех пор, пока выполняется указанное условие.

continue – продолжить вычисления в цикле;

break – прервать вычисления в цикле;

return – оператор возврата;

on error – оператор перехода при возникновении ошибки.

Рис.4.2. Вид панели инструментов Programming ( Программирование)

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

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

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

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

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

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

Технология создания программы-функции в рабочем документе MathCAD состоит из следующих шагов:

Ввести заголовок функции.

Выполнить команду Add line, расположенную на панели Programming (Программирование). Появившейся на экране шаблон с вертикальной чертой и полями для ввода операторов будут составлять заготовку для тела программы-функции.

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

Самое нижнее поле всегда предназначено для определения возвращаемого программой значения.


Пример 1. Требуется подготовить описание функции и вычислить значения этой функции приx = 4.15 и g = 1.854.





Рис.4.3. Пошаговое создание и выполнение программы-функции

В данном примере введена вспомогательная локальная переменная t для вычисления значения функции. И эта переменная расположена в последней строчке программного блока. В пункте (6) приведена операция вычисления функции для фактических значений. На рис. 4.4, b, c приведены другие варианты решения поставленной задачи.




Рис. 4.4. Демонстрация элементов программирования простых выражений


В примере, представленном на рис. 4.4, в первой колонке a для вычисления значения используется базовый набор средств без элементов программирования. Во второйb и третьей c колонках производятся точно такие же вычисления, но с использованием элементов программирования. Обе программы (b и c) можно считать эквивалентными, так как возвращают они одно и то же значение, которое располагается в последней строчке программируемой части. В (bи c) мы имеем дело с программой – скаляром, так как они используются для вычисления одного значения и не имеют формальных параметров.

Внутри программ (b и c) используются глобальные переменные g и x из документа. Значения этих переменных определены заранее. Обе программы из примера, представленного на рис. 4.4, в своей программируемой части содержат операторы присваивания с использованием локальных переменных. Переменные, созданные внутри программы с таким видом присваивания, являются внутренними, и доступ к ним может осуществляться только в самой программе.


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

Последняя строка программы не должна содержать управляющих операторов. Эта строка задает значение, возвращаемое программой, т.е. получает результат вычислений и может содержать имя локальной переменной результата (рис. 4.4, c) или выражение, вычисляющее результат (рис. 4.4, b).

Обычно программа содержит больше чем две строки, поэтому рекомендуется сразу задавать блок из 5-6 маркеров.

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

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

Программный блок можно создать и внутри уже заданного блока (вложенный блок). Для этого следует использовать один из стандартных способов: поставить курсор в маркер соответствующего оператора программирования и выполнить Add line.

Иногда при написании программы бывает нужным добавить строку к уже созданному блоку. Чтобы это сделать, поставьте курсор в ту строку блока, выше или ниже которой должна быть введена строка, и нажмите клавишу . При этом строка будет выделена и можно будет произвести добавление одним из стандартных способов.

Положение вставляемого маркера определяется положением вертикальной черты курсора. Если она находится слева от выделенного выражения, то маркер будет добавлен выше выделенной строки, если справа – то ниже.

Чтобы развернуть курсор в нужную сторону, нажмите клавишу .

Чтобы добавить строку к целому блоку, его следует выделить, дважды нажав клавишу .

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

Пример 2. Требуется найти действительные корни квадратного уравнения , гдеa, b, c – любые действительные числа и . Известно, что в зависимости от знака дискриминантадействительные корни уравнения могут быть получены по формуле:


Решение . Опишем вычисление корней в виде программы-функции.


Спецификацию для этой функции можно записать следующим образом. Функция R ( a,b,с ) возвращает значения действительных корней квадратного уравнения или сообщает о том, что уравнение не имеет корней.

Здесь a , b , с – коэффициенты уравнения.

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

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


При включении оператора if в блок программирования появляется шаблон с двумя полями ввода – справа и слева от оператора:

 if .

В поле ввода справа от оператора записывается условие. Для ввода условий следует использовать панельBoolean (Логические), где есть кнопки для проверки условий ( = > Рис. 4.6. Демонстрация элементов программирования ветвящихся процессов


Рис. 4.7. Демонстрация элементов программирования ветвящихся процессов

На рис. 4.8 представлены примеры программ-функций, реализующих вычисления, содержащие ветвящиеся процессы.







Рис. 4.8. Примеры программирования функций с проверкой условий. Здесь x – глобальная переменная

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

Решение. Задача поиска наибольшего/наименьшего значений в заданном массиве относится к типовым циклическим алгоритмам .

Спецификацию для этой функции можно записать следующим образом:

Функция Fun(P) возвращает наибольшее и наименьшее значение в массиве Р.

Для создания циклов в MathCAD предусмотрено два оператора: for и while. Поскольку количество повторений цикла заранее известно и связано с числом элементов заданного массива, в данном решении целесообразно использовать оператор for.


После вставки оператораfor в строку программы его сопровождают три поля ввода, как это показано на рис. 4.9.


Рис. 4.9. Шаблон оператора цикла for

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

В поле ввода после знака € следует указать диапазон значений, которые будет принимать переменная-счетчик. Вместо диапазона в данном поле ввода можно указать имя некоторого массива (вектора или матрицы). В таком случае переменная-счетчик будет последовательно принимать значения всех элементов этого массива. Количество повторов цикла будет равно количеству элементов массива.

В поле ввода под словом for следует ввести тело цикла

Обозначим имя переменной-счетчика, которая используется в операторе for – буквой t. Для описания алгоритма воспользуемся тем, что в операторе цикла для переменной-счетчика можно указать в качестве диапазона имя массива. Как сказано выше, в таком случае переменная t будет последовательно принимать значения всех элементов указанного вfor массива (в нашем случае – это массив Р). Для обозначения максимального и минимального значений в программу введем две вспомогательные переменные Pmax и PMin. Тогда описание функции может быть представлено в виде, как это показано на рис. 4.10.

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

Справа от программы-функции, представленной на рис. 4.10, написаны операторы, предназначенные для создания вектора с именем U из шести элементов. Для этого введена вспомогательная переменная i, задающая диапазон изменения индекса массива, а значения элементов массива U формируются с помощью функции rnd – датчика случайных чисел. Параметр 20 в ней определяет диапазон принимаемых значений.

На рис. 4.11, a представлен второй вариант программы-функции, в котором в качестве диапазона значений для переменной-счетчика цикла for берется диапазон изменения индекса массива. Поэтому в список формальных параметров в заголовок функции вносится еще один параметр n, который указывает верхнюю границу изменения индекса.

Перед началом работы курсор имеет вид красного крестика. В момент ввода выражения курсор приобретает вид синего уголка, окаймляющего часть вводимого выражения. Ввод начинается с имени переменной, после нее ставится знак присваивания (знак:), а затем само выражение или константа. Имя выражения (та часть, которая левее оператора присваивания) может состоять из латинских, русских, греческих букв и цифр, знаков подчеркивания (_), штриха (`), процента (%), бесконечности?, вводимых с клавиатуры.

Ввод математического выражения

Рисунок 2 - Ввод математического выражения

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

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

1. ?Курсор перемещается по экрану клавишами со стрелками или левой кнопкой мыши ставится в нужное место экрана.

2. ?Для выделения одного символа синим уголком курсора нужно установить курсор так, чтобы он охватывал этот символ слева или справа.

3. ?Для расширения выделения на часть или выражение целиком удобнее использовать клавиши со стрелками или пробел. Для перехода из оператора на уровень выше можно также использовать пробел. Уголок курсора должен охватывать все выражение или его часть, над которой надо выполнить действие.

4. Для выделения части или всего выражения надо щелкнуть левой кнопкой мыши в начале или в конце выделяемого выражения и переместить курсор до другого края с нажатой левой кнопкой мыши. Можно использовать клавиши Shift+ . Выделенная часть выражения черного цвета. Выделение в Mathcad используется для вырезания или копирования части выражения, изменения шрифта, а также для выполнения некоторых видов символьных вычислений.

5. ?Для выделения объекта или группы (математических, текстовых или графических) надо щелкнуть мышью на свободном месте рабочего листа и протянуть прямоугольник выделения так, чтобы он захватил нужные объекты. Один объект будет выделен синим курсоров, а группа объектов - пунктирной рамкой.

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

Некоторые латинские и греческие буквы зарезервированы в качестве констант. Так, латинская буква е внутри математического выражения является основанием натурального логарифма е = 2,718. Это значение можно отменить, присвоив ей любое другое значение, используя знак локального присваивания:=.

Знак бесконечности ? можно вставить с математической панели Calculus.

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

Если константы в правой части функции пользователя не заданы непосредственно перед использованием этой функции их значения берутся такими, какие были в последний раз перед этим расчетом.

Для ввода простого текста можно выбрать команду Insert Text Region (Вставить Текстовую область) в главном меню, но удобнее ввести с клавиатуры символ кавычки и далее сам текст. На экране появится текстовая область, в которой можно печатать. Также, сменив латинский шрифт на русский, начать печатать текст в любом месте документа. Как только будет напечатано первое слово, при нажатии пробела эта область автоматически превращается в текстовую.

В Mathcad на точность расчета повлиять нельзя, но можно изменить формат вывода результатов. В Mathcad 11 вычисления совершаются с точностью 12 знаков, а в Mathcad 15 - до 17 знаков.

1. Вычисления (ввод значений переменных, выражений и выдача Mathcad результатов) выполняются в Рабочем документе Mathcad (РДМ - файле вычислений, созданным оператором переименованием представляемого Mathcad по умолчанию пустого файла Untitled) в вычислительных блоках прямоугольной формы, автоматически создаваемых Mathcad при вводе данных с клавиатуры или через буфер, и выделенных белым цветом на сером фоне в режиме View–Regions. Блоки позиционируются относительно друг друга посредством точек, проставляемых Mathcad автоматически перед записываемой в блок информацией (рис. 2.1,Б).

2. Текущее место возможного ввода в РДМ информации отмечается Mathcadом красным плюсом. По умолчанию любой ввод (с клавиатуры, из буфера или с панелей матзнаков) реализуется как ввод вычисляемого выражения (вычислительный ввод).

4. Курсор ввода в математических выражениях – правый по умолчанию уголок синего цвета. Уголок может перестраиваться с правого на левый (и наоборот) клавишами с левой и правой стрелками

Вводимый матзнак относится к части введенных знаков, подчеркнутых (охватываемых) горизонтальной и вертикальной (для многострочной записи) линиями уголка, причем, Mathcad в необходимых случаях сам расставляет скобки: например, при охвате двух слагаемых и вводе знака умножения Mathcad оба слагаемых возьмет в круглые скобки, поставит знак умножения и место ввода множителя (черный прямоугольничек).

Для увеличения охвата введенных знаков следует нажимать клавишу (каждое нажатие увеличивает охват на один символ в горизонтальном и вертикальном направлениях – при наличии знаков в этих направлениях). Изменение направления охвата и переход от одной группы символов к другой производится клавишами с левой и правой стрелками.

6. Аргументы (переменные и параметры) в именах (функций, формул или выражений) следует записывать в порядке согласно плану вычислений, согласованному с порядком многопараметрических вычислений в Mathcad (см. разд. 12 разд. 2.1).

· целочисленные константы (например, 12, -24, 0 и т.д.);

· вещественные числовые константы, которые могут записываться в одной из двух форм: с фиксированной точкой (например, 3.265) и с десятичным порядком, записываемая в виде , где - целочисленная константа или вещественная константа с фиксированной точкой, точка означает операцию умножения (клавиша ), - десятичный порядок. Для ввода порядка нажать клавишу - операция возведения в степень;

· комплексные константы, записываемые в виде , причем между величиной мнимой части и мнимой единицей не ставится знак операции умножения;

· строковые константы – любая последовательность символов (в том числе русские и греческие буквы), заключенные в кавычки (например , );

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


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

Использование в имени русских букв и пробелов запрещено .

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

В отличие от Pascal переменную Mathcad не нужно предварительно описывать – ее тип определяется автоматически при задании переменной конкретного значения.

Незаданные переменные выделяются на экране красным цветом .


Базовые арифметические операторы

Базовыми математическими операторами в Mathcad являются: сложение, вычитание, умножение, деление и возведение в степень. Операторы можно вводить либо печатая их, либо выбирая из панели инструментов Арифметика.

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