17584

ПРОГРАММИРОВАНИЕ C ИСПОЛЬЗОВАНИЕМ ПРОГРАММ ФУНКЦИЙ MATHCAD

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

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

Лекция 3 Программирование c использованием программ функций MathCad Реализовать тот или иной алгоритм вычисления в пакете Mathcad можно двумя способами: вставляя соответствующие операторы или функции в текст документа Mathcad. Такой способ называется программированием в те...

Русский

2013-07-04

366 KB

14 чел.

Лекция 3

Программирование c использованием программ функций MathCad

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

вставляя соответствующие операторы или функции в текст документа Mathcad. Такой способ называется программированием в тексте документа;

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

  •   описание программы-функции;
  •   вызов программы-функции.

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

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

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

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

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

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

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

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

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

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

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

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

                                                                                

                                                                   

                   

     

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

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

                           

 

Рис. 3.2.  Добавление операторов в тело программы-функции

заполнить самое нижнее поле ввода (поле 2), введя туда выражение, определяющее возвращаемое через имя программы-функции значение (см. рис. 3.2 ).

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

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

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

< имя - переменной >  < выражение >

Внимание ! Использование  "обычного" оператора присваивания        (обозначается  : = )  в теле программы-функции приводит к синтаксической ошибке.

   3.2. Обращение к программе-функции Mathcad

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

< имя - программы > ( список фактических параметров )

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

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

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

если формальным параметром является вектор или матрица, то фактическим должен быть вектор или матрица;

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

Замечание 3.2. Обращение к программе-функции должно находиться после описания программы-функции и к моменту обращения  фактические параметры должны быть определены. 

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

   

  

Заметим, что переменная z никак не связана с “локальной” переменной   z, используемой внутри тела программы-функции.

Замечание 3.3. Передать данные внутрь  программы-функции можно используя внутри программы переменные, определенные до описания программы-функции. Например:

  

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

Замечание 3.4. Имена фактических параметров при вызове программы-функции могут не совпадать с именами ее формальных параметров.

3.3. Программирование  в  программе-функции

линейных алгоритмов

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

 

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

 

Для этого введем следующее описание программы-функции

 

Программа  qq1 имеет четыре параметра: смысл первых трех понятен, а четвертый определяет знак перед корнем квадратным - задавая Sig1=1, получаем корень x1; Sig1= - 1, получаем корень x2. Программа реализует линейный алгоритм - все операторы выполняются всегда строго последовательно.

3.4. Программирование в программе-функции

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

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

Пример 3.3. Переменная “y” задается следующим выражением

     

                             y(х)  =

Видно, что алгоритм вычислений содержит две ветви и выбор зависит от значения переменной x.

Для программирования разветвляющихся алгоритмов в Mathcad имеется условная функция if и условный оператор. Используя эти конструкции можно "изменить" последовательное выполнение операторов. В этих конструкциях могут использоваться следующие новые понятия.

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

< выр. А > < знак отношения > < выр. В>,

где в качестве знака отношения выступают  символы, приведенные в таблице 3.1. Если заданное  отношение выполняется, то выражение отношений принимает значение  равное 1 ( "истина" ), в противном случае -  0 ( "ложь").

                                             Таблица 3.1

Знак  отношения

Вводимые символы

=

[ Ctrl ] + [ = ]

<

[ < ]

>

[ > ]

[ Ctrl ]  + [ 0 ]

[ Ctrl ]  + [ 9 ]

[ Ctrl ]  + [ 3 ]

Пример 3.4.  Вычисление  выражения   отношений

 

                        

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

Пример 3.5.                           

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

Логическая операция  ИЛИ () .

Обозначается знаком  +  и записывается в  виде:

          <  логич.выр.1 >  +  <  логич.выр. 2>

Результат операции равен 0,  если оба логических выражения равны  0 и равен 1 для всех остальных значений  логических выражений.

Логическая операция  И() .

Вводится  знаком  * и записывается в  виде:

                <  логич.выр.1 >  *  <  логич.выр. 2>

Результат равен 1,  если оба логических выражения равны  1 и равен 0 для всех остальных значений  логических выражений    (сравните с логическим оператором  ИЛИ ).

Логическое  выражение. Логическим выражением называется конструкция, составленная из выражений отношений, знаков логических операций и круглых скобок.  Значение логического выражения вычисляется слева направо с учетом известного правила о приоритете операций. Список приоритетов (по их убыванию):

  •   круглые скобки;
  •   логическая операция  И ();
  •   логическая операция ИЛИ ().

Задача 3.1. Объясните порядок вычисления двух ниже приведенных логических выражений:

               

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

Условная функция if.  Эта функция записывается в виде:

if ( < логич. выраж. > , < ариф.выраж.1> , < ариф.выраж.2 > )

Правило вычисления условной функции if : если логическое выражение равно 1, то функция принимает значение равное значению арифметического выражения 1 ; если логическое выражение равно 0, то функция принимает значение равное значению арифметического выражения 2.

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

Пример 3.6. Реализуем алгоритм вычисления функции y(х) примера 2.3 в виде

Обращение  к этой программе-функции в тексте документа:

        

Условный оператор. Этот оператор используется только в теле программы-функции. Для его ввода необходимо щелкнуть на кнопке if панели программирования или клавиши [ } ]. На экране появляется конструкция с  двумя  полями ввода, изображенная на следующем рисунке.

                                               

В поле 2 вводится логическое выражение (в простейшем случае это выражение отношений). В поле 1 вводится выражение (как правило, арифметическое), значение которого используется, если проверяемое логическое выражение  принимает значение  1.

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

                             

 

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

заключить это поле в выделяющую рамку;

щелкнуть на кнопке “otherwise” панели программирования;

в оставшемся поле введите соответствующее выражение.

 

Пример 3.7. Составим программу-функцию, вычисляющую функцию y(x), заданную в примере 3.3. Для этого введем описание  следующей программы-функции:

Обращение к этой программе-функции имеет вид:

             .

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

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

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

z( t ) =

В рабочий документ введем описание следующей программы-функции

     

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

Обращение к этой программе - функции имеет вид:

Если в поле 3 ввести  оператор без слова otherwise, то этот оператор будет выполняться всегда вне зависимости от выполнения выше заданных условных операторов.


 

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

34137. Международный рынок капитала 16.73 KB
  В современных условиях благодаря своим масштабам мировой рынок капитала превратился в мощный фактор развития процесса интернационализации мирового хозяйства стал источником ресурсов для всех стран мирового сообщества. Практика привлечения иностранных инвестиций имеет вековые традиции. В конце XIX века ее использовали США и другие индустриально развитие страны что позволило им создать передовую по тем временам экономику. Благодаря возможности сочетания этих форм в мировом распределении капиталов могут участвовать все страны деловые структуры...
34138. Россия в системе международных кредитно-финансовых отношений 22.88 KB
  В настоящее время в России перспективы для инвесторов слишком многообещающие чтобы их игнорировать и это несмотря на внутренний и внешний дефолт. В суммарном ВВП всех новых рынков доля России свыше 25. По самым скромным расчетам у России больше природных ресурсов 102 трлн.
34139. Россия в СНГ: новые формы экономического сотрудничества 18.98 KB
  Россия в СНГ: новые формы экономического сотрудничества. Россия является крупнейшим государствомучастником СНГ. Составляя более половины населения и свыше 60 совокупного дохода Содружества она занимает лидирующее положение в реформировании экономики обладая наиболее емким рынком оказывает наиболее существенное влияние на развитие ситуации в СНГ. не определяла тип политического развития других стран СНГ направленность движения конституционные параметры политические институты во многих постсоветских государствах формировались не без...
34140. Экономическая безопасность. Проблемы экономической безопасности России 17.53 KB
  Проблемы экономической безопасности России. Исследование проблем экономической безопасности России по праву заняло в настоящее время ведущее место в работе российских научноисследовательских и аналитических центров. В сущности современное социальноэкономической положение России таково что какое бы исследование в той или иной сфере ни предпринимали российские экономисты они не могут не затронуть проблем экономической безопасности страны. В основе повышенного внимания к проблеме экономической безопасности России лежат объективные процессы...
34141. Метод индукции и дедукции 14.81 KB
  Исследуя экономические процессы и явления общества экономика использует определенную совокупность методов познания. Метод научной абстракции выделяет главное в объекте исследования при отвлечении абстрагировании от несущественного случайного временного непостоянного. Исторический метод. Логический метод позволяет правильно применять законы мыслительной деятельности обосновывающие правила перехода от одних суждений к другим и делать обоснованные выводы глубже понимать причинноследственные связи складывающиеся между процессами и...
34142. Экономические ресурсы и финансовые ресурсы 16.13 KB
  Экономические ресурсы подразделяются на следующие виды: природные сырьевые географические трудовые материальные финансовые и информационные. Природные ресурсы это земля ее недра леса вода воздух месторождения полезных ископаемых климатические и рекреационные ресурсы и др...
34143. Производство 16.09 KB
  Исходным пунктом является производство в котором происходит само создание экономических благ материаль ных благ и услуг необходимых для существования и развития человека. Распределение определяет долю каждого человека в произведенных продуктах зависит от общего количества созданных благ и от конкретного вклада отдельного экономического субъекта в производство. Третий этап кругооборота экономических благ обмен он охватывает систему связей и отношений позволяющую производителям обмениваться продуктами своего труда т.
34144. Собственность 16.99 KB
  В определенных исторических условиях отражался конкретный тип отношений собственности. Право собственности как право конкретных субъектов на определенные объекты имущество сводится к набору прав: праву владения праву пользования и праву распоряжения имуществом. В хозяйственной практике признаются два основных типа собственности: частная и общественная. Основные типы и формы собственности В настоящее время выделяют следующие формы собственности: 1 государственную; 2 собственность республик входящих в Российскую Федерацию автономных...
34145. Субъект собственности (собственник) 17.41 KB
  Экономическое содержание собственности имеет две стороны: субъект собственник и объект имущество. Объектом собственности является все то что включено в сферу жизнедеятельности субъекта а также его производственной деятельности. Субъектами собственности являются отдельные люди их группы государство и т. Итак в экономическом содержании собственности надо различать две стороны: 1 материальновещественную объекты собственности имущество; 2 социальноэкономическую отношения между людьми в связи с их присвоением.