Перед тем как использовать программу-функцию нужно ее описать. Описание программы-функции размещается в рабочем документе перед вызовом программы-функции и включает в себя заголовок функции и тело функции, соединенные в единое целое с помощью операции присваивания («:= »).
Заметим, что если программа используется для вычисления одного значения, то в своем заголовке она не содержит списка формальных параметров и называется программой-скаляром.
Программа-функция может не иметь формальных параметров и тогда, когда данные передаются через имена переменных, определенных выше описания программы-функции. Эти переменные будут являться глобальными для данной функции.
Технология создания программы-функции в рабочем документе MathCADсостоит из следующих шагов:
1. Ввести заголовок функции.
2. Ввести знак присваивания «: =».
3. Выполнить командуAddline,расположенную на панели ( Программирование). Появившейся на экране шаблон с вертикальной чертой и полями для ввода операторов будут составлять заготовку для тела программы-функции.
Графики всех функций из школьной программы | Часть 1
4. Вписать операторы в шаблон-заготовку. Тело программы-функции может включать любое число операторов: локальных операторов присваивания, условных операторов и операторов цикла, а также вызов других программ-функций.
5. Самоенижнее поле всегда предназначено для определения возвращаемого программой значения.
Пример 18. Требуется подготовить описание функции вычислить значения этой функции при х = 4.15 и g = 1.854.
Решение. Заметим, что при вычислении y можно обойтись без описания и использования пользовательской функции и тем более без программирования, как это показано на рис. 3, а. Использование функции следует из требования к задаче для простоты изложения.
Для нахождения значения функции «внутрь» программы-функции следует передать значения х и g, необходимые для выполнения вычислений внутри программы. Поэтому переменные х и g следует включить в список формальных параметров заголовка создаваемой функции. Назовем эту функцию – у. Тогда подготовка описания функции, и ее выполнение в соответствии с описанной технологией могут быть выполнены, как это представлено на рис. 4.
Рис. 3. Демонстрация элементов программирования простых выражений
В данном примере введена вспомогательная локальная переменная t для вычисления значения функции. И эта переменная расположена в последней строчке программного блока. На рис. 23, b, с приведены другие варианты решения поставленной задачи.
Рис. 4. Пошаговое создание и выполнение программы-функции
В примере, представленном на рис. 3, в первой колонке a для вычисления значения используется базовый набор средств без элементов программирования. Во второй b и третьей c колонках производятся точно такие же вычисления, но с использованием элементов программирования. Обе программы (b и с) можно считать эквивалентными, так как возвращают они одно и то же значение, которое располагается в последней строчке программируемой части. В (b и с) мы имеем дело с программой – скаляром, так как они используются для вычисления одного значения и не имеют формальных параметров.
Описание функции и оператор Return (MQL4)
Внутри программ (b и с) используются глобальные переменные g и – из документа. Значения этих переменных определены заранее. Обе программы из примера, представленного на рис. 3, в своей программируемой части содержат операторы присваивания с использованием локальных переменных. Переменные, созданные внутри программы с таким видом присваивания, являются внутренними, и доступ к ним может осуществляться только в самой программе.
1. В программной части используются глобальные переменные обычно только как операнды в выражениях.
2. Присвоить глобальным переменным значения внутри программы можно только локальным образом. После выхода из программы эти переменные сохраняют свои «глобальные» значения.
3. Использование «обычного» оператора присваивания «:=» в теле программы-функции приводит к синтаксической ошибке.
4. Последняя строка программы не должна содержать управляющих операторов. Эта строка задает значение, возвращаемое программой, т.е. получает результат вычислений и может содержать имя локальной переменной результата (рис. 4, с) или выражение, вычисляющее результат (рис. 4, b).
5. Обычно программа содержит больше чем две строки, поэтому рекомендуется сразу задавать блок из 5–6 маркеров.
6. Добавление недостающих полей для ввода дополнительных операторов производится с помощью кнопкиAddlineпанели программирования. При этом поле ввода добавляется внизу выделенного к этому моменту оператора.
7. Для удаления того или иного оператора или поля ввода из тела программы-функции, нужно заключить его выделить и нажать клавишу Delete>.
8. Программный блок можно создать и внутри уже заданного блока (вложенный блок). Для этого следует использовать один из стандартных способов: поставить курсор в маркер соответствующего оператора программирования и выполнитьAddline.
9. Иногда при написании программы бывает нужным добавить строку к уже созданному блоку. Чтобы это сделать, поставьте курсор в ту строку блока, выше или ниже которой должна быть введена строка, и нажмите клавишу. При этом строка будет выделена и можно будет произвести добавление одним из стандартных способов.
10. Положение вставляемого маркера определяется положением вертикальной черты курсора. Если она находится слева от выделенного выражения, то маркер будет добавлен выше выделенной строки, если справа – то ниже.
11. Чтобы развернуть курсор в нужную сторону, нажмите клавишу .
12. Чтобы добавить строку к целому блоку, его следует выделить, дважды нажав клавишу.
13. В том случае, если программа содержит блоки различных уровней, то для добавления строки, например, к первому блоку, нажмите клавишу несколько раз: при каждом нажатии будут выделяться блоки более низкого уровня.
Условный оператор if
1. При включении оператора if в блок программирования появляется шаблон с двумя полями ввода – справа и слева от оператора: ■ if■.
2. В поле ввода справа от оператора записывается условие. Для ввода условий следует использовать панель Boolean (Логические), где есть кнопки для проверки условий (=> ≤ ≥ *).
3. В поле ввода слева нужно ввести строку программы (или несколько строк), которая будет выполняться, если введенное условие истинно.
4. Если невыполнение условия должно привести к выполнению какой-либо другой строки (или нескольких строк), то можно в строке, следующей за оператором if, вставить оператор otherwise (иначе). В поле ввода слева от этого оператора надо ввести строку, которая будет выполняться только в том случае, если условие ложно.
5. Чаще всего оператор if используется для задания разрывных или кусочно-непрерывных функций.
Описание функции и примеры ее вызова представлены на рис. 6.
Рис. 6. Описание функции R (a, b, x),предназначенной
для вычисления корней квадратного уравнения
Пример 1. Требуется подготовить описание программы-функции
Решение. Из анализа аналитического выражения функции y видно, что функция является кусочно-непрерывной на числовой оси и алгоритм вычислений содержит три ветви. Вычисление значения y зависит от местоположения переменной x на числовой оси.
Для нахождения значения функции целесообразно ввести один формальный параметр, соответствующий переменной x. Спецификацию для этой функции можно записать следующим образом:
В описании функции требуется проверить три условия. В зависимости от результатов проверки этих условий применяется соответствующая условию вычислительная формула. Поэтому при программировании можно с проверкой каждого из условий связать условный оператор if, как это показано на рис.
7. А можно ограничиться проверкой двух условий и оператором else, учитывая тот факт, что функция задана на всей числовой оси, и исключение двух условий оставляет выполнение третьего условия. На рис. 8 представлен второй вариант функции-программы.
Рис. 7. Демонстрация элементов программирования ветвящихся процессов
Рис. 8. Демонстрация элементов программирования ветвящихся процессов
На рис. 9 представлены примеры программ-функций, реализующих вычисления, содержащие ветвящиеся процессы.
Рис. 9. Примеры программирования функций с проверкой условий.
Здесь x – глобальная переменная
Циклы с оператором for
1. После вставки оператора for в строку программы его сопровождают три поля ввода, как это показано на рис. 10.
Рис. 10. Шаблон оператора цикла for
2.В поле ввода после слова for следует указать имя переменной-счетчика. Это может быть любое имя, которое не использовалось ранее в программе. Внутри цикла можно использовать эту переменную в любых выражениях, нельзя только присваивать ей никакого значения.
3. В поле ввода после знака следует указать диапазон значений, которые будет принимать переменная-счетчик. Вместо диапазона в данном поле ввода можно указать имя некоторого массива (вектора или матрицы). В таком случае переменная-счетчик будет последовательно принимать значения всех элементов этого массива. Количество повторов цикла будет равно количеству элементов массива.
4. В поле ввода под словом for следует ввести тело цикла
Рекомендуемая последовательность действий при разработке программ-функций:
1. Подготовить спецификацию функции.
2. Разработать алгоритм решения.
3. Установить, какие переменные помимо формальных параметров (локальные, глобальные переменные) понадобятся для реализации алгоритма.
4. Описать алгоритм словами или в виде блок-схемы.
5. Описать алгоритм в виде программы-функции на языке MathCAD.
Задания
Задания для выполнения:
1. Подготовить описание функции, вычислить значения этой функции при x 1 и x 2.
№ | Система | X1, x2 |
1. | x 1=2.34; x 2= 5.65. | |
2. | x 1=0.564; x 2= 12.43. | |
3. | x 1=-43.67; x 2 = 5.09. | |
4. | x 1=-100.87; x 2=25.769. | |
5. | x 1=–987.76; x 2 = 43.78. | |
6. | x 1= 0.436; x 2 = 21.677. |
· Требуется определить функцию, которая выполняет представленные задания.
1. Дана последовательность целых чисел. Найти сумму минимального и максимального элементов в этой последовательности.
2. Дана последовательность из целых чисел. Найти количество элементов последовательности, не кратных числу 3.
3. Дана последовательность целых чисел. Найти количество четных элементов этой последовательности.
4. Дана последовательность целых чисел. Найти сумму нечетных элементов этой последовательности.
Пример. Требуется найти максимальный и минимальный элементы в заданном массиве.
Рис. 11. Блок-схема алгоритма Рис. 12. Блок-схема алгоритма
нахождения наибольшего значения нахождения наименьшего значения
1. Решение. Задача поиска наибольшего/наименьшего значений в заданном массиве относитсяк типовым циклическим алгоритмам, на рис. 30 и рис. 31 приведены блок-схемы этих алгоритмов.
2. Спецификацию для этой функции можно записать следующим образом:
3. Функция Fun(P) возвращает наибольшее и наименьшее значение в массиве Р.
4. Для создания циклов в MathCADпредусмотрено два оператора: forиwhile.Посколькуколичество повторений цикла заранее известно и связано с числом элементов заданного массива, в данном решении целесообразно использовать оператор for.
Обозначим имя переменной-счетчика, которая используется в операторе for– буквой t. Для описания алгоритма воспользуемся тем, что в операторе цикла для переменной-счетчика можно указать в качестве диапазона имя массива.
Как сказано выше, в таком случае переменная t будет последовательно принимать значения всех элементов указанного в for массива (в нашем случае – это массив Р ). Для обозначения максимального и минимального значений в программу введем две вспомогательные переменные Pmax и PMin. Тогда описание функции может быть представлено в виде, как это показано на рис. 13.
Рис. 13. Описание и использование функцииFun (P)
Отметим, что в данном случае в качестве результата работы функции нужно вернуть два значения, а специфика функции в MathCADтакова, что она позволяет вернуть только одно значение, но при этом сказано, что функция в качестве результата может вернуть, в том числе, вектор и матрицу. Поэтому при формировании результата мы определим его как вектор из двух значений.
Содержание отчета
Отчет должен содержать:
1. Название работы.
4. Результаты выполнения заданий (описание и скриншоты)
5. Вывод по работе.
6. Ответы на контрольные вопросы (устно)
6. Контрольные вопросы
1. Назовите специализированную панель для программирования в MathCAD. Перечислите основные команды.
2. Синтаксис оператора цикла с параметром в MathCAD.
3. Каким образом можно присвоить глобальным переменным значения внутри программы в MathCAD?
4. С помощью какой кнопки производится добавление недостающих полей для ввода дополнительных операторов в MathCAD?
5. Рассказать об операторе условия.
6. Рассказать об операторе цикла.
7. Результат работы программы при n =7
Источник: poisk-ru.ru
Описание программы — функции
Описание программы-функции включает в себя имя программы-функции, вслед за которым в круглых скобках указывается список формальных параметров через запятую, и тело программы-функции.
С помощью имени программы-функции осуществляется ее вызов и возвращение результата выполнения программы-функции в рабочий документ.
В качестве формальных параметров могут использоваться имена переменных, массивов и функций. Через формальные параметры в программу-функцию передаются данные, необходимые для выполнения вычислений внутри программы. Формальные параметры и все переменные, которые вводятся внутри программы-функции, являются локальными по отношению к остальному документу.
Список формальных параметров может отсутствовать и тогда данные передаются через переменные, определенные выше описания программы-функции.
Тело программы-функции представляет собой последовательность программных элементов, которые по смыслу соответствуют операторам языков программирования высокого уровня.
Порядок описания программы-функции:
— введите имя программы-функции, список формальных параметров, заключенный в круглые скобки, и нажмите знак присваивания “: =” (вводится двоеточием);
— на панели Программирование щелкните кнопку Add line ( добавить линию). На экране появится жирная вертикальная линия и столбец с двумя полями для ввода операторов программы-функции:
— щелкните по верхнему полю и введите первый оператор программы.
Вертикальная линия служит для определения программного блока, ее функция аналогична действию операторов “begin … end” языка Pascal. Программные блоки могут быть вложенными. Для добавления дополнительных операторов щелкните повторно на кнопке Add line (рис. 2.2).
Зная примерное число строк в программе, можно создать необходимое число полей ввода повторными нажатиями кнопки Add line, затем лишние поля очень легко удалить. Для удаления оператора программы или поля ввода, выделите его и нажмите клавишу Delete.
Рис. 2.2. Добавление операторов в программу-функцию
— заполните нижнее поле, оно задает значение, возвращаемое программой-функцией. В качестве этого значения может быть переменная, математическое выражение, вектор или матрица.
В качестве окончательного результата программы выдается последнее присвоенное значение. Чтобы подчеркнуть возврат программой-функцией конкретного значения, нужно это делать в последней строке программы (рис. 2.3).
Рис. 2.3. Описание программы-функции f(x)
Переменные внутри программы-функции являются локальными и действуют только в пределах этой программы. В приведенном примере формальным параметром является переменная x, тело программы-функции включает два локальных оператора присваивания. Значение переменной t определяет результат выполнения программы-функции.
Если результатом работы программы-функции являются несколько значений, то в программе нужно сформировать массив из этих значений и имя массива поместить в последней строке программы-функции.
Если программа уже создана, то вставить в нее дополнительную строку можно с помощью той же кнопки Add Line, предварительно поместив курсор в нужное место программы. Для размещения линии ввода в конкретном месте программы можно использовать мышь, клавиши управления курсором и клавишу пробел.
Источник: cyberpedia.su
Описание программы — функции
Белова С.В. Основные принципы программирования в среде Mathcad: [ Электронный ресурс ]: методические указания/ С.В. Белова// Сборник «Методические указания» Выпуск 5.-Электрон. текстовые дан.(1файл:600 Kb) – Волжский: ВПИ (филиал) ВолгГТУ, 2011.-Систем. требования:Windows 95 и выше; ПК с процессором 486+; CD-ROM.
Рассмотрены основные конструкции встроенного языка математического пакета Mathcad и их применение для программирования линейных, разветвляющихся и циклических алгоритмов.
Предназначены для студентов бакалавриата, обучающихся по направлению 240100.62 «Химическая технология». CD-ROM
университет, 2011 Ó Волжский
политехнический институт, 2011
ОГЛАВЛЕНИЕ
1. ЦЕЛЬ РАБОТЫ.. 4
2. СОЗДАНИЕ ПРОГРАММЫ.. 4
2.1. Описание программы — функции. 5
2.2. Оператор локального присваивания. 6
2.3. Вызов программы-функции. 7
3. ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ АЛГОРИТМОВ.. 8
4. ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ.. 9
4.1. Условная функция if 11
4.2. Условный оператор if 11
5. ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ.. 15
5.1. Цикл с параметром FOR.. 15
5.2. Цикл с предусловием WHILE. 18
5.3. Вложенные циклы.. 21
7. ОПЕРАТОР ПРЕРЫВАНИЯ BREAK И ОПЕРАТОР ПРОДОЛЖЕНИЯ CONTINUE 22
8. ОПЕРАТОР ВОЗВРАТА RETURN И ОПЕРАТОР ОБРАБОТКИ ОШИБОК ON ERROR.. 23
9. ЗАДАНИЯ ПО ЛАБОРАТОРНОЙ РАБОТЕ. 24
9.1. Линейные алгоритмы.. 24
9.2. Разветвляющиеся алгоритмы.. 25
9.3. Циклические алгоритмы.. 28
ЦЕЛЬ РАБОТЫ
Формирование и отработка навыков программирования линейных, разветвляющихся и циклических алгоритмов в среде Mathcad.
СОЗДАНИЕ ПРОГРАММЫ
Все MathCAD-программы строятся как программы-функции. Результатом программы-функции может быть число, вектор или матрица. Программирование состоит в том, что сначала в документе размещается описание программы-функции, а затем для ее выполнения обращаются к ней по имени.
Для записи программ в MathCAD’e предусмотрена специальная панель инструментов – Программирование (рис. 2.1), которую можно вызвать на экран из меню Вид – Панели инструментов – Программирование. Операторы программы нельзя набирать с клавиатуры, их необходимо вводить нажатием соответствующих кнопок панели Программирование, либо использовать сочетания клавиш, которые приведены в тексте всплывающей подсказки.
Рис. 2.1.Панель инструментов Программирование
Ниже в таблице 2.1 приведены операторы, находящиеся на панели программирования.
Таблица 2.1. Кнопки панели Программирование
Команда | Функция |
Add Line | Добавляет новую строку в программном блоке |
![]() |
Символ локального присваивания |
if | Условный оператор if |
otherwise | Оператор, который выполняется в том случае, если условие оператора if ложное |
for | Оператор цикла с параметром |
while | Оператор цикла с условием |
break | Оператор прерывания |
continue | Оператор продолжения |
return | Оператор возврата |
on error | Оператор обработки ошибок |
Описание программы — функции
Описание программы-функции включает в себя имя программы-функции, вслед за которым в круглых скобках указывается список формальных параметров через запятую, и тело программы-функции.
С помощью имени программы-функции осуществляется ее вызов и возвращение результата выполнения программы-функции в рабочий документ.
В качестве формальных параметров могут использоваться имена переменных, массивов и функций. Через формальные параметры в программу-функцию передаются данные, необходимые для выполнения вычислений внутри программы. Формальные параметры и все переменные, которые вводятся внутри программы-функции, являются локальными по отношению к остальному документу.
Список формальных параметров может отсутствовать и тогда данные передаются через переменные, определенные выше описания программы-функции.
Тело программы-функции представляет собой последовательность программных элементов, которые по смыслу соответствуют операторам языков программирования высокого уровня.
Порядок описания программы-функции:
— введите имя программы-функции, список формальных параметров, заключенный в круглые скобки, и нажмите знак присваивания “: =” (вводится двоеточием);
— на панели Программирование щелкните кнопку Add line ( добавить линию). На экране появится жирная вертикальная линия и столбец с двумя полями для ввода операторов программы-функции:
— щелкните по верхнему полю и введите первый оператор программы.
Вертикальная линия служит для определения программного блока, ее функция аналогична действию операторов “begin … end” языка Pascal. Программные блоки могут быть вложенными. Для добавления дополнительных операторов щелкните повторно на кнопке Add line (рис. 2.2).
Зная примерное число строк в программе, можно создать необходимое число полей ввода повторными нажатиями кнопки Add line, затем лишние поля очень легко удалить. Для удаления оператора программы или поля ввода, выделите его и нажмите клавишу Delete.
Рис. 2.2. Добавление операторов в программу-функцию
— заполните нижнее поле, оно задает значение, возвращаемое программой-функцией. В качестве этого значения может быть переменная, математическое выражение, вектор или матрица.
В качестве окончательного результата программы выдается последнее присвоенное значение. Чтобы подчеркнуть возврат программой-функцией конкретного значения, нужно это делать в последней строке программы (рис. 2.3).
Рис. 2.3. Описание программы-функции f(x)
Переменные внутри программы-функции являются локальными и действуют только в пределах этой программы. В приведенном примере формальным параметром является переменная x, тело программы-функции включает два локальных оператора присваивания. Значение переменной t определяет результат выполнения программы-функции.
Если результатом работы программы-функции являются несколько значений, то в программе нужно сформировать массив из этих значений и имя массива поместить в последней строке программы-функции.
Если программа уже создана, то вставить в нее дополнительную строку можно с помощью той же кнопки Add Line, предварительно поместив курсор в нужное место программы. Для размещения линии ввода в конкретном месте программы можно использовать мышь, клавиши управления курсором и клавишу пробел.
Источник: studopedia.ru