17586

МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ В MATHCAD

Лабораторная работа

Информатика, кибернетика и программирование

ЛЕКЦИЯ 4. Модульное программирование в Mathcad Общая идея модульного программирования состоит в следующем: реализации вычислительных процессов в виде отдельных программных единиц модулей; в обращении к этим модулям в других программах с передачей данных необход

Русский

2013-07-04

1.42 MB

18 чел.

ЛЕКЦИЯ 4.

Модульное программирование в Mathcad

 Общая идея модульного программирования состоит в следующем:

реализации вычислительных процессов в виде отдельных программных единиц - модулей;

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

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

Модульное программирование в пакете Mathcad можно реализовать двумя методами:

модульное программирование в пределах одного документа Mathcad;

модульное программирование в нескольких документах Mathcad.

4.1. Модульное  программирование  в  одном документа

Этот метод характеризуется тем, что:

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

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

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

                                                   

используя формулу Симпсона с автоматическим выбором числа узлов. При этом программа-функция Simpson(f,a,b,N) вычисляет определенный интеграл по формуле Симпсона при фиксированном числе интервалов N, а программа-функция Adapt(f,a,b) выбирает по заданной точности вычисления интеграла (равной 10-8 ) количество интервалов.

 

Используя эти программы - функции вычислим определенный интеграл от функции  f(x) = x2  на отрезке [0,1]. Точное значение интеграла равно 1/3=0.33333333333333... Обращение к программе-функции Adapt дает результат

                                

Перед обращением  к программе-функции Adapt необходимо описать функцию пользователя f(x) в виде

                                        f(x) : = x2,

так как имя функции f(x) используется в качестве фактического параметра.

4.2. Модульное    программирование

в   нескольких   документах   Mathcad

В предыдущем способе реализации модульного программирования описание модулей (функций пользователя и программ-функций) и их вызов находится в одном документе. Такой способ имеет ряд недостатков:

невозможность  параллельной разработки программ несколькими разработчиками;

невозможность  "автономной" отладки  программ-функций и их модификации  в процессе эксплуатации программного обеспечения;

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

Для преодоления этих недостатков  описание программы-функции выполняют в одном документе MathCAD, а  ее вызов размещается в другом документе (этот прием широко используется в современных алгоритмических языках высокого уровня). Однако при этом возникает вопрос : как при вызове программы-функции в одном документе "присоединить" файл с другим документом MathCAD, в котором находится описание вызываемой программы-функции? Для такого присоединения служит специальный оператор Reference, который записывается в виде, показанном на рис. 4.1.

                    Рис. 4.1. Структура  оператора   Reference

Оператор Reference вставляется в текст документа, в котором вызывается программа-функция перед ее вызовом. Для вставки этого оператора необходимо выполнить следующие шаги:

 Шаг 1. Щелкнуть левой кнопкой мыши в том месте, куда будет вставлен оператор Reference.

 Шаг 2. Обратиться к пункту меню  Insert  и выполнить команду Reference.

 Шаг 3. В  поле ввода появившегося диалогового окна ввести полное имя файла, содержащего документ с описанием вызываемой функции. Для задания имени можно щелкнуть кнопку Browse и в появившемся диалоговом окне указать диск, папку и имя файла ( в поле ввода отразится полное имя файла).

 Шаг 4. После выполненных установок щелкнуть кнопку  OK

После выполнения этих шагов в документе появится оператор Reference, показанный на рис. 4.1.

Таким образом реализация модульного программирования в нескольких документах МаthCAD включает следующие этапы (которые будем иллюстрировать на примере вычисления определенного интеграла с использованием программ-функций примера 1) :

Описание в документе МаthCAD необходимых программ-функций и сохранение этого документа в файле в нужной папке и под нужном именем (в нашем примере документ будет включать описание двух программ-функций Simpson и Adapt и документ будет сохранен на диске D: в папке MathCad_Apll в файле под именем Adapt_Integration.mcd).

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

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

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

ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ

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

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

                                                                                                      

Значок  кнопки

      Назначение  наборной панели

         

Ввод знаков арифметических операций, цифр

       

   Ввод знаков отношений, используемых    при записи условий

       

   Построение различных графиков

       

    Ввод матричные  операторы

       

    Ввод операторов суммирования,    интегрирования и дифференцирования

       

Ввод конструкций  программирования   ( панель Программирования)

       

    Ввод операторов символьной

    математики

       

    Ввод букв греческого алфавита

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

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

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

Функции  пользователя. В Mathcad могут быть также определены так называемые функции пользователя ( называемые также локальными функциями ). В отличие от простой переменной, значение такой функции зависит от значений аргументов, а в отличии от встроенной функции ( например, функция sin(x)) эта функция определяется самим пользователем. Для того, чтобы использовать функцию пользователя в вычислениях ее обязательно перед этим нужно определить.

Определение  функции пользователя имеет вид

имя—функции(список формальных параметров) : =

арифметическое выражение, зависящее от формальных параметров 

Пример 2. Определим функцию dist(x,y), вычисляющую расстояние между точкой с координатами (x,y) и началом координат.  Вводим следующие символы:

                      dist(x,y): x^2+y^2

Ввод двоеточия “ : ” вставляет на экране символ : = и на экране появляется следующее описание  функции пользователя

                   dist(x,y) : =

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

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

Возможные варианты использования функции dist(x,y), описанной в вышеприведенном примере :

Напомним, что описание  функции пользователя должно опережать обращение к ней.

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

 используя выделяющую рамку, выделить объекты, к которым применяется оператор;

нажать одновременно клавиши [ Ctrl ] и "Минус", чтобы применить оператор векторизации ( объекты, к которым применяется оператор  вверху имеют стрелку).

Оператор векторизации меняет смысл операций. Например, А некоторая матрица. Тогда запись  exp(A) некорректна, так как аргументом функции exp  должна быть простая переменная, а не матрица. Применение к этой функции оператора векторизации приводит к вычислению функции exp от каждого элемента матрицы и результатом также является матрица. Это иллюстрирует следующий фрагмент:

           

Аналогичный пример можно привести с функцией "корень квадратный"

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


 

А также другие работы, которые могут Вас заинтересовать

24793. ИННОВАЦИОННЫЙ МЕНЕДЖМЕНТ. Технологические уклады, основные периоды. Прогноз 73 KB
  Инновации и жизненный цикл товара. Этап внедрения начинается с момента появления товара на тынке. Цены на первом этапе могут быть низкими либо высокими в зависимости от специфики и особенностей товара и потребителя. Примером товара находящегося на первом этапе ЖЦТ может служить цифровая фотокамера.
24794. ГОСУДАРСТВЕННЫЕ И МУНИЦИПАЛЬНЫЕ ФИНАНСЫ. Структура государственных финансов РФ 120 KB
  Структура государственных финансов РФ. Структура государственных финансов . Структуру государственных финансов можно определять с двух точек зрения. Государственные финансы могут быть рассмотрены с точки зрения преемственности к тем или иным органам государственной власти или с позиции разделения государственных финансов на бюджетные и не бюджетные фонды.
24795. ГЕОПОЛИТИКА 61 KB
  Сущность содержание и структура системы национальной безопасности государства. Законе Российской Федерации О безопасности национальная безопасность трактуется как состояние защищенности жизненно важных интересов личности общества государства от внутренних и внешних угроз. Под национальной безопасностью страны необходимо понимать систему элементов связей и отношений обеспечивающую реализацию жизненно важных политических экономических военных гуманитарных экологических информационных и других интересов личности общества и государства....
24796. Конституционное право России. Конституционные основы организации публичной власти в Российской Федерации 116.5 KB
  Государственную власть в РФ осуществляют Президент РФ Федеральное Собрание парламент состоит из двух палат: Совета Федерации и Государственной Думы Правительство РФ суды РФ существует единая судебная система РФ ее высшими звеньями являются Конституционный Суд РФ Верховный Суд РФ и Высший Арбитражный Суд РФ. Экономические и политические основы конституционного строя Российской Федерации: понятие содержание правовое регулирование. Установленные Конституцией положения связанные с отношением государства к человеку служат...
24797. АДМИНИСТРАТИВНОЕ ПРАВО. Государственное управление как объект административно-правового регулирования 102.5 KB
  Государственное управление это один из видов деятельности государственных органов РФ по осуществлению государственной власти реализации государственновластных полномочий. €œО принципах и порядке разграничения предметов ведения и полномочий между органами государственной власти РФ и органами государственной власти субъектов РФ€. Ветви власти взаимосвязаны но в то же время характеризуются определенной самостоятельностью. Местные органы самоуправления не входят в систему органов государственной власти ст.
24798. ГРАЖДАНСКОЕ ПРАВО. Гражданские правоотношения: понятие, элементы, виды 131 KB
  Гражданские правоотношения: понятие элементы виды Гражданские правоотношения общественные отношения урегулированные нормами ГП это связь субъектов наделенных взаимными правами и обязанностями.Субъекты: лица обладающие гражданскими права ми и несущие гражданские обязанности в связи с участием в конкретном гражданском правоотношении.Объекты определенные цели на достижение которых направлены те или иные права. характер санкций применяемый в гражданском праве: Меры принуждения имеют имущественный характер и санкции являются...
24799. ТРУДОВОЕ ПРАВО. Понятие и содержание трудового договора 149 KB
  Понятие и содержание трудового договора В соответствии со ст. 15 Трудового кодекса Российской под трудовыми отношениями понимаются отношения основанные на соглашении между работником и работодателем о личном выполнении работником за плату трудовой функции то есть работы по определенной специальности квалификации или должности подчинении работника правилам внутреннего трудового распорядка при обеспечении надлежащих условий труда а также своевременной и в полном объеме выплате ему заработной платы. Трудовой договор один из основных...
24800. СОЦИОЛОГИЯ УПРАВЛЕНИЯ 119 KB
  Необходимость социального управления прежде всего обус ловлена разделением труда и потребностью в его кооперации. Ключевое понятие управления воздействие. Воздействие в социальных системах носит осознанный характер и поэтому может быть понято как такое воздействие субъекта управления на объект при котором имеется цель перевода последнего в желаемое состо яние.
24801. Экономическая теория. Экономическое понятие собственности и ее основные формы 297 KB
  Базируется на отсталых технологиях доминировании ручного труда многоукладности экономики. Уравнение уровня доходов не ставится главной целью государства а ставка делается на личную экономическую активность хозяйствующих субъектов; японская исходящая из большого различия между ростом производительности труда и уровнем оплаты труда. Постановка данной цели требует отказа общества от малоэффективного производства и труда. Реализация данной цели требует такой организации распределения при которой каждый участник производства мог бы получать...