Mathcad содержит встроенную среду программирования, что значительно расширяет возможности вычислительного пакета. Операторы программирования находятся в меню Математика –> Операторы и символы –> Программирование:
Этих операторов не очень много, но и они позволяют построить достаточно сложные алгоритмы. К тому же, уже ознакомившись с базовыми понятиями (операторы, переменные, константы, функции и т.д.), можно использовать Mathcad, если Вы хотите лишь начать изучать программирование.
Команды, которые мы изучим в этом уроке:
- «Программирование» – для создания программной структуры.
- «Локальное назначение» – знак «равно» для программ.
- «Оператор if»– оператор условия.
- «Оператор else»– альтернативный выбор.
- «Оператор return» – выход из программы.
- «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]. Где появится местозаполнитель, зависит от положения курсора. Выбрана внутренняя серая линия:
Курсор стоит за x2:
Усложним функцию:
На структурной диаграмме показаны различные варианты выбора. Наиболее простой способ создать программу для этой задачи – использовать три различных операторов выбора (в Mathcad нет аналога оператора case).
Здесь важно правильно задать границы независимой переменной. Если Вы введете:
то точки 0 и 1 будут исключены, а Mathcad выдаст некорректный результат для этих значений.
Проверим программу для некоторых входных значений:
Для значений, не имеющих смысла, Mathcad выдаст сообщение об ошибке.
Функции в программах
В Mathcad встроено множество функций, которые могут быть полезными в том числе и в программах. Рассмотрим некоторые из них.
Векторы и матрицы
Откройте Функции –> Все функции и откройте раздел Векторы и матрицы. Найдите функции last() и length(). Это функции для определения некоторых свойств вектора:
Функция length() определяет длину вектора, т.е. количество элементов в нем, а функция last() выводит индекс последнего элемента. По умолчанию в Mathcadнумерация элементов вектора начинается с нуля, поэтому у четвертого элемента массива индекс 3.
Теория чисел/комбинаторика
Наибольший общий делитель:
Наименьшее общее кратное:
Остаток от деления x на y:
Кусочно-непрерывные функции
Ступенчатая функция:
Разное
«Разное» содержит функцию time(), которая возвращает системное время момента активации функции.
Строковые функции
Строки в Mathcad заключаются в двойные кавычки:
Строки можно задавать в качестве переменных, но их нельзя использовать в вычислениях. (Строку, содержащую только числа, можно преобразовать в константу.)
Конкатенация строк:
Длина строки (включая пробелы):
Строки могут быть полезны для задания в программах сообщений об ошибках.
Усечение и округление
Наименьшее целое число, большее x:
Наибольшее целое число, меньшее x:
Округление:
Усечение:
Список функций Mathcad огромен. Два совета по ознакомлению с новыми функциями:
- Подведя указатель мыши к имени функции в списке, Вы увидите ее полное название и краткое описание.
- Если Вы вставите функцию в рабочую область, а затем нажмете [F1], Вы получите расширенное описание функции.
Try / On Error
Последняя команда, которую мы изучим в этом уроке, используется для указания, что должно быть сделано, если при выполнении программы возникает ошибка (например, деление на ноль). Если при выполнении программы в блоке tryвозникает ошибка, программа выполняет действия в блоке on error:
Ниже представлена программа с тремя операторами if внутри блока try:
При неверном вводе появится сообщение об ошибке. Таким образом, можно отследить большую часть ошибок, но не все:
Поскольку переменная abc не определена, функция не вычисляется.
Резюме
Мы изучили следующие элементы программирования:
- Входные данные – обычно вводятся как параметры функции.
- Первая строка программы – вводится с помощью ]. Больше линий – с помощью [Enter].
- Оператор локального определения – вводится с помощью {.
- В конструкциях выбора с помощью оператора ifприменяются операторы сравнения.
- If вводится с помощью }. За ifвводится логическое выражение, например x<0. Под оператором записывается алгоритм, который должен быть выполнен, если выражение после if верно.
- После if может следовать оператор else или другой оператор if.
- [Enter] добавляет новую строку в программу. Место появления новой строки зависит от позиции курсора до нажатия на [Enter].
- Вывод переменной осуществляется с помощью оператора return. Переменной может быть одиночная переменная, вектор или матрица, которые могут содержать как числовые значения, так и текст.
- Mathcadсодержит большое число встроенных функций, которые могут быть полезны при написании программ. Список функций с подсказками можно открыть по команде Функции –> Все функции.
- Используйте try / onerror, чтобы указывать на ошибки.
No comments yet.