Элементы программирования в MathCad 15

В статье рассмотрены основы программирования в mathcad версии 15 и более старших. Приведены полезные примеры для инженерных расчетов

Цикл "FOR" в mathcad 15

Для примера рассмотрим пример заполнения матрицы-вектора в автоматическом режиме. Предположим, что нам нужно заполнить матрицу случайными числами. Размер матрицы 10 элементов. Заполнение в ручную такой матрицы безусловно отнимет массу времени

В свободном поле mathcad введите имя вашей будущей матрицы M. Поставте знак присвоить ":=" и затем на английской раскладке нажмите комбинацию Alt (правый) + "]". В место привычного маркера возникнет вертикальная черная черта с двумя маркерами. Удерживая клавишу Alt введите еще несколько раз символ "]" так, чтобы увеличить число свободных маркеров. Можно также воспользоваться кнопкой "Add Line" на панели Programming. В этих маркерах записываются строки кода

Рис. 1. Подготовка к написанию кода

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

Рис. 2. Запись безусловного цикла FOR

Теперь нужно ввести переменную-счетчик (пусть это будет "i"), которая будет менять свое значение от 1 до 10. Диапазон от 1 до 10 задается с помощью ранжированной переменной, которую можно найти на панели Matrix

Рис. 3. Настройка параметров цикла for в mathcad 15

Цикл for в этом примере будет перебирать значения счетчика i от 1 до 10 c шагом 1. При каждом значении i элементу матрицы с соответсвующим индексом будет присваиваться случайное число с помощью стандартной функции rnd(m). Функция rnd присваивает переменной значение в диапазоне от 0 до "m"

Операция присваивания осуществляется при помощи операции Local difinition с панели Programming. Опрерация присваивания отображена в виде стрелочки "←". Чтобы присвоить какое либо значение элементу матрицы нужно указать соответсвующий индекс матрицы. Это делается с помощью кнопки Subscript на панели Matrix.

Операция присваиваивания должна осуществляться в "теле цикла". То есть, все действия, которые должны повторяться по мере работы счетчика циклы, должны находиться в соответсвующих маркерах. После завершения работы цикла в последний маркер тела программы нужно ввести имя матрицы, над заполнением которой мы работали. В нашем случае это M. См. рисунок 4

Рис. 4. Синтаксис программы по заполнению матрицы-вектора случайными числами в mathcad 15

Теперь можно посмотреть на результат. Введем имя матрицы M и поставим знак равно "=". Мы сразу же увидим содержимое матрицы-вектора, который был заполнен с помощью нашей программы. Теперь меняя количество итераций в цикле for мы можем изменять размерность матрицы-вектора. Можн также поменять и закон заполнения матрицы-вектора.

Рис. 5. Результат работы программы в mathcad 15

Можно изменить программу таким образом, чтобы заполнить квадратную матрицу. Для этого нам нужно ввести еще один счетчик и еще один цикл for с индексом j. Таким образом один цикл будет выполняться внутри другого, формируя столбцы и строки матрицы

Рис. 6. Программа для заполнения квадратной матрицы в mathcad 15

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

Рис. 7. Программа для заполнения квадратной матрицы в mathcad 15

Условные операторы "IF" в mathcad 15

Чтобы посмотреть, как работает условный оператор "if" в mathcad 15 рассмотрим простой пример. Заполним квадратную матрицу G размером 5 х 5 элементов случайными числами и затем обнулим все элементы, которые меньше 10

На рисунке 8 приведен уже знакомый код заполнения матрицы случайными числами

Рис. 8. Программа для заполнения квадратной матрицы случайными числами

Для обнуления элементов, значение которых меньше 10, запишем второй участок кода с использованием условного оператора "If". Для проверки каждого элемента на выполнение этого условия нам опять потребуется два вложенных цикла "for" с счетчиками i и j. См. рис. 9. Обратите внимание, в теле второго цикла оставлено два свободных маркера

Рис. 9. Заготовка для применения условного оператора

Результат работы программы для удобства будет записываться в матрицу P. Поместите курсор в первый свободный маркер и нажмите на кнопку с надписью "if" на панели Programming. Вы увидите заготовку для записи условного оператора

Рис. 10. Заготовка для условного оператора

В этой заготовке выполним обнуление элемента матрицы G если значение этого элемента менее 10. Присвоение элементу матрицы значение нуля осуществляется символом "←" . Буквально логика данной операции следующая: "присвоить элементу матрицы P с текущим индексом i и j значение 0 если елемент матрицы G с тем же индексом меньше 10"

Рис. 11. Ввод условного оператора в mathcad 15

Теперь запишем второе условие, по которому все элементы матрицы G, которые больше либо равны 10 попадают в матрицу P без изменеий на те же "мееста". Буквально логика данной операции следующая: "присвоить элементу матрицы P с текущим индексом i и j значение елемента матрицы G с тем же индексом если значение элемента больше либо равно 10". Сразу же после текста программы можно вывести результат. См. рис. 12.

Рис. 12. Ввод условного оператора в mathcad 15

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

Рис. 13. Результат работы условного оператора

Цикл "WHILE" в mathcad 15

Цикл While является условным циклом. То есть повторение его тела осуществляется до тех пор пока верно условие.

Рассмотрим простой пример заполнения матрицы-столбца с использованием цикла while. В качестве условия работы цикла будем проверять верно ли равенство m < 7. Переменную m будем изменять в теле цикла, так что бы в какой то момент условие не выполнилось и цикл завершился. Также в тело цикла введем закон изменения значений элементов нашей матрицы-столбца. На рис. 14 приведен синтаксис цикла while.

Рис. 14. Цикл WHILE в mathcad

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

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