17586

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

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

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

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

Русский

2013-07-04

1.42 MB

15 чел.

ЛЕКЦИЯ 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 от каждого элемента матрицы и результатом также является матрица. Это иллюстрирует следующий фрагмент:

           

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

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


 

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

72434. ТЕОРИЯ СТАТИСТИКИ: КУРС ЛЕКЦИЙ 2.22 MB
  Однако представители этих двух школ не дошли до теоретического обобщения практики учетно-статистических работ, до создания теории статистики. Эта задача была решена позднее, в XIX веке бельгийским ученым Адольфом Кетле, который дал определение предмета статистики, раскрыл суть ее методов.
72436. Образование государства украинского, название «Украина». Национальности, населяющие Украину на современном этапе 551 KB
  Так люди слепленные апостолом Петром расселились по Украине. Вертеп появился в Украине в 17 в. Хотя в Украине под влиянием Литвы и Польши контролировали большую часть Украины празднование нового года 1 января существовала с 14 в.
72438. Функциональные асимметрии больших полушарий мозга, как задатки специальных способностей 427.5 KB
  Природа задатков скрыта во врожденных конструктивных и функциональных особенностях головного мозга человека. Стараясь объяснить отличие между высшей нервной деятельностью человека и животного Павлов подчеркивал что в психике человека имеет место чрезвычайное приложение речь.
72440. СТАНДАРТЫ ВРАЧЕБНОЙ ПОМОЩИ ПРИ КАТАСТРОФАХ 253 KB
  В медицине катастроф необходима стандартизация действий врача, учитывая экстремальность ситуаций, массовый характер и однотипность поражений. Врач скорой помощи, первым прибывший на место катастрофы принимает руководство на себя. Основоположник сортировки Н.Н. Пирогов говорил, что при наличии большого количества...
72441. Лекции по деталям машин 63 KB
  Чтобы не потеряться в океане учебной и научной информации студенту необходим хотя бы простенький компас, которым, надеюсь, послужит предлагаемый конспект лекций. Именно для этого он и создавался. Учитывая же скромный объём, конспект является, образно говоря, путеводителем по незнакомой стране, и не может заменить само путешествие.
72442. История Курского края 1.14 MB
  Краеведение принадлежит к комплексным наукам. В самом термине «краеведение» заключено его определение. Оно изучает природу, историю, хозяйство, население края, его культуру, быт, то есть данная наука близка истории и географии, археологии и искусствоведению, этнографии и другим наукам.