Top menu

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

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

1

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

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

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

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

2

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

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

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

3

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

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

4

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

5

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

6

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

7

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

8

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

9

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

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

10

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

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

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

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

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

11

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

12

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

13

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

14

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

15

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

16

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

17

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

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

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

18

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

19

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

20

Операторы

if и

else

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

21

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

22

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

23

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

24

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

25

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

26

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

27

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

28

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

29

30

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

31

32

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

33

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

34

35

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

36,

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

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

37

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

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

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

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

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

38

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

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

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

39

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

40

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

41

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

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

42

Разное

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

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

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

43

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

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

44

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

45

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

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

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

46

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

47

Округление:

48

Усечение:

49

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

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

Try / On Error

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

50

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

51

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

52

Поскольку переменная 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, чтобы указывать на ошибки.