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

Лабораторная работа №9. Программирование

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

Для написания программ используется программная палитра, которая вызывается кнопкой панели управления. Как видно, всего имеется 10 операторов, из которых и строится программа. Причём операторы должны вводиться только из палитры, писать их "вручную" не рекомендуется.

В данной работе внимательно рассмотрите все примеры и оформите их в программе!

Для примера приведём простую программу, возвращающую 1, если число чётное, и 0 в противном случае.

Начинаем создание программы с кнопки Add Line.

Вертикальная линия играет роль операторных скобок.

Функция возвращает остаток от деления на 2, например:

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

Более сложный пример определения максимальной координаты вектора и её позиции.

Присваивание начальных значений переменным.

Цикл по элементам вектора (элементы вектора отсчитываются от 0).

возвращает последний индекс массива.

Присваивание большего значения и сохранение его координаты. Операторную скобку создаём кнопкой Add Line.

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

И используем функцию:

Действительно, максимальное значение равно 8 и имеет индекс 2.

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

Вычислим квадрат модуля вектора .

Оператор return здесь может быть опущен.

В качестве возвращаемого значения в программе используется результат последней операции.

Примечание. Обратите внимание, что программах не пользуется оператор присваивания :=, а вводится оператор локального присваивания .

Переменные, определённые в программе, теряют значение при выходе из неё.

Разберём ещё несколько примеров работы с массивами данных (матрицами).

Задача 1. Составим программу которая будет менять местами 2 строки матрицы. Например, в матрице М нужно поменять местами строки 1 и 2.

здесь функция возвращает количество столбцов матрицы, тогда

Задача 2. Рассмотрим программу упорядочения чисел по убыванию в одномерном массиве. Пусть дан массив чисел:

Мы воспользуемся вложенными циклами и в качестве тела цикла по i используем ещё один цикл по j.

Здесь реализован простейший алгоритм сортировки, так называемый "метод пузырька". На самом деле, большие числа как бы всплывают наверх при каждом шаге цикла по i, в то время как в цикле по j на каждом шаге происходит сравнение пары чисел и замена, если большее число находится ниже, причём эта замена осуществляется снизу.

Отметим, что в системе имеется стандартная функция сортировки sort().

Примечание: второй цикл мы организовали с отрицательным шагом от конечного значения к начальному.

Можно использовать программные возможности Mathcad просто для задания функций более сложного вида. Например, определим функцию, которая равна 1, если аргумент размещён между чётным и нечётным числом, и 0 в противном случае.

Функция возвращает ближайшее целое большее .

Например:

Примечание: при построении графика использовался тип линии - метка.

Для форматирования графика надо вызвать окно форматирования (например, двойным щелчком по графику) на вкладке Метки настроить тип линии.

Задача 3. Вычислить значение функции:

Реализация в MathCAD выглядит так:

Можно использовать написанную функцию:

Задача 4. Вычислить значение функции:

ИТОГОВЫЕ ЗАДАНИЯ К ЗАНЯТИЯМ ПО MATHCAD