Какие блоки могут содержаться в документе mathcad
Перейти к содержимому

Какие блоки могут содержаться в документе mathcad

  • автор:

Какие блоки могут содержаться в документе mathcad

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

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

Каждый блок решения может иметь только одну функцию решения. Однако если в конце одного блока решения определить какую-либо функцию, например f(a) := find(x) , то ее можно будет использовать в другом блоке решения. Первый блок решения называется параметризованный блок решения.

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

Преимущества блока решения

• Можно ставить задачи в естественной математической нотации. Решаемые уравнения выражены в явном виде, а не спрятаны в определениях векторов и матриц или в определениях решателя.

• Можно задавать ограничения для поиска необходимого решения в определенной области пространства решений.

• Функции блока решения автоматически выбирают подходящий алгоритм для решения поставленной задачи.

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

• Можно перемещать отдельные области внутри блока решения, а также перемещать всю область блока решения внутри документа.

Какие блоки могут содержаться в документе mathcad

Методические указания

к лабораторной работе

MathCAD 2000

Освоение прикладной системы MathCAD2000

1. Цель работы

Изучение основ программирования в системе MathCAD2000

2 Задачи работы

Освоить приемы работы с системой MathCAD2000

3 Содержание работы

3.1 Запустить приложение MathCAD2000.

3.2 Ознакомиться с областями экрана, освоить работу с панелями инструментов. Поочередно включить несколько пунктов панели “Математика”, ознакомиться с принципом их расположения и вызова их опций.

3.3 Ознакомиться с основными приемами редактирования документа.

3.4 Вычислить определенный интеграл от заданной преподавателем функции (приложение А).

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

3.6 Сохранить результаты в файле с введением необходимых комментариев и оформить отчет.

4 Требования к отчету

Отчет должен содержать:

– название работы, постановку задачи исследования, результаты вычислений, а также сведения о последовательности ее выполнения;

– ответы на контрольные вопросы.

5 Рекомендуемая литература

5.1 Очков В.Ф. MathCAD7 Pro для студентов и инженеров.-М.: Компьютер Пресс, 1998.-384.

5.2 Плис А.И., Сливина Н.А. MathCAD: математический практикум для экономистов и инженеров: Учебное пособие.-М.: Финансы и статистика, 1999.- 656с.

6 Общие положения

Широкую известность и заслуженную популярность еще в середине 80-х годов приобрели интегрированные системы для автоматизации математических расчетов класса MathCAD, разработанные фирмой MathSoft (США). По сей день они остаются единственными математическими системами, в которых описание решения математических задач дается с помощью привычных математических формул и знаков. Такой же вид имеют и результаты вычислений. Так что системы MathCAD вполне оправдывают аббревиатуру CAD (Computer Aided Design), говорящую о принадлежности к наиболее сложным и продвинутым системам автоматического проектирования — САПР. Можно сказать, что MathCAD — своего рода САПР в математике. При этом особо важно отметить, что MathCAD не только средство для решения математических задач. Это, по существу, мощная математическая система, позволяющая готовить на высочайшем полиграфическом уровне любые относящиеся к науке и технике материалы: документацию, научные отчеты, книги и статьи, диссертации, дипломные и курсовые проекты и т. д. При этом в них одновременно могут присутствовать тексты сложного вида, любые математические формулы, графики функций и различные иллюстративные материалы. Позволяет MathCAD2000 готовить и высококачественные электронные книги с гипертекстовыми ссылками.

Пакет MathCAD загружается либо через кнопку Пуск, пункты Программы и MathCAD Professional 2000, либо можно дважды щелкнуть на ярлыке на рабочем столе Windows 98. . Появляется окно системы (рисунок 1).

Сразу после запуска система готова к созданию документа с необходимыми пользователю вычислениями. Первая же кнопка панели инструментов (с изображением чистого листка бумаги) Новый позволяет начать подготовку нового документа. Соответствующее ему окно редактирования получает название Безимени: N, где N — порядковый номер документа, который начинается с цифры 1. Вначале окно редактирования очищено.

Пользовательский интерфейс системы создан так, что пользователь, имеющий элементарные навыки работы с Windows-приложениями, может сразу начать работу с MathCAD. Интерфейс системы внешне очень напоминает интерфейс широко известных текстовых процессоров Word6.0/97 под Windows 95/98.

Вторая строка окна системы — главное меню. Некоторые его пункты будут описаны в дальнейшем, пока же отметим, что работа с документами MathCAD обычно не требует обязательного использования возможностей главного меню, так как основные из них дублируются кнопками быстрого управления. Панели (строки) с ними находятся под строкой главного меню. Их можно выводить на экран или убирать с него с помощью соответствующих опций позиции Вид главного меню. Обычно имеются две такие панели: панель инструментов (дублирующая ряд наиболее распространенных команд и операций) и панель форматирования для выбора типа и размера шрифтов и способа выравнивания текстовых комментариев. Для удобства также можно вывести панель математических символов и операторов (Математика). Она служит для вывода заготовок — шаблонов математических знаков (цифр, знаков арифметических операций, матриц, знаков интегралов, производных и т. д.) (рисунок 2).

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

Кнопки операций с файлами.

Документы системы MathCAD являются файлами, т. е. имеющими имена блоками хранения информации на магнитных дисках. Файлы можно создавать, загружать (открывать), записывать и распечатывать на принтере. Возможные операции с файлами представлены в панели инструментов первой группой из трех кнопок: 1 – (Новый) — создание нового документа с очисткой окна редактирования; 2 – (Открыть) — загрузка ранее созданного документа из диалогового окна; 3 – (Сохранить) — запись текущего документа с его именем.

Печать и контроль документов.

Эта группа представлена тремя кнопками: 4 – (Печать) — распечатка документа на принтере; 5 — (Просмотр) — предварительный просмотр документа; 6 — (Проверка) — проверка орфографии документа.

Кнопки операций редактирования.

Следующие четыре кнопки служат для выполнения операций редактирования документов: 7 — (Вырезать) — перенос выделенной части документа в буфер обмена (Clipboard) с очисткой этой части документа; 8 — (Копировать) — копирование выделенной части документа в буфер обмена с сохранением выделенной части документа; 9 — (Вставить) — перенос содержимого буфера обмена в окно редактирования на место, указанное курсором мыши; 10 — (Отменить) — отмена предшествующей операции редактирования.

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

Кнопки размещения блоков.

Документы состоят из различных блоков: текстовых, формульных, графических и т. д. Блоки просматриваются системой, интерпретируются и исполняются. Просмотр идет справа налево и снизу вверх. Две операции размещения блоков представлены кнопками следующей группы: 11 — (Выровнять по горизонтали) — блоки выравниваются по горизонтали; 12 — (Выровнять вниз) — блоки выравниваются по вертикали, располагаясь сверху вниз.

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

Кнопки операций с выражениями.

Формульные блоки часто являются вычисляемыми выражениями или выражениями, входящими в состав заданных пользователем новых функций. Для работы с выражениями служат пиктограммы: 13 -(Вставить функции) — вставка функции из списка, появляющегося в диалоговом окне; 14 — (Вставить единицы измерений) — вставка единиц измерения; 15 — (Вычислить) — вычисление выделенного выражения.

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

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

16 -(Включение гиперссылки) — обеспечивает создание гиперссылки;

17 -(Мастер компонентов) — открывает окно Мастера, дающего удобный доступ ко всем компонентам системы; 18 -(Запуск системы MathConnex) — запуск системы для стимулирования блочно-заданных устройств.

Кнопки управления ресурсами

Заключительная группа из двух пиктограмм обеспечивает обращение к центру ресурсов системы и к встроенной справочной базе данных системы: 19 — (Центр ресурсов) — дает доступ к центру ресурсов; 20 — (Справка) — дает доступ к ресурсам справочной базы данных системы

Четвертая строка верхней части экрана содержит типовые средства управления шрифтами: переключатели типа символов, набора гарнитур и размеров шрифтов, три пиктограммы типа шрифтов (полужирный, наклонный, или курсивный, и подчеркнутый), а также три пиктограммы расположения букв в строке (рядом, надстрочное и подстрочное) (рисунок 4).

1 –переключатель выбора стилей; 2 –переключатель выбора набора символов; 3 –переключатель выбора размеров символов; 4 –установка жирных символов; 5 –установка наклонных символов; 6 –установка подчеркнутых символов; 7 –установка левостороннего выравнивания; 8 –установка выравнивания по центру; 9 –установка правостороннего выравнивания.

В пятой строке размещена панель математических символов и операторов.

1 – арифметические инструменты; 2 – инструменты графиков; 3 – векторные и матричные операции; 4 – инструменты некоторых знаков; 5 – операторы математического анализа; 6 – панель логики; 7 – инструменты программирования; 8 –символы греческого алфавита; 9 –символические операторы

Редактирование документа – это изменение его вида и параметров. Система имеет мощный редактор документов. Документом называется полное математическое описание алгоритмов решения задач. Документ, в свою очередь, состоит из блоков, т.е. отдельных частей. Блоки могут быть трех видов – текстовые, вычислительные и графические. Каждый блок занимает на экране некоторое пространство, ограниченное прямоугольной областью.

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

Для ввода текста достаточно ввести знак “(кавычки). Текущее положение курсора окажется в обрамлении рамки. В эту рамку (блок) можно вводить текст. По мере ввода текста эта рамка автоматически увеличивается.

Текстовая область может иметь произвольные размеры и располагаться в любом месте рабочего документа. При этом нужно установить тот шрифт, который необходим для ввода текста. Этот шрифт будет действовать только для текстовых областей. Для сохранения единого стиля всего документа можно установить тот же стиль для переменных (Variables) и для постоянных (Constants) в переключателе выбора стилей.

Необходимо отметить, что курсор MathCAD принимает три различные формы: визира – знак «плюс» красного цвета, маркера ввода текста – вертикальная красная черточка, маркера ввода математических выражений – уголок («клюшка») синего цвета, расположение которого изменяется при нажатии на клавишу Пробел.

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

Перенос, копирование, вставка и удаление фрагментов. Пункт меню Правка/Вырезать или нажатие комбинации клавиш Сtrl+X переносят (вырезают) выделенный объект документа в буфер обмена данных. Выделить объект можно сплошным или пунктирным прямоугольником. Для выделения сплошным прямоугольником необходимо ввести в объект курсор и дважды щелкнуть левой кнопкой мыши. Для пересылки выделенного объекта в буфер обмена можно использовать и нажатие клавиши F3.

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

Когда левая клавиша мыши будет отпущена, основной прямоугольник исчезнет, но все выделенные объекты останутся. Так можно выделить сразу несколько объектов.

Для выделения одиночных объектов целесообразно использовать мышь при нажатой и удерживаемой клавише Ctrl или Shift. Подведите указатель мыши к объекту и щелкните левой кнопкой мыши– объект будет обведен пунктирным прямоугольником. После этого переходите к следующему объекту. Группа выделенных объектов ведет себя как единый блок, который можно перетаскивать при нажатой левой кнопке мыши. Для переноса достаточно удерживать курсором мыши край выделения любого блока и добиться, чтобы курсор превратился в изображение ладони. Это будет означать возможность перемещения блоков. Напоминаем: если курсор приобретает вид двусторонних стрелок, значит, можно растянуть выделенный блок.

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

Можно также перетаскивать объекты из одного документа в другой, зацепив их курсором мыши ( в форме ладони), прямо из одного окна в другое – метод Drag and Drop (Перетащи и брось). Он намного облегчает перенос и делает его более наглядным. Если отпустить левую клавишу мыши, то объекты появятся в другом документе и исчезнут в первом (где они были до этого).

Пункт Правка/Выделить все или нажатие комбинации клавиш Ctrl+A выделяют все объекты пунктирными прямоугольниками. Это позволяет не только наблюдать взаимное расположение блоков, но и ясно видеть степень их совмещения. Чтобы избежать последнего, щелкните по пункту Формат главного меню, а затем в падающем меню – по пункту Отделить области.

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

Редактирование резко ускоряется и упрощается при использовании блочных команд:F2 – помещает копию блока в специальный буфер, т.е. место в памяти, хранящее данные о блоке (сам блок сохраняется); F3 – стирает блок и помещает в буфер его копию; F4 – помещает копию блока из буфера на место документа, указанное текущим положением курсора, если это место не занято другим блоком; Ctrl+F9 – вводит пустую строку между блоками в месте, указанном положением курсора; Ctrl+F10 – уничтожает пустую строку между блоками в месте, указанном положением курсора.

Основные приемы работы.

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

Рассмотрим несколько примеров.

1-й пример. Требуется вычислить определенный интеграл. Для этого вначале надо вывести панель “Матанализ”; ее пиктограмма в строке инструментов имеет знаки интеграла и производной. Затем следует установить визир в то место экрана, куда выводится шаблон, и на панели сделать активной пиктограмму с изображением знака определенного интеграла. В составе сложных шаблонов часто встречаются шаблоны для ввода отдельных данных. Они имеют вид небольших черных квадратиков. В шаблоне интеграла их четыре: для ввода верхнего и нижнего пределов интегрирования, для задания подынтегральной функции и для указания имени переменной, по которой идет интегрирование.

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

Для ввода подынтегральной функции в приведенном примере требуется совершить следующие действия (рисунок 6):

а) установив курсор мыши в стороне от места ввода, вывести панель набора арифметических операторов;

б) подвести курсор мыши под шаблон ввода функции и щелкнуть левой клавишей для фиксации начала ввода;

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

г) провести ввод выражения под знаком квадратного корня (при этом возможно редактирование данных с помощью стандартных операций редактирования). Для возведения в степень пользуемся соответствующей кнопкой на панели “Арифметика”.

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

Для того чтобы можно вычислить выражение, зависящее от каких-либо переменных, их значения должны быть определены.

Для этого нужно:

– ввести имя переменной;

– ввести двоеточие, что приведет к появлению знака присваивания := и следующего за ним поля ввода;

– напечатать в поле ввода число или выражение. MathCad вычислит соответствующее значение и присвоит его имени переменной.

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

Для того чтобы получить числовой результат, нужно:

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

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

2-й пример. Для задания переменной х=1 и вычисления значения функции sin(x) можно воспользоваться вводом с клавиатуры.

Лекція№10 — Программирование в системе MathCAD

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

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

Как правило, при использовании функций, встроенных в систему MathCAD, пользователи не задумываются о том, на основании каких методов и решений достигается цель, поставленная перед функцией. Такая встроенная функция используется по типу «черного ящика» – пользователь познакомился с ее описанием/спецификацией, вызвал для решения, получил ответ.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Если значение переменной или функции присваивается в программе посредством оператора «» , то такая переменная или функция будет являться локальной. То есть она будет видимой только в рамках программы. Как-то повлиять на объекты вне программы она не сможет (равно, как извне к ней нельзя будет получить доступ).
  2. Если переменная или функция задается выше программы с помощью оператора «:=», то она в программе будет обладать глобальной видимостью. То есть такая переменная или функция будет доступна любому нижележащему объекту, в том числе и коду программ. Однако программа может только прочитать значение глобальной переменной или вызвать глобальную функцию. Изменить каким-либо образом значение глобальной переменной или функции программа не может. Это очень важно учитывать при написании алгоритмов.
  3. Если программа должна осуществлять какую-то модификацию объекта, то результат своей работы она должнавозвращать.

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

4.3. Описание программы-функции

Перед тем как использовать программу-функцию нужно ее описать. Описание программы-функции размещается в рабочем документе перед вызовом программы-функции и включает в себя заголовок функции и тело функции, соединенные в единое целое с помощью операции присваивания («:=»).

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

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

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

  1. Ввести заголовок функции.
  2. Ввести знак присваивания «:=».
  3. Выполнить команду Add line, расположенную на панели Programming (Программирование). Появившейся на экране шаблон с вертикальной чертой и полями для ввода операторов будут составлять заготовку для тела программы-функции.
  4. Вписать операторы в шаблон-заготовку. Тело программы-функции может включать любое число операторов: локальных операторов присваивания, условных операторов и операторов цикла, а также вызов других программ-функций.
  5. Самое нижнее поле всегда предназначено для определения возвращаемого программой значения.

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

Решение. Заметим, что при вычислении y можно обойтись без описания и использования пользовательской функции и тем более без программирования, как это показано на рис. 8.4, a. Использование функции следует из требования к задаче для простоты изложения. Для нахождения значения функции «внутрь» программы-функции следует передать значения x и g, необходимые для выполнения вычислений внутри программы. Поэтому переменные x и g следует включить в список формальных параметров заголовка создаваемой функции. Назовем эту функцию – y. Тогда подготовка описания функции, и ее выполнение в соответствии с описанной технологией могут быть выполнены, как это представлено на рис. 8.3.

Рис.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, в своей программируемой части содержат операторы присваивания с использованием локальных переменных. Переменные, созданные внутри программы с таким видом присваивания, являются внутренними, и доступ к ним может осуществляться только в самой программе.

  1. Впрограммной части используются глобальные переменные обычнотолько как операнды в выражениях.
  2. Присвоить глобальным переменным значения внутри программы можно только локальным образом. После выхода из программы эти переменные сохраняют свои «глобальные» значения.
  3. Использование «обычного» оператора присваивания «:=» в теле программы-функции приводит к синтаксической ошибке.
  4. Последняя строка программы не должна содержать управляющих операторов. Эта строка задает значение, возвращаемое программой, т.е. получает результат вычислений и может содержать имя локальной переменной результата (рис. 4.4, c) или выражение, вычисляющее результат (рис. 4.4, b).
  5. Обычно программа содержит больше чем две строки, поэтому рекомендуется сразу задавать блок из 5-6 маркеров.
  6. Добавление недостающих полей для ввода дополнительных операторов производится с помощью кнопки Add lineпанели программирования. При этом поле ввода добавляется внизу выделенного к этому моменту оператора.
  7. Для удаления того или иного оператора или поля ввода из тела программы-функции, нужно заключить его выделить и нажать клавишу Delete> .
  8. Программный блок можно создать и внутри уже заданного блока (вложенный блок). Для этого следует использовать один из стандартных способов: поставить курсор в маркер соответствующего оператора программирования и выполнить Add line.
  9. Иногда при написании программы бывает нужным добавить строку к уже созданному блоку. Чтобы это сделать, поставьте курсор в ту строку блока, выше или ниже которой должна быть введена строка, и нажмите клавишу Пробел>. При этом строка будет выделена и можно будет произвести добавление одним из стандартных способов.
  10. Положение вставляемого маркера определяется положением вертикальной черты курсора. Если она находится слева от выделенного выражения, то маркер будет добавлен выше выделенной строки, если справа – то ниже.
  11. Чтобы развернуть курсор в нужную сторону, нажмите клавишу Insert>.
  12. Чтобы добавить строку к целому блоку, его следует выделить, дважды нажав клавишу Пробел>.
  13. В том случае, если программа содержит блоки различных уровней, то для добавления строки, например, к первому блоку, нажмите клавишу Пробел> несколько раз: при каждом нажатии будут выделяться блоки более низкого уровня.

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

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

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

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

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

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

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

if .

  1. В поле ввода справа от оператора записывается условие. Для ввода условий следует использовать панельBoolean (Логические), где есть кнопки для проверки условий ( = >< ≥ ≤ ≠).
  2. В поле ввода слева нужно ввести строку программы (или несколько строк), которая будет выполняться, если введенное условие истинно.
  3. Если невыполнение условия должно привести к выполнению какой-либо другой строки (или нескольких строк), то можно в строке, следующей за оператором if , вставить оператор otherwise (иначе). В поле ввода слева от этого оператора надо ввести строку, которая будет выполняться только в том случае, если условие ложно.
  4. Чаще всего оператор if используется для задания разрывных или кусочно-непрерывных функций.

Описание функции и примеры ее вызова представлены на рис. 4.5.

Рис. 4.5. Описание функции R(a,b,x), предназначенной для вычисления корней квадратного уравнения

Пример 3. Требуется подготовить описание программы-функции и построить ее график на интервале [–2, 4] .

Решение. Из анализа аналитического выражения функции y видно, что функция является кусочно-непрерывной на числовой оси и алгоритм вычислений содержит три ветви. Вычисление значения y зависит от местоположения переменной x на числовой оси.

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

Функция f(x) возвращает значение функции, определенной в соответствии с условием примера 3. Здесь х – аргумент для вычисления.

В описании функции требуется проверить три условия. В зависимости от результатов проверки этих условий применяется соответствующая условию вычислительная формула. Поэтому при программировании можно с проверкой каждого из условий связать условный оператор if, как это показано на рис. 8.6. А можно ограничиться проверкой двух условий и оператором otherwise, учитывая тот факт, что функция задана на всей числовой оси, и исключение двух условий оставляет выполнение третьего условия. На рис. 8.7 представлен второй вариант функции-программы.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рис. 4.10. Описание и использование функции Fun(P)

Рис. 4.11. Описание и использование функции Fun(P)

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

,

где — заданное начальное приближение корня.

Решение.

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

Функция Fun(N,,x0) возвращает значение квадратного корня из числа N с заданной точностью вычислением –  и заданным начальным приближением корня – x0.

Анализ блок-схемы показывает, что в представленном циклическом процессе количество повторений цикла заранее неизвестно и напрямую зависит от точности вычислений. Поэтому пользоваться оператором for не является целесообразным. Для таких циклических процессов предусмотрен оператор цикла while.

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

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

  1. В поле ввода ниже слова while следует ввести тело цикла – одна или несколько строк программы, выполнение которых нужно повторить несколько раз.
  2. В поле ввода справа от слова while следует ввести условие. Оно будет проверяться после каждого выполнения тела цикла и в тот момент, когда условие перестанет выполняться, повторение тела цикла прекратится.

Из описания оператора цикла следует, что условие повторения цикла записывается cправа от слова while, а повторяемая часть цикла должна располагаться ниже конструкции while, а в описанной блок-схеме один из повторяемых операторов, а именно оператор, в котором вычисляется значение х, располагается до блока с условием повторения. Чтобы согласовать действия в блок-схеме с действиями оператора, сделаем перестановку — поставим определение переменной х после блока-условия. А для проверки условия введем вспомогательную переменную R, и для того, чтобы на начальном этапе пройти внутрь цикла для вычислений, определим начальное значение этой переменной значением, большим, чем указанная точность, например, значением, равным 1. И тогда функция может быть представлена в виде, как это показано на рис. 8.13.

Рис. 4.13. Описание и использование функции, предназначенной для извлечения квадратного корня

Пример 6. Требуется определить функцию, которая будет изменять значения элементов матрицы, имеющейnстрок и m столбцов следующим образом: заменить все неотрицательные элементы нулем, а отрицательные – единицей.

Решение. Алгоритм решения задача подробно рассмотрен в главе 1, блок-схема алгоритма представлена на рис. 1.11. Поэтому остановимся только на спецификации программы-функции, и ее описании. Спецификацию для этой функцииможно записать следующим образом:

Функция Fun(а,n,m) возвращает преобразованную матрицу а(nxm) по правилу: все неотрицательные элементы заменяются нулем, а отрицательные – единицей.

Анализ алгоритма показывает, что в данном случае мы имеем дело с двумя вложенными циклами, в которых переменныеi и j могут играть роль переменных-счетчиков операторов цикла типа for. Очевидно, что в качестве диапазона значений для этих переменных берется диапазон изменения индекса массива. На рис. 4.14 приведено определение функции. Описанная функция вызывается для изменения матрицы D, причем, измененная матрица заносится в матрицу T.

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

  1. Подготовить спецификацию функции.
  2. Разработать алгоритм решения.
  3. Установить, какие переменные помимо формальных параметров (локальные, глобальные переменные) понадобятся для реализации алгоритма.
  4. Описать алгоритм словами или в виде блок-схемы.
  5. Описать алгоритм в виде программы-функции на языке MathCAD.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *