Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Glava_1.doc
Скачиваний:
10
Добавлен:
20.11.2019
Размер:
1.1 Mб
Скачать

1.2 Операторы программирования в Mathcad

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

Язык программирования Mathcad предельно прост, лаконичен и нагляден. Для его быстрого освоения не понадобиться ровным счётом никаких познаний в области технических приёмов программирования или специальной подготовки.

На палитре Программирование присутствует предельно малое количество операторов – всего 8. Это, тем не менее, никоим образом не сказывается на эффективности алгоритмов. Составление программы начинается с нажатия кнопки Add line (< ] >). Сколько раз нажимается эта клавиша (или кнопка), столько раз получаем дополнительных строк в блоке программы. После чего в тёмные шаблоны-квадратики можно вставлять операторы программирования:

Новая строка возникает либо выше, либо ниже текущей от положения курсора в зависимости от того, в какую сторону он направлен: - строка появится вверху, - внизу.

Нужно отметить следующие характерные особенности при составлении текста программы:

  • знаки , , > , < и т.п. вводятся с помощью палитры булевских переменных;

  • все константы и переменные, определённые внутри программы, являются локальными и их значения не сохраняются (по умолчанию) при выходе из программы;

  • оператором локального присваивания является стрелка справа налево <  >;

  • операторы программы не набирают вручную с клавиатуры, а делают это только с палитры;

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

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

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

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

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

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

Условный оператор используется только в теле программы-функции и для его ввода необходимо щелкнуть по кнопке < if > панели программирования (или клавише < } >). На экране появляется конструкция с двумя чёрными полями ввода и одним красным (рис.1.14).

Рис. 1.13. Структура условного оператора if.

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

Для ввода в поле 3 необходимо :

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

  • слева от otherwise ввести соответствующее выражение

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

C ← D if A >B

E ← F otherwise

Это означает, что если A > B, то С присваивается значение D. В противном случае E присваивается значение F. Если в < Поле 3 > ввести оператор без слова otherwise, то он будет выполняться всегда ( следуя сразу за «выполнимым» в < Поле 1 >) вне зависимости от условия.

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

  • щелкнуть на кнопке for наборной панели Программирования. На экране появятся поля ввода, изображенные на рис. 1.15:

Рис. 1.15. Структура оператора цикла for.

  • в поле ввода 1 введите имя параметра цикла;

  • в поле ввода 2 ввести диапазон значений параметра цикла, используя для этого дискретный аргумент ;

  • в поле ввода 3 вводятся операторы, составляющие тело цикла. Если одной строки недостаточно, то дополнительные поля ввода (дополнительные строки) создаются щелчком на кнопке “Add line” в панели программирования и тогда слева от тела цикла появляется вертикальная черта.

Количество циклов задается несколькими способами:

for A 5,4,7,8

for i 1..10

for A V

Оператор return прерывает выполнение программы-функции и возвращает значение операнда, стоящего за ним на месте метки его шаблона:

Поэтому в итоге переменная < c > примет значение, равное 15, а не 20.

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

  • щелкнуть на кнопке while панели Программирования. На экране появляются элементы, показанные на рис. 1.16.

  • в поле 1 ввести условие выполнения цикла;

  • в п. 2 ввести операторы тела цикла. В теле цикла условие цикла когда-то становится ложным, иначе цикл будет продолжаться бесконечно.

Рис. 1.16. Структура оператора цикла while.

Обнаружив оператор while, Mathcad проверяет его условие в <Поле 1>. Если оно истинно, то выполняется тело цикла <Поле 2> и снова проверяется условие <Поле 1>. Если оно ложно, то цикл заканчивается. К сожалению, организация цикла while без дополнительных средств контроля может привести к зацикливанию. Два примера с while представлено на рис. 1.17 [5].

Рис. 1.17. Примеры использования оператора цикла while.

Если требуется создать цикл с постпроверкой или с выходом изнутри цикла, то организуют бесконечный цикл со вставками операторов return, break (рис. 1.18) или сontinue.

Рис. 1.18. Прерывание внутреннего цикла оператором break.

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

Поэтому первоначально вводится оператор if , а затем слева от него break. В случае вложенных циклов прерывается именно тот цикл, в котором и присутствует break. Так, в программе на рис. 1.18 переменная < с > в результате получит значение 21.

Оператор сontinue записывается по аналогии с предыдущим оператором break, но в отличие него – используется для продолжения (а не прекращения) выполнения цикла путем возврата в начало тела цикла.

Рис. 1.19. Пример прерывания внутри цикла с продолжением.

Прерывается только текущая итерация цикла и происходит переход к его следующей операции. Переменная < c > в программе на рис. 1.19 станет равна 2, т.к. в остальных итерациях цикла суммирование прерывается оператором сontinue.

При отладке бывает полезным использование инструкции on error, которая позволяет создавать процедуры обработки ошибок:

Выражение1 on error Выражение2

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

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

Готовый уже к использованию набор инструментария Mathcad, который реализован не столько в виде текстовых функций, сколько в общепринятом в математике виде даёт свои преимущества. Использование встроенных операций умножения матриц, вычислений конечных сумм и произведений вместо циклов в традиционных алгоритмических языках программирования делают программы в Mathcad более компактными и приближает их к математической форме записи алгоритма. Вертикальные линии программ Mathcad более наглядны, чем фигурные скобки языка С, особенно для обучения структурному программированию.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]