- •«Санкт-Петербургский государственный университет аэрокосмического приборостроения»
- •Санкт-Петербург
- •Пакет прикладных программ MathCad.
- •1.1 Практическая работа 1. Основы работы с MathCad
- •Математические выражения
- •Операторы
- •Типы данных
- •Функции
- •Текстовые фрагменты
- •Графические области
- •Построение пересекающихся фигур
- •Создание анимационного клипа
- •Задания к упражнению 10
- •Практическая работа 2. Решение уравнений средствами MathCad
- •Численное решение нелинейного уравнения
- •Отсутствие сходимости функции root
- •Рекомендации по использованию функции root
- •Нахождение корней полинома
- •Решение систем уравнений
- •Решение матричных1 уравнений
- •Символьное решение уравнений
- •Порядок выполнения практической работы 2
- •Варианты упражнения 1
- •Варианты упражнения 2
- •Варианты упражнения 3
- •Варианты упражнения 4
- •1.3 Практическая работа 3. Символьные вычисления в MathCad
- •Выделение выражений для символьных вычислений
- •Символьные операции Операции с выделенными выражениями
- •Операции с выделенными переменными
- •Операции с выделенными матрицами
- •Операции преобразования
- •Стиль представления результатов вычислений
- •Примеры символьных операций в командном режиме
- •Операторы вычисления пределов функций
- •Задание операторов пользователя
- •Порядок выполнения лабораторной работы 3
- •Варианты упражнения 3
- •Варианты упражнений 6 и 7
- •Контрольные вопросы
- •Практическая работа 4. Программирование в среде MathCad
- •1.5 Практическая работа 5. Решение задач линейного программирования MathCad
- •1.6 Практическая работа 6. Решение задач линейного программирования (Транспортная задача)
- •2. Программирование в среде excel
- •Краткие сведения из теории
- •Настройка пользовательского интерфейса. Управление документами.
- •Оформление листа с текстовыми данными.
- •Оформление листа с числовыми данными.
- •2.3 Копирование/перемещение данных Возможности Автозаполнения
- •Копирование/перемещение данных. Заполнение из списков.
- •Автозаполнение с формированием прогрессий.
- •Мастер условного форматирования. Контроль ввода
- •Контроль ввода
- •Мастер условного форматирования.
- •Ввод формул. Относительная адресация.
- •Использование формул с относительной адресацией.
- •Функция суммирования
- •2.6. Данные процентного типа в формулах. Зависимости в формулах
- •1. Использование данных «процентного» типа
- •Выявление зависимостей в таблице с формулами
- •Полная абсолютная адресация в формулах
- •Полная абсолютная адресация
- •Собственные имена ячеек
- •Частичная абсолютная адресация в формулах
- •Графическое отображение данных
- •Проектирование таблицы для расчета
- •Оформление контроля ввода.
- •Оформление условного форматирования.
- •Оформление примечаний.
- •Задачи линейного программирования
- •Порядок работы
- •2.12 Задачи оптимизации (поиск решения)
- •Порядок работы
- •4. Библиографический список
Варианты упражнений 6 и 7
№ вари-анта |
f(х) |
№ вари-анта |
f(х) |
№ вари-анта |
f(х) |
0 |
|
|
x2
|
|
(2x + 3) sin x |
|
|
|
|
|
|
|
1/(x |
|
|
|
1/(1 + x + x2) |
|
|
|
(x + 1) sin x |
|
|
|
x2
|
|
5x + x lg x |
|
|
Упражнение 8.
Транспонируйте матрицу М
с помощью операции Символы Матрицы Транспонирование.
Инвертируйте матрицу
с помощью операции Символы Матрицы Инвертирование.
Вычислите определитель матрицы М
с помощью операции Символы Матрицы Определитель.
Упражнение 9. Вычислите пределы:
|
|
|
|
|
|
|
|
|
|
|
|
Упражнение 10. Задайте операторы пользователя:
Для пересчета единиц электрической энергии (кВтч в Дж, эВ в Дж) если известно, что
1 кВтч = 3,6 106 Дж;
1 эВ = 1,602 10-19 Дж.
Для пересчета единиц магнитной индукции (Вб/см2 в Т, Гс в Т) если известно, что
1 Вб/см2 = 1 104 Т;
1 Гс = 1 10-4 Т.
Для пересчета единиц мощности (эрг/с в Вт, кгсм/c в Вт) если известно, что
1 эрг/с = 1 10-7 Вт;
1 кгсм/c = 9,80665 Вт.
Контрольные вопросы
Назовите способы выполнения символьных операций в MathCAD.
Что необходимо сделать с выражением перед применением символьных преобразований в командном режиме?
Перечислите символьные операции с выделенными выражениями.
Перечислите символьные операции с выделенными переменными.
Перечислите символьные операции с выделенными матрицами.
Перечислите символьные операции преобразования.
Какие параметры определяет стиль представления результатов вычислений и где он задается?
В каких случаях результат символьных преобразований помещается в буфер обмена?
Каким образом можно вычислить предел в MathCAD?
Для чего необходимо задание операторов пользователя?
Как задать оператор пользователя?
Как вычислить определитель матрицы?
Как можно транспонировать матрицу?
Как найти первообразную?
Практическая работа 4. Программирование в среде MathCad
Для вставки программного кода в документы в MathCAD имеется специальная панель инструментов Programming (Программирование), которую можно вызвать на экран нажатием кнопки Programming Toolbar на панели Math (Математика). Большинство кнопок этой панели выполнено в виде текстового представления операторов программирования, поэтому их смысл легко понятен.
Основными инструментами работы в MathCAD являются математические выражения, переменные и функции ( mod(x,y) - возвращает остаток от деления x на y, floor(x/y)-возвращает большее целое значение, меньшее или равное x, length -возвращает количество элементов вектора v. и др.). Нередко записать формулу, использующую ту или иную внутреннюю логику (например, возвращение различных значений в зависимости от условий), в одну строку не удается. Назначение программных модулей как раз и заключается в определении выражений, переменных и функций в несколько строк, часто с применением специфических программных операторов.
Программирование имеет ряд существенных преимуществ, которые в ряде случаев делают документ более простым и читаемым: -возможность применения циклов и условных операторов; -простота создания функций и переменных, требующих нескольких простых шагов -возможность создания функций, содержащих закрытый для остального документа код, включая преимущества использования локальных переменных и обработку исключительных ситуаций (ошибок). программный модуль обозначается в MathCAD вертикальной чертой, справа от которой последовательно записываются операторы языка программирования.
Разработка программы
Вставить
строку программного кода в уже созданную
программу можно в любой момент с помощью
той же самой кнопки Add
Line (Добавить
линию). Для этого следует предварительно
поместить на нужное место внутри
программного модуля линии ввода.
Например, расположение линии ввода на
строке приведет к появлению новой линии
с место-заполнителем перед этой строкой.
Если передвинуть вертикальную линию
ввода из начала строки в ее конец, то
новая линия появится после строки. Если
выделить строку не целиком, а лишь
некоторую ее часть, то это повлияет на
положение в программе новой строки
кода.
Положение
линий ввода влияет на положение новой
линии Зачем может потребоваться вставка
новой линии в положение, показанное на
следующем рисунке. Новая вертикальная
черта с двумя линиями выделяет фрагмент
программы, который относится к условию
х>о, находящемуся в его заголовке.
Результат
вставки новой линии в программу
Пример
программы
В
режиме выполнения программы, а это
происходит при любой попытке вычислить
f(х), выполняется `последовательно каждая
строка кода.
Локальное присваивание (<-)
Язык программирования MathCAD не был бы эффективным, если бы не позволял создавать внутри программных модулей локальные переменные, которые "не видны" извне, из других частей документа. Присваивание в пределах программ, в отличие от документов MathCAD, производится с помощью оператора Local Definition (Локальное присваивание), который вставляется нажатием кнопки с изображением стрелки <- на панели Programming (Программирование). Ни оператор присваивания :=, ни оператор вывода = в пределах программ не применяются. Переменная z существует только внутри программы, выделенной вертикальной чертой. Из других мест документа получить ее значение невозможно.
Локальное
присваивание в программе
Условные операторы (if, otherwise)
Действие условного оператора if состоит из двух частей. Сначала проверяется логическое выражение (условие) справа от него. Если оно истинно, выполняется выражение слева от оператора if. Если ложно - ничего не происходит, а выполнение программы продолжается переходом к ее следующей строке. Оператор otherwise используется совместно с одним или несколькими условными операторами if и указывает на выражение, которое будет выполняться, если ни одно из условий не оказалось истинным.
Операторы цикла (for, while, break, continue)
В языке программирования MathCAD имеются два оператора цикла: for и while. Первый из них дает возможность организовать цикл по некоторой переменной, заставляя ее пробегать некоторый диапазон значений. Второй создает цикл с выходом из него по некоторому логическому условию. Чтобы вставить в программный модуль оператор цикла: 1. Создайте в программном модуле новую линию. 2. Вставьте один из операторов цикла for или while нажатием одноименной кнопки на панели Programming (Программирование). 3. Если выбран оператор for, то вставьте в соответствующие местозаполнители имя переменной и диапазон ее значений, а если while - то логическое выражение, при нарушении которого должен осуществляться выход из цикла. 4. В нижний местозаполнитель введите тело цикла, т. е. выражения, которые должны выполняться циклически. 5. При необходимости дополните программу другими строками и введите в них нужный код.
Примечание
Диапазон значений переменной в условии цикла for можно задать как с помощью диапазона ранжированной переменной, так и с помощью вектора.
Оператор
цикла for с ранжированной переменной
Оператор
цикла for с вектором
Оператор
цикла while
Иногда необходимо досрочно завершить цикл, т. е. не по условию в его заголовке, а в некоторой строке в теле цикла. Для этого предназначен оператор break.
Оператор
break внутри цикла for
Оператор
break внутри цикла while
Чтобы четче обозначить границы завершения тела цикла, в его конце может использоваться дополнительная строка с оператором continue, который вводится одноименной кнопкой панели Programming
Оператор
continue в конце цикла while
Оператор
continue в конце цикла for
Возврат значения (return)
Если для определения переменной или функции применяется программный модуль, то его строки исполняются последовательно при вычислении в документе этой переменной или функции. Соответственно, по мере выполнения программы рассчитываемый результат претерпевает изменения. В качестве окончательного результата выдается последнее присвоенное значение. Чтобы подчеркнуть возврат программным модулем определенного значения, можно взять за правило делать это в последней строке программного модуля.
Возврат
значения обозначен явно в последней
строке программы
Вместе с тем, можно прервать выполнение программы в любой ее точке (например, с помощью условного оператора) и выдать некоторое значение, применив оператор return. В этом случае при выполнении указанного условия значение, введенное в местозаполнитель после return, возвращается в качестве результата, а никакой другой код больше не выполняется. Вставляется в программу оператор return с помощью одноименной кнопки панели Programming (Программирование).
Применение
оператора return
Перехват ошибок (on error)
Программирование в MathCAD позволяет осуществлять дополнительную обработку ошибок. Если пользователь предполагает, что выполнение кода в каком-либо месте программного модуля способно вызвать ошибку (например, деление на ноль), то эту ошибку можно перехватить с помощью оператора on error. Чтобы вставить его в программу, надо поместить линии ввода в ней в нужное положение и нажать кнопку с именем оператора on error на панели Programming (Программирование). В результате появится строка с двумя местозаполнителями и оператором on error посередине. В правом местозаполнителе следует ввести выражение, которое должно выполняться в данной строке программы. В левом - выражение, которое будет выполнено вместо правого выражения, если при выполнении последнего возникнет ошибка.
Перехват
ошибки деления на ноль
Оператор
перехвата ошибок удобно применять в
комбинации со встроенной функцией
error(S). Она приводит к генерации ошибки
в обычной для MathCAD форме с сообщением
s.
Перехват ошибки деления на ноль
Примеры программирования Рассмотрим два простых примера использования программных модулей в MathCAD для численных и символьных расчетов. В двух приведенных листингах используется большинство операторов, рассмотренных в данной главе.
Программирование
в численных расчетах
Программирование
в символьных расчетах
Индивидуальные задания
(решать по выбору преподавателя.)
Составить программу подсчета количества цифр в натуральном числе.
Составить программу подсчета суммы цифр в натуральном числе.
Составить программу записи натурального числа в обратном порядке. Цифра младшего разряда числа не равна нулю.
Составить рекурсивную программу-функцию вычисления факториала целого неотрицательного числа n.
Составить программу-функцию, инвертирующую вектор. Иными словами, по вектору v=(v0, v1, …, vn-1)T должен получиться вектор w=(vn-1, vn-2, …, v0)T.
Составить программу, выводящую матрицу размера 2*4 с элементами сi,j=i2+j2.
Напечатать все последовательности длины N из чисел 1,2,...,M.
Напечатать все перестановки чисел 1..N (то есть последовательности длины N, в которые каждое из чисел 1..N входит ровно по одному разу).
Перечислить все разбиения целого положительного числа N на целые положительные слагаемые (разбиения, отличающиеся лишь порядком слагаемых, считаются за одно). Пример: N=4, разбиения: 1+1+1+1, 2+1+1, 2+2, 3+1, 4.
Перевести заданное целое число в систему римского счета
Определить положение в массиве первого нулевого элемента
Вычислить произведение ненулевых элементов массива
Определить сумму четных цифр от 10 до 2
Определить сумму нечетных цифр от 1 до 10
