Маткад примеры программ – Учебно-методическое пособие по информатике и икт (11 класс) по теме: Программа «MathCAD» | скачать бесплатно

Новосибирский государственный архитектурно-строительный университет - Сибстрин

Участницы Всероссийского форума студенческих спортивных клубов готовы к созданию ССК НГАСУ (Сибстрин)

С 6 по 11 ноября 2018 года в г. Санкт-Петербург прошел Всероссийский форум студенческих спортивных клубов. Его целью было подготовить федеральную команду студенческих лидеров, продвигающих ценности массового спорта, здорового образа жизни, патриотизма к совершению прорыва в развитии студенческого спорта. Всероссийский форум собрал более 600 участников, в том числе лучших представителей студенческих спортивных клубов со всей страны. Участие в нем приняли и студентки нашего университета Александра Боинская (321 группа) и Ксения Шевлякова (324 группа). «За пять дней продуктивной работы в рамках форума мы зарядились не только положительными эмоциями от всего происходящего, но и получили немало ценных знаний, полезных советов по личностному...

«Тройка» и ее болельщики – лучшие в студгородке!

13 ноября 2018 года в актовом зале НГАСУ (Сибстрин) состоялся гала-концерт ежегодного фестиваля «Творческая осень – Студгородок» среди общежитий университета, организованный Центром по внеучебной и воспитательной работе. Основной его целью является сплочение ребят, проживающих в общежитиях, а также выявление новых талантливых певцов, танцоров, чтецов, народных умельцев. В этот раз самые энергичные, талантливые и веселые студенты общежитий НГАСУ (Сибстрин) через танцы, песни, миниатюры и, конечно, студенческий юмор, должны были убедить зрителей и членов жюри, что наш студгородок живет под замечательным девизом «Быть здоровым и активным – это модно, позитивно!» И, стоит отметить, что с этой задачей ребята отлично справились.

В лаборатории кафедры СМСС прошла презентация современной бесконтактной системы измерения деформаций

13 ноября 2018 года на базе лаборатории кафедры Строительных материалов, стандартизации и сертификации НГАСУ (Сибстрин) прошла презентация бесконтактной системы измерения деформаций Vic-3D, работающей на основе метода корреляции цифровых изображений – DIC (Digital Image Correlatio). В мероприятии приняли участие преподаватели кафедр СМСС, ЖБК и МДК нашего университета, а также ИЦ «Строительные материалы и конструкции». В ходе презентации были продемонстрированы данные о деформированном состоянии образцов тяжелого и легкого бетона при испытании на лабораторном прессе.

Компания КНАУФ презентовала в библиотеку НГАСУ (Сибстрин) подарочные издания по архитектуре

Научно-техническая библиотека НГАСУ (Сибстрин) пополнилась новыми красочными изданиями по архитектуре. Книги В.И. Агронского «Архитектура России» и М. Берда «Гении современной архитектуры» были презентованы давним партнером университета, Новосибирским отделением Восточной сбытовой дирекции ООО «КНАУФ ГИПС». Привлекательный дизайн и актуальное содержание изданий позволит им стать жемчужинами фонда ценных книг библиотеки. Книги будут интересны и полезны как студентам, магистрантам, аспирантам и преподавателям Института архитектуры и градостроительства, так и всем желающим, готовым к новым открытиям и расширению кругозора. Познакомиться с изданиями можно в Читальном зале, расположенном в ком. 229а главного корпуса университета.

www.sibstrin.ru

Урок 11. Программирование в Mathcad

Mathcad содержит встроенную среду программирования, что значительно расширяет возможности вычислительного пакета. Операторы программирования находятся в меню Математика –> Операторы и символы –> Программирование:

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

Команды, которые мы изучим в этом уроке:

  1. «Программирование» – для создания программной структуры.
  2. «Локальное назначение» – знак «равно» для программ.
  3. «Оператор if»– оператор условия.
  4. «Оператор else»– альтернативный выбор.
  5. «Оператор return» – выход из программы.
  6. «Try / On Error» – применяется, если при выполнении программы может возникнуть ошибка.

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

«Программирование» и «Локальное определение»

Создадим программу, которая вычисляет разницу между двумя переменными a и b.

На рисунке ниже представлена структурная диаграмма программы:

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

Определите ввод переменных a и b:

Нажмите оператор «Программирование» на панели Математика –> Программирование:

Нажмите [Enter] для создания второй строки:

Переместите курсор в верхний местозаполнитель, затем вставьте оператор «Локальное назначение»:

Заполните местозаполнители слева и справа от оператора:

Переместите курсор в нижний местозаполнитель и вставьте оператор «return»:

Важно! Операторы программирования return, else, if, while и т.д. следует вставлять из меню программирования. Ввод этих команд с клавиатуры не приведет к желаемому результату.

Введите переменную в местозаполнитель:

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

У операторов программирования есть свои горячие клавиши. Попробуйте запомнить их:

  • «Программирование» – правая квадратная скобка ]
  • «Локальное назначение» – левая фигурная скобка {
  • «return»– [Ctrl+\]

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

Программе не обязательно задавать входные переменные:

Оператор «return» также не обязателен – программа примет за выходное значение последнее вычисление:

В нашей второй программе (которая более полезна, чем предыдущая) мы вычислим площадь поверхности цилиндра диаметром D и высотой H. Структурная диаграмма этой программы:

Программа и некоторые выходные результаты показаны ниже. Возможно, нужно запретить отрицательные входные значения…

Заметьте, что переменные внутри программы являются локальными. Локальная переменная не определяется вне программы:

Входным значениям можно дать числа с единицами измерения:

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

Поэтому единицы измерения следует использовать единообразно.

Булева алгебра

В программах часто используются равенства и неравенства. Операторы сравнения находятся в меню Математика –> Операторы и символы –> Операторы –> Сравнение:

Операторы сравнения дают результат 1 при истинном выражении и 0 при ложном:

Операторы сравнения можно сочетать. Пример таких сочетаний с оператором логического И:

Операторы

if и

else

Необходимо создать программу функции, которая принимает следующие значения:

Структурная диаграмма программы представлена ниже. Треугольник означает выбор между двумя или более альтернативными вариантами. Напишем программу, используя операторы if и else.

Введите имя функции и местозаполнитель для первой строки:

Нажмите if в меню программирования или с помощью горячей клавиши }. Появится вторая строка, которая относится к оператору if:

Введите критерий выбора и желаемое значение функции. Обратите внимание на серые линии справа:

Нажмите на внутреннюю серую линию (станет мигающей синей), затем вставьте оператор else. Появится еще одна строка, относящаяся к else:

Введите необходимую функцию под else. Внутренняя серая линия удлинится, что указывает на то, что операторы ifи else связаны между собой. Нажмите на нее, нажмите [Enter], затем вставьте оператор return:

Проверьте программу, построив график функции:

При работе с программой можно добавлять новые строки нажатием клавиши [Enter]. Где появится местозаполнитель, зависит от положения курсора. Выбрана внутренняя серая линия:

Курсор стоит за x­2:

Усложним функцию:

На структурной диаграмме показаны различные варианты выбора. Наиболее простой способ создать программу для этой задачи – использовать три различных операторов выбора (в Mathcad нет аналога оператора case).

Здесь важно правильно задать границы независимой переменной. Если Вы введете:

,

то точки 0 и 1 будут исключены, а Mathcad выдаст некорректный результат для этих значений.

Проверим программу для некоторых входных значений:

Для значений, не имеющих смысла, Mathcad выдаст сообщение об ошибке.

Функции в программах

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

Векторы и матрицы

Откройте Функции –> Все функции и откройте раздел Векторы и матрицы. Найдите функции last() и length(). Это функции для определения некоторых свойств вектора:

Функция length() определяет длину вектора, т.е. количество элементов в нем, а функция last() выводит индекс последнего элемента. По умолчанию в Mathcadнумерация элементов вектора начинается с нуля, поэтому у четвертого элемента массива индекс 3.

Теория чисел/комбинаторика

Наибольший общий делитель:

Наименьшее общее кратное:

Остаток от деления x на y:

Кусочно-непрерывные функции

Ступенчатая функция:

Разное

«Разное» содержит функцию time(), которая возвращает системное время момента активации функции.

Строковые функции

Строки в Mathcad заключаются в двойные кавычки:

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

Конкатенация строк:

Длина строки (включая пробелы):

Строки могут быть полезны для задания в программах сообщений об ошибках.

Усечение и округление

Наименьшее целое число, большее x:

Наибольшее целое число, меньшее x:

Округление:

Усечение:

Список функций Mathcad огромен. Два совета по ознакомлению с новыми функциями:

  1. Подведя указатель мыши к имени функции в списке, Вы увидите ее полное название и краткое описание.
  2. Если Вы вставите функцию в рабочую область, а затем нажмете [F1], Вы получите расширенное описание функции.

Try / On Error

Последняя команда, которую мы изучим в этом уроке, используется для указания, что должно быть сделано, если при выполнении программы возникает ошибка (например, деление на ноль). Если при выполнении программы в блоке tryвозникает ошибка, программа выполняет действия в блоке on error:

Ниже представлена программа с тремя операторами if внутри блока try:

При неверном вводе появится сообщение об ошибке. Таким образом, можно отследить большую часть ошибок, но не все:

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

Резюме

Мы изучили следующие элементы программирования:

  1. Входные данные – обычно вводятся как параметры функции.
  2. Первая строка программы – вводится с помощью ]. Больше линий – с помощью [Enter].
  3. Оператор локального определения – вводится с помощью {.
  4. В конструкциях выбора с помощью оператора ifприменяются операторы сравнения.
  5. If вводится с помощью }. За ifвводится логическое выражение, например x<0. Под оператором записывается алгоритм, который должен быть выполнен, если выражение после if верно.
  6. После if может следовать оператор else или другой оператор if.
  7. [Enter] добавляет новую строку в программу. Место появления новой строки зависит от позиции курсора до нажатия на [Enter].
  8. Вывод переменной осуществляется с помощью оператора return. Переменной может быть одиночная переменная, вектор или матрица, которые могут содержать как числовые значения, так и текст.
  9. Mathcadсодержит большое число встроенных функций, которые могут быть полезны при написании программ. Список функций с подсказками можно открыть по команде Функции –> Все функции.
  10. Используйте try / onerror, чтобы указывать на ошибки.

Другие интересные материалы

sapr-journal.ru

Программирование в MathCad

ФГБОУ ВПО «МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ ИНСТИТУТ ИМЕНИ М. Е. ЕВСЕВЬЕВА»

Факультет физико-математический

Кафедра информатики и вычислительной техники

Проект по имитационному моделированию в системах компьютерной математики на тему:

«Программирование в MathCAd»

Работу выполнила:студентка 2 курса группы МДМ-214 Д.А.Лапшина

Направление подготовки «Педагогическое образование».

Профиль подготовки «Математика. Информатика».

Работу проверила: Т.В. Кормилицына

Саранск 2015

Программирование в MathCAD

Панель инструментов Программирование

Язык программирования Mathcad

Для вставки программного кода в документы в Mathcad имеется специальная панель инструментов Программирование. Большинство кнопок этой панели выполнено в виде текстового представления операторов программирования, поэтому их смысл легко понятен.

Что такое программа?

Программа – это выражение содержащее более одного утверждения.

Основными инструментами работы в Mathcad являются математические выражения, переменные и функции.

Программирование в Mathcad имеет ряд существенных преимуществ, которые в ряде случаев делают документ более простым и читаемым:

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

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

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

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

Создание программы (Add Line)

Чтобы создать программный модуль:

  • Введите имя функции и присваивания.

  • Нажмите на панели Программирование кнопку Add Line (Добавить линию).

  • Если приблизительно известно, сколько строк кода будет содержать программа, можно создать нужное количество линий повторным нажатием кнопки Add Line (Добавить линию) соответствующее число раз (ниже показан результат трехкратного нажатия).

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

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

Не вводите с клавиатуры имена операторов. Для их вставки пользуйтесь панелью Программирование.

Начало создания программного модуля

Разработка программы

Вставить строку программного кода в уже созданную программу можно в любой момент с помощью той же самой кнопки Add Line. Для этого следует предварительно поместить на нужное место внутри программного модуля курсор ввода.

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

Оператор локального присваивания ()

Язык программирования Mathcad позволяет создавать внутри программных модулей локальные переменные, которые "не видны" извне, из других частей документа. Присваивание значения переменной, в отличие от документов Mathcad, производится с помощью оператора Локальное присваивание, который вставляется нажатием кнопки с изображением стрелки .

Ни оператор присваивания :=, ни оператор вывода = в пределах программ не применяются.


Локальное присваивание иллюстрируется примером слева. Переменная z существует только внутри программы, выделенной вертикальной чертой. Из других мест документа получить ее значение невозможно.

Условный оператор (if, otherwise)

Сначала проверяется логическое выражение (условие) справа от него.

  • Если оно истинно, выполняется выражение слева от оператора if.

  • Если ложно, выполнение программы продолжается переходом к следующей строке.

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

Пример. Построить график функции

Операторы цикла (for, while, break, continue)

В языке программирования Mathcad имеются два оператора цикла: for и while. Первый из них дает возможность организовать вычисления несколько раз. Второй создает цикл с выходом из него по некоторому логическому условию.

Вставка оператора цикла

При необходимости дополните программу другими строками и введите в них нужный код.

Диапазон значений переменной в условии цикла for можно задать как с помощью диапазона ранжированной переменной, так и с помощью вектора.


Оператор цикла for с ранжированной переменной


Оператор цикла for с вектором

Оператор цикла while

Оператор break

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


Оператор break внутри цикла for


Оператор break внутри цикла while

Чтобы четче обозначить границы завершения тела цикла, в его конце может использоваться дополнительная строка с оператором continue.

Возврат значения (return)

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


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


Применение оператора return

Перехват ошибок (on error)

Программирование в Mathcad позволяет осуществлять дополнительную обработку ошибок. Если пользователь предполагает, что выполнение кода в каком-либо месте программного модуля способно вызвать ошибку (например деление на ноль), то эту ошибку можно перехватить с помощью оператора on error. Чтобы вставить его в программу, надо поместить курсор ввода в нужное положение и нажать кнопку с именем оператора on error . В результате появится строка с двумя местозаполнителями и оператором on error посередине.

Вставка оператора перехода по ошибке

В правом местозаполнителе следует ввести выражение, которое должно выполняться в данной строке программы. В левом — выражение, которое будет выполнено вместо правого выражения, если при выполнении последнего возникнет ошибка. Приведем пример применения оператора on error в программном модуле, который рассчитывает функцию обратного числа значению n. Соответственно, вместо выражения справа от оператора on error будет выполнено левое выражение, присваивающее функции f(n) строковое значение "user error: cannot divide by zero" (пользовательская ошибка: деление на ноль невозможно). Конечно, этой строке можно присвоить и текст на русском языке.


Перехват ошибки деления на ноль


Перехват ошибки деления на ноль

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

Примеры программирования

Рассмотрим два простых примера использования программных модулей в Mathcad для численных и символьных расчетов. В двух приведенных листингах используется большинство операторов, рассмотренных в данной главе.


Программирование в численных расчетах


Программирование в символьных расчетах

www.metod-kopilka.ru

7. Программирование в Mathcad

Впакете Mathcad существует богатый набор средств для решения различных математических задач, встроено огромное количество функций из различных разделов математики. Однако написать функции для всех практических задач, которые могут стоять перед пользователями пакета, невозможно. Для расширения возможностей разработчики пакета встроили достаточно простой и оригинальный язык программирования. В любом месте документа Mathcad можно вставить код программы на встроенном языке программирования. Это можно сделать при помощи «горячих клавиш» или команд из панели инструментов Programming (Программирование).

Для визуализации панели програм-

мирования необходимо нажать на кнопку из панели математических инструментов или по-

дать команду View \Toolbars \Programming. На данной панели имеется десять команд. Щелчок по одной из этих команд создает в текущей

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

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

Приведем значение «горячих клавиш», использующих при программировании на Mathcadе.

Команда

Горячая клавиша

Команда

Горячая клавиша

Add Line

]

{

if

}

otherwise

CTR+Shift+]

for

Ctrl+Shift+’

while

Ctrl+]

break

Ctrl+Shift+[

continue

Ctrl+[

return

Ctrl+Shift+\

On error

Ctrl+’

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

118

граммирования: QBasic, Visual Basic, Fortran, Pascal, C++, Java, Ruby или любой другой язык программирования. Данный практикум адресован пользователям, решающим инженерные и научные задачи, для которых программирование не является основным видом деятельности. Для таких пользователей языки программирования C++ и Java противопоказаны, так как ориентированы на профессиональных специалистов. Инженерам, использующим программирование не ежедневно, для решения большинства задач достаточно и одиннадцати команд из панели программирования Mathcad.

Сразу же отметим недостатки программирования в среде Mathcad. Одним из главных недостатков является неразвитость отладчика программ. Ошибки, возникающие при выполнении программ, отображаются, но подробной информации о типе ошибки, значении локальных и глобальных переменных в момент останова программы оперативно получить нельзя. Отлаживать программы уже средней сложности в Mathcad не доставляет особой радости. Поэтому сложные инженерные, научные и экономические задачи удобнее и быстрее, с точки зрения автора, выполнять в рамках визуального алгоритмического языка Visual Basic [3] или последних версий языка Fortran.

Рассмотрим все команды из панели программирования Math-

cad.

1. Add Line – добавить строку в текущую позицию программы. При вводе данной команды появляется или расширяется на одну строку вертикальная линия, объединяющая отдельные операторы в блок с одним входом и одним выходом, который выполняется как один оператор.

Позиция, куда вставится строка, определяется положением курсора. Чтоб вставить новую строку в середину программы, нужно выделить (пробелами) строку перед позицией, куда будет вставлена пустая строка. Удалить лишнюю строку можно с помощью кнопки backspace на клавиатуре.

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

119

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

2. ← – оператор присваивания значения локальной переменной. При выходе из блока программы значения локальных переменных оказываются недоступны для других участков Mathcad файла.

В Mathcad имеются два оператора присваивания: для глобальных переменных (обозначается двумя символами «:=») и для локальных переменных «←». Глобальные переменные доступны в любом месте программы после объявления данной переменной, а локальные – только в текущем блоке.

Для пояснения действия локального и глобального оператора присваивания рассмотрим пример простейшей программы на

Mathcad.

Напишем программу для решения квадратного уравнения ax2+bx+c=0. В программе при помощи операторов глобального присваивания задаются значения глобальных переменныхa, b иc. Для сравнения введем еще локальную переменнуюk и присвоим ей значение 4. Далее вычисляем значение корней квадратного уравнения при помощи программы, состоящей из одного блока операторов. В программе применяются три оператора локального присваивания и возвращается значения вектораx, состоящего из двух чисел. После выполнения программы выводим значение всех переменных, используемых в программе. При этом значение всех локальных переменныхD, x иk, заданных вне блока, программа не видит, поэтому вместо знака= выводится оператор глобального присваивания «:=». В этом случае значение переменной не выводится, а вместо него отображается красный прямоугольный маркер.

Начало программы.

a :=1 b:= −4 c:= 3 k← 4 ORIGIN:=1

x1

 

=

D

←b2 −4 a c

 

 

 

 

 

 

 

 

 

x2

 

 

x

−b −

D

 

 

 

 

 

 

 

 

 

 

 

1

 

 

2 a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

−b +

D

 

 

 

 

 

 

 

 

 

 

2

 

 

2 a

 

 

 

 

 

 

x

 

 

 

 

 

D :=

x :=

k :=

 

 

 

 

 

 

 

x1=1x2= 3a =1b = −4c = 3.

Конец программы.

3. Оператор if предназначен для организации разветвляющихся вычислительных процессов. Чтобы ввести оператор if в программу, необходимо мышкой щелкнуть по кнопке if из панели программирования или использовать горячую клавишу –}.

При этом в программу вставляется заготовка для оператора if: if .

Общий вид простого оператора if: D if L,L – логическое выражение;

D – оператор, выполняемый в случае, если условиеL принимает значение «истина».

Оператор работает следующим образом:

•вычисляется логическое условие L;

•если L – истина, то выполняется операторD, в ином случае он не выполняется;

•выполнение программы продолжается со следующего,

после if, оператора.

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

Для формирования сложных условий можно использовать панель инструментов Boolean, содержатся знаки логического равенства, неравенства и логических операций. В частности, «V» означает логическое «или», а «Λ» — логическое «и».

121

Таким образом, чтобы сформулировать условие, что переменная х находится в диапазоне(–3;4),необходимо написать:x > –3 Λx < 4.

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

Пример. Построить график следующей функции:

28 −6x,

x (−∞;3)

 

+1,

x [3;−1] .

f (x) = x2

 

 

x (1,∞)

2,

 

Решение.

f (x) := 28−6x if x > 3

x2 +1 if x ≤3 x ≥ −1

2if x < −1

Всложных подпрограммах

часто используется блочный оператор if:if L

D1

Dn

Где D1, …, Dn – действия, выполняемые в случае, если логическое условиеL истинно.

Для того чтобы вставить подобную конструкцию, нам необходимо, на панели инструментов Programming, выбратьif , затем установить курсор на место ввода слева от оператораif иn раз нажать наAdd Line.

Приведем пример программы с подобным оператором. Усовершенствуем программу для решения квадратного уравнения ax2+bx+c=0.

Начало программы.

x1

 

=

ORIGIN :=1 a:=1 b:= −1 c:= 4

 

 

D ←b

2

−4

a c

x2

 

 

 

 

 

 

if D ≥ 0

 

x1 ← −b2−a D x2 ← −b2+a D

if D < 0

x1 ←"действительных корней нет" x2 ←"действительных корней нет"

x

x1 ="действительных корней нет" x2 ="действительных корней нет"

Конец программы.

В данном случае при дискриминанте меньше 0 программа выдает сообщение «действительных корней нет!».

Кроме оператора if, программа Mathcad может содержать и операторotherwise.

4. Оператор otherwise применяется в случае, когда используется условие с двумя вариантами действия, то есть, если условие истинно, нужно выполнить одно действие (или действия), а если ложно, то другое.

Общий вид такого оператора следующий:

D1 ifL

D2 otherwise

В случае если условие L истинно, выполняются действияD1, иначе выполняются действияD2. То естьotherwise аналогичен оператору else в Бейсике, Фортране и других высокоуровневых языках.

Рассмотрим пример программы, использующей операторы if иotherwise. В данном случае проверяются условия, при которых логарифм не существует(x<0 илиy<0 илиy=1). Если они выпол-

123

нены, выдается сообщение «error», в противном случае вычисля-

ется logyx.

 

 

 

f _ log(x,y) :=

 

"error"

if x≤ 0 y≤ 0 y=1

 

 

 

log(x,y)

otherwise

f _ log(−4,5)="error"

 

f _ log(8,2)= 3

 

 

 

Когда в блоке otherwise несколько строк, нужно установить курсор в место ввода слева от оператораotherwise и нажатьAdd Line необходимое количество раз.

Вернемся к программе, вычисляющей корни уравнения ax2+bx+c=0, и запишем ее с помощью операторовif иotherwise. Начало программы.

ORIGIN :=1 a:=1 b:= 2 c:= 2

x1

=

 

D ←b

2

−4 a c

 

 

 

 

 

 

 

 

 

 

 

 

x2

 

 

if D ≥ 0

 

 

 

 

 

 

 

x

 

−b −

D

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

2 a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

−b +

D

 

 

 

 

 

 

 

 

 

 

2

 

 

 

2 a

 

 

 

 

 

 

otherwise

 

 

 

 

 

 

 

x1 ←"действительных корней нет"

 

 

 

 

 

 

 

 

x2 ←"действительных корней нет"

 

 

 

x

 

 

 

 

 

 

 

x1= −2

 

x2= −1

 

 

 

Конец программы.

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

Чтобы вставить оператор for в программу, необходимо мышкой щелкнуть по кнопкеfor из панели программирования или использовать «горячую» клавишу «Ctrl+Shift+’». При этом в программу вставляется заготовка для оператораfor:

for

Общий вид оператора выбора for: for i k1..kn

D

Или

for i (k1k2k3 ...kn)

D

Где i – счетчик цикла. Переменная, которая меняется в диапазоне отk1 доkn. Диапазон изменения счетчика цикла вводится с помощью ранжированной переменной или с помощью вектора.

D –действия,которые выполняются в цикле (тело цикла). Ниже приведен пример, в котором диапазон изменения счетчика циклаn задан с помощью вектора. Вектор вставляется с по-

мощью панели инструментов Matrix.

sum := s← 0

for n (1 2 5 7 10 11 13 16 17 19)

s ← s+ 1n

sum = 2.285.

Данная программа вычисляет сумму

Sum=1+1/2+1/5+1/7+1/10+1/11+1/13+1/16+1/17+1/19.

Если тело цикла оператора for состоит из нескольких строк, то необходимо установить курсор на позицию для ввода тела цикла и соответствующее количество раз нажать наAdd Line.

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

Пример. Написать функциюFA, создающую матрицуA, состоящую изM строк иN столбцов следующего вида:

125

1

2

4

8

16

 

 

0

1

2

4

8

 

 

 

 

0

0

1

2

4

 

 

 

 

0

0

0

1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Запишем подпрограмму, выводящую эту матрицу с помощью двух вложенных циклов:

FA(M, N) :=

 

for

i 0..M−1

 

 

 

 

 

 

 

for

j 0..N−1

 

 

 

 

 

 

Ai, j

← 1

if

i = j

 

 

 

 

 

 

 

 

 

 

Ai, j

← 0

if

i > j

 

 

 

 

 

Ai, j← 2 Ai, j−1

if i < j

 

 

 

A

 

 

 

 

 

1

2

4

8

16

 

 

 

0

1

2

4

8

 

 

 

FA(4,5)=

 

 

 

 

0

0

1

2

4

 

 

 

 

 

 

 

 

0

0

0

1

2

 

 

 

Обозначим i –

строку матрицы, j – столбец матрицы.

Тогда главная диагональ задается уравнением «i=j», элементы матрицы, расположенные выше главной диагонали, уравнением«i<j», а элементы матрицы, расположенные ниже главной диагонали, – усравнением«i<j».

Каждый элемент, расположенный выше главной диагонали, вычисляется как удвоенное произведение элемента, стоящего в этой же строке в предыдущем столбце: Ai j=2* Ai j–1.

Для проверки работы функции подали команду: FA(4,5)=. 6. Операторцикла while используется тогда, когда цикл дол-

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

Чтобы вставить оператор while в программу, необходимо мышкой щелкнуть по кнопкеwhile из панели программирования или использовать горячую клавишу –«Ctrl+]». При этом в программу вставляется заготовка для оператораwhile:

while

Общий вид оператора While:while L

D,

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

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

Следует заметить, что если условие L истинно всегда, то программа будет работать бесконечно (зациклится). Именно поэтому с цикломwhile необходимо быть очень осторожным и тщательно проверять условие выхода из цикла, прежде чем выполнять программу.

Если программа все-такиповисла, то чтобы прервать ее выполнение, необходимо нажать клавишу «Esc» и в появившемся окне нажать на кнопку OK.

Приведем пример программы, использующей цикл while.

s ← 0

 

 

 

n ←1

 

 

 

 

1

 

 

while

 

 

> tol

n

 

 

 

 

s ← s+ 1n n← n+1

s

= 2.829.

Вданной программе с указанной точностью (tol) вычисляется сумма s=1+1/2+1/3+1/4+1/5+1/6+1/7…

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

Вкачестве примера применения оператора break рассмотрим

 

12n −1

 

 

 

задачу вычисления суммы числового ряда S = ∑

 

 

.

В

n

3

n=1

+ 2n +1

 

 

приведенной ниже программе, суммирование членов ряда прекращается, когда достигается точность, указанная параметром tol или если число итераций цикла превышает 10000.

f (n) :=

12 n −1

 

n3 + 2 n+1

 

sum(tol) := s← 0 n←1

while f(n) > tol s← s+ f(n)

break if n >10000 n ←n +1

s sum(0.000011) =8.726 .

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

8. Оператор continue возвращает управление в первую строку цикла. Как только этот оператор встречается в программе, выполнение текущей итерации прерывается и выполняется переход на следующую итерацию цикла. Выход из цикла не производится.

Данный оператор, как и оператор break, не содержит параметров.

Пример: Найти сумму N первых членов ряда:

N

 

1

 

S = ∑

 

.

2n

3

n=1

−16

 

В программе, при помощи оператора continue, происходит обход слагаемого в котором знаменатель дроби равен нулю.

sum(N) :=

 

s ← 0

 

 

 

for n 1..N

 

 

 

a ← 2n3 −16

 

 

 

 

 

 

continue if a = 0

 

 

 

s ← s+ 1

 

 

 

a

 

 

s

sum(100)= −0.024.

9. Оператор return прерывает выполнение программы. В качестве результата работы программы возвращается значение, указанное в позиции для ввода, после оператора return.

При выборе на панели инструментов пункта return вставляется строка.

Пример. Подсчитать с указанной точностью tol сумму ряда:

 

 

12n

 

S = ∑

 

 

.

n

2

+ 2n +16

n=1

 

 

Если ряд получается расходящийся, программа выдаст сообщение «расходится». Ряд будет считаться расходящимся, если число итераций цикла превысило 1000000 раз.

f 1(n) :=

12n

n2 + 2n+16

 

 

 

 

 

sum1(N) :=

 

s ← 0

 

 

 

n ←1

 

 

while

 

f 1(n)

 

> tol

 

 

 

 

 

 

 

s ← s+ f1(n)

 

 

 

 

 

 

return " ряд расходится" if n>100000

 

 

 

n ← n+1

 

 

s

129

sum1(0.01) =" ряд расходится".

10. Оператор on error отвечает за обработку ошибок. При выборе данного оператора в программу вставляется заготовка следующего вида:

Общий вид оператора on error:D1on error D2 .

Если при вычислении выражения D1 произошла ошибка, будет вычислено значениеD2.

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

Приведем пример программы, вычисляющей десятичный логарифм числа xy.

Если логарифм не существует, выдается сообщение об ошибке: «аргумент логарифма <0».

 

 

 

f (x,y) :=

 

z ← x y

 

 

 

"аргумент логарифма< 0" on errorlog(z)

f (0,5) ="аргумент логарифма< 0";

f (10,1)=1.

Оператор on error можно применять в комплексе встроенной функциейerror().

f (x, y) := z← x y

error("аргумент логарифма< 0") on errorlog(z)

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

studfiles.net