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

10.2.2 Имитация Броуновского движения частиц в пространстве

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

Каждый новый пуск данного документа порождает новую картину диффузии.

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

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

11.1. Задание операторов пользователя

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

После этого новым оператором можно пользоваться:

—пример применения новой функции деления;

—пример применения нового оператора деления.

Встроенные в систему операторы нельзя переопределять, поэтому набор доступных знаков для обозначения новых операторов ограничен. К примеру, нельзя задать новый оператор деления знаком / (он уже использован), но можно взять знак , поскольку этот символ как знак деления системой не используется.

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

11.2 Задание программных модулей

Набор инструкций для создания программных модулей содержит следующие элементы:

Add Line — создает и при необходимости удлиняет жирную вертикальную линию, справа от которой в местах ввода производится запись программного блока;

← — символ локального (в теле модуля) присваивания;

if — условная инструкция;

otherwise — инструкция иного выбора (обычно применяется с if);

for — инструкция задания цикла с фиксированным числом повторений;

while — инструкция задания цикла, действующего до тех пор, пока выполняется некоторое условие;

break — инструкция прерывания;

continue — инструкция продолжения;

return — инструкция возврата;

on error — инструкция обработки ошибок.

11.2.1 Инструкция Add Line

Инструкция Add Line выполняет функции расширения программного блока. Расширение фиксируется удлинением вертикальной черты программных блоков или их древовидным расширением. Благодаря этому можно создавать сколь угодно большие программы.

11.2.2 Оператор внутреннего присваивания

Оператор ← выполняет функции внутреннего (локального) присваивания, например, выражение x ← 123 присваивает переменной х значение 123. Локальный характер присваивания означает, что такое значение переменной х хранится только в теле программного модуля. За пределами тела программы значение переменной х может быть неопределенным либо равным значению, которое задается вне программного блока операторами локального (:=) или глобального (≡) присваивания.

11.2.3 Условная инструкция if

Инструкция if позволяет строить условные выражения. Она задается в виде:

Выражение if Условие

Если условие выполняется, то возвращается значение Выражения. Совместно с этой инструкцией часто используются инструкции прерывания break и иного выбора otherwise.

11.2.4 Инструкция for

Инструкция for служит для организации циклов с заданным числом повторений. Она записывается в виде:

For Var € Nmin .. Nmax

Эта запись означает, что выражение, помещенное в расположенное ниже место ввода, будет выполняться для значений переменной Var, меняющихся от Nmin до Nmax с шагом +1. переменную счетчика Var можно использовать в исполняемом выражении.

11.2.5 Инструкция while

Инструкция while служит для организации циклов, действующих до тех пор, пока выполняется некоторое условие. Она записывается в виде:

While Условие

Выполняемое выражение записывается в расположенное ниже место ввода.

11.2.6 Инструкция otherwise

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

Т.е. функция f(x) возвращает 1, если x>Θ, и -1 во всех остальных случаях.

11.2.7 Инструкция break

Инструкция break вызывает прерывание выполнения программы. Чаще всего эта инструкция используется совместно с условной инструкцией if и инструкциями циклов while и for, обеспечивая переход в конец тела цикла.

11.2.8 Инструкция continue

Инструкция continue используется для продолжения работы после прерывания программы. Она также чаще всего используется совместно с инструкциями циклов while и for, обеспечивая возвращение в точку прерывания и продолжение вычислений.

11.2.9 Инструкция return

Особая инструкция return прерывает выполнение программы и возвращает значение операнда, стоящего следом за ней. Например, в приведенном ниже случае будет возвращаться значение 0 при х<Θ:

Return Θ if x<0

11.2.10 Инструкция on error и функция error

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

Выражение_1 on error Выражение_2

Если при выполнении Выражения_1 возникает ошибка, то выполняется Выражение_2.

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

11.3 Упражнения к теме 11

  1. Напишите программный код вычисления функции вида:

  1. Напишите программный код вычисления функции вида:

  1. Напишите программный код вычисления функции вида:

  1. Напишите программный код для вычисления суммы последовательности целых чисел от 1 до N.

  1. Напишите программный код для вычисления произведения последовательности целых чисел от 1 до N.

  1. Напишите программный код для вычисления функции:

  1. Напишите программный код для вычисления суммы последовательности целых чисел до тех пор, пока сумма не превысит 30.

  1. Напишите программный код для нахождения корней квадратного уравнения.

Пример выполнения упражнения 1. Вызовем панель инструментов Программирование с помощью команды меню: ВидПанели инструментовПрограммирование. Введем имя функции, щелкнем по символу присваивания «:=» на панели инструментов Калькулятор. Щелкнем по функции Add Line на панели инструментов Программирование, в результате добавится вертикальная черта, которая обозначает блок программирования. В месте введения данных, помеченном верхней меткой, установим курсор и добавим функцию if с панели инструментов Программирование. В места меток справа и слева введем необходимую информацию. Щелкнем курсором по нижней метке ввода, напишем х и добавим функцию otherwise с панели инструментов Программирование. Далее введем значения для проверки, получим:

Пример выполнения упражнения 4. Вызовем панель инструментов Программирование с помощью команды меню: ВидПанели инструментовПрограммирование. Введем имя функции, щелкнем по символу присваивания «:=» на панели инструментов Калькулятор. Щелкнем по функции Add Line на панели инструментов Программирование, в результате добавится вертикальная черта, которая обозначает блок программирования.

В месте введения данных, помеченном верхней меткой, установим курсор и введем начальное значение для суммы s = 0. Щелкнем курсором по второй метке ввода и добавим функцию for с панели инструментов Программирование. В местах ввода добавим имя переменной цикла и диапазон изменения переменной цикла. Перейдем на нижнюю метку ввода и запишем функцию s = s + i. Попробуем воспользоваться записанной программой, получим:

Пример выполнения упражнения 7.

Вызовем панель инструментов Программирование с помощью команды меню: ВидПанели инструментовПрограммирование. Введем имя функции, щелкнем по символу присваивания «:=» на панели инструментов Калькулятор. Щелкнем по функции Add Line на панели инструментов Программирование, в результате добавится вертикальная черта, которая обозначает блок программирования. В месте введения данных, помеченном верхней меткой, установим курсор и введем начальное значение для суммы s = 0. Щелкнем курсором по второй метке ввода опять щелкнем по функции Add Line. Вертикальная линия удлинится. Щелкнем курсором по второй метке ввода и добавим x = n1 (нижняя граница, от которой начинается суммирование). Для проверки условия используем оператор while. Щелкнем по третьей метке ввода и щелкнем по оператору while на панели инструментов Программирование. После оператора while добавим условия s <= 30 and x <= n2 (верхняя граница, до которой осуществляется суммирование).

Щелкнем по метке ввода ниже и снова щелкнем по функции Add Line на панели инструментов Программирование, в результате добавится вертикальная черта. Щелкнем по верхней метке ввода и запишем функцию s = s + x. Щелкнем по нижней метке ввода и запишем функцию x = x + 1. Выделим весь блок while и щелкнем по функции Add Line на панели инструментов Программирование, в результате первая вертикальная черта удлинится. Установим курсор на метку ввода и напишем s, что означает: результатом выполнения программного кода является значение переменной s.

Пример выполнения упражнения 8. Вызовем панель инструментов Программирование с помощью команды меню: ВидПанели инструментовПрограммирование. Введем имя функции, аргументами функции являются значения а, b и с квадратного уравнения вида ах2 + bх + с = 0, переменная, хранящая 1, для нахождения 1 корня уравнения или -1 для нахождения 2 корня уравнения. Щелкнем по символу присваивания «:=» на панели инструментов Калькулятор. Щелкнем по функции Add Line на панели инструментов Программирование, в результате добавится вертикальная черта, которая обозначает блок программирования. В месте введения данных присвоим переменной d1 выражение, с помощью которого можно рассчитать дискриминант уравнения, щелкнем по второй метке ввода и присвоим переменной d2 значение знаменателя формулы для расчета корней уравнения. Установим курсор в виде большого правого угла и щелкнем по функции Add Line на панели инструментов Программирование, в результате вертикальная черта удлинится. Установим курсор на метке ввода и присвоим переменной d3 значение числителя формулы для расчета корней уравнения, при этом учтем переменную, отвечающую за номер рассчитываемого корня. Опять установим курсор в виде большого правого угла и щелкнем по функции Add Line на панели инструментов Программирование, в результате вертикальная черта удлинится. Установим курсор на метке ввода и запишем формулу для расчета итогового значения корня уравнения.