методичка. Решение математических задач в среде Mathcad методические указания к лабораторным работам
Скачать 2.22 Mb.
|
ЛАБОРАТОРНАЯ РАБОТА № 4РАБОТА С ФАЙЛАМИ, ИСПОЛЬЗОВАНИЕ УСЛОВНЫХ ФУНКЦИЙ И ПРОГРАММИРОВАНИЕ В СРЕДЕ MATHCAD Цель лабораторной работы – ознакомиться с основными опе- раторами, обеспечивающими работу с файлами данных, организацию вычислений с условными функциями, и изучить основы программи- рования в среде MathCAD. Работа с файлами данныхДля обмена с внешними программными системами MathCAD имеет специальный тип данных – файловые данные. В сущности, это те же векторы и матрицы, но с элементами, которые могут записы- ваться в виде простых текстовых файлов. Ниже перечислены основ- ные файловые операции. READPRN("Имя_файла"). Эта операция считывает данные в виде матрицы. Функция READPRN возвращает матрицу, значения элементов которой однозначно связаны со значениями элементов файла. Или, точнее, каждая строка или столбец возвращаемой матри- цы подобны соответствующим строкам или столбцам текстового представления файла. WRITEPRN("Имя_файла"). Эта операция применяется для записи матричного выражения (или матрицы) в файл с указанным именем. Структура файла подобна структуре матрицы. APPENDPRN("Имя_файла"). Эта операция дописывает дан- ные в уже существующий матричный файл. Следует особо отметить, что при работе с векторами и матрицами, имеющими комплексные элементы, эти операции используют расширенные векторы или мат- рицы, элементы которых – действительные числа. Имя файла включает путь к файлу. Можно задавать как полный путь к файлу, например, С:\Мои документы, так и относительный, имея в виду, что он будет отсчитываться от папки, в которой находит- ся файл с документом MathCAD. Если вы задаете в качестве аргумен- та просто имя файла, то файл будет записан или прочитан из той пап- ки, в которой находится сам документ MathCAD. На рис. 20 приведены примеры использования операторов для ввода-вывода данных. Рис. 20 Использование функций с условиями сравненияВ системе MathCAD существует ряд встроенных функций, у ко- торых возвращаемый ими результат зависит от знака или значения ар- гумента. Так, при их вычислении производится сравнение аргумента с некоторыми числовыми константами, например с нулем или целыми числами. Ниже представлены такие функции с условиями сравнения: ceil(x) – наименьшее целое, большее или равное x; floor(x) – наибольшее целое, меньшее или равное x; mod(x,y) – остаток от деления x/y со знаком x; angle(x,y) – положительный угол между осью x и радиус- вектором точки с координатами (x, y); (x) – функция Хевисайда – единичного скачка (дает 0 при x < 0 и 1 в противном случае); (m,n) – функция, именуемая символом Кронекера, возвращаю- щая 1 при m= nи 0 в противном случае. Функцию Хевисайда можно использовать для задания прямо- угольного импульса с шириной pulse(t, ):= (t) – – ). Более широкие возможности дает функция if для создания условных выражений: if(Условие, Выражение 1, Выражение 2). Если в этой функции условие выполняется, то вычисляется вы- ражение 1, в противном случае – выражение 2 (рис. 21). Использование программных модулейРис. 21 Программные операторы сосредоточены в наборной панели про- граммных элементов (рис. 22). Набор программных элементов весьма ограничен. Рис. 22 Add Line – создает и при необходимости расширяет жирную вертикальную линию, справа от которой в шаблонах задается запись программного блока; – символ локального присваивания (телепрограммного мо- дуля); if – оператор условного выражения; for – оператор задания цикла с фиксированным числом продол- жений while – оператор задания цикла типа "пока" (цикл выполняется, пока выполняется некоторое условие); otherwise – оператор иного выбора (обычно применяется с if); break – оператор прерывания; continue – оператор продолжения; return – оператор-функция возврата; on error – оператор обработки ошибок. Пример использования программных операторов приведен на следующей странице (рис. 23). Рис. 23 Оператор Add Line выполняет функции расширения программ- ного блока. Расширение фиксируется удлинением вертикальной черты программных блоков или их древовидным расширением. Оператор внутреннего присваивания выполняет функции внутреннего локального присваивания. Например, выражение x присваивает переменной x значение 12. Локальный характер присваи- вания означает, что такое значение x сохраняет только в теле про- граммы. За пределами тела программы значение переменной может быть не определенным либо равно значению, которое задается опера- тором локального := и глобального присваивания. Оператор создания условных выражений if задается в виде Выражение if Условие Если условие выполняется, то возвращается значение выраже- ния. Совместно с этим оператором часто используются операторы прерывания break и оператор иного выбора otherwise. Оператор for служит для организации циклов с заданным чис- лом повторений. Он записывается в виде for Var Nmin..Nmax Эта запись означает, что если переменная Var меняется с шагом +1 от значения Nmin до Nmax, то выражение, помещенное в шаблон, будет выполняться. Переменную счетчика Var можно использовать в выражениях программы. Оператор While служит для организации циклов, действующих до тех пор, пока выполняется некоторое условие. Этот оператор запи- сывается в виде while Условие Выполняемое выражение записывается на место шаблона. Оператор otherwise (иначе) обычно используется совместно с оператором if. Его использование поясняет следующая программная конструкция: Оператор break вызывает прерывание работы программы вся- кий раз, как он встречается. Чаще всего он используется совместно с оператором условного выражения if и операторами циклов while и for, обеспечивая переход в конец тела цикла. Оператор continue (продолжения) используется для продолже- ния работы после прерывания программы. Он также используется обычно совместно с операторами задания циклов while и for, обеспе- чивая после прерывания возврат в начало цикла. Оператор-функция возврата return прерывает выполнение программы и возвращает значение своего операнда, стоящего следом за ним. Например, в приведенном ниже случае return 0 if x < 0 будет возвращаться значение 0 при любом x< 0. Оператор on error и функция error. Оператор обработки оши- бок позволяет создавать конструкции обработчиков ошибок. Этот оператор задается в виде Выражение_1 on error Выражение_2 Здесь если при выполнении Выражения_1 возникает ошибка, то выполняется Выражение_2. Для обработки ошибок полезна также функция error(S), которая будучи в программном модуле возвращает окошко с надписью, хранящейся в символьной переменной Sили в символьной константе (любой фразе в кавычках). На следующей странице рассмотрены примеры использования программных блоков. Вложенные циклы позволяют сделать программу компактней. Рассмотрен пример решения с использованием вложенных циклов следующей задачи. Данмассивчиселa1..a10.Вычислить 2 10 a1+a2+…+a10(рис. 24, 25). Рис. 24 ПРИМЕНЕНИЕ ПРОГРАММНЫХ БЛОКОВ Применение условного оператора в программном блоке f( x) 0 if x 2 x 10 9.99 10 e 4 x2 otherwis Применение оператора цикла for для вычисления суммы и произведения последовательности целых чисел. sum( n) s 0 prod( n) p 1 prod( 4) 24 for i 1 n for i 1 n s s i sum( 10) 55 sum( 25) 325 p p i p prod( 8) 4.032104 Применение оператора цикла while и break для вычисления первого элемента массива, превосходящего заданное число (1,98) и выдачи индекса этого элемента. m 0 2500 vm 1 sin( m) Cоздание массива t( v thesh ) j 0 break if max( v) thesh Инициализация счетчика Отслеживание специального случая while vj thesh j j 1 j vj t( v 1.98) 8 1.989 Впервые восьмой элемент массива превосходит заданную величину Рис. 25 Порядок выполнения работыВойти в систему MathCAD. Внимательно ознакомиться с опи- санием лабораторной работы. Выполнить некоторые рассмотренные примеры. После завершения изучения описания удалить с листа рас- смотренные примеры. 44 Выполнить средствами пакета MathCAD последовательность заданий из вариантов, указанных преподавателем, формируя единый до- кумент. Каждую задачу обязательно сопровождать комментариями. Выполнить задание 1. Выполнить задание 2. Используя условную функцию if, построить график ступен- чатой функции задания 3. Используя программный модуль решить задачу из задания 4. Используя программный модуль решить задачу из задания 5. Используя подпрограммы, решить задачу из задания 6. Содержание отчетаТитульный лист. Решение всех задач с комментариями. Выводы. Контрольные вопросыПеречислите основные операторы для работы с файлами данных. Напишите структуру оператора условия if. Назовите основные программные операторы MathCAD. Какие операторы позволяют организовать циклы с неизвест- ным количеством повторений ? Какие операторы позволяют организовать циклы с известным количеством повторений? Каким образом можно организовать вложенные циклы ? ЗАДАНИЯ ДЛЯ ВЫПОЛНЕНИЯ Задание 1. Сформировать массив чисел по выражению, задан- ному в таблице. Записать значения элементов массива в файл с ука- занным именем. Сосчитать массив из записанного файла и умножить все его элементы на указанный скаляр.
Задание 2. Сформировать матрицу размером и по выражениям, заданным в таблице. Записать значения элементов этой матрицы в файл. Найти максимальный элемент. Обнулить матрицу путем умножения на 0. Сосчитать значения матрицы из файла и вывести ее на экран.
Задание 3.y(x) y(x) y(x) y(x) y(x) y(x) y(x) y(x) y(x) y(x) Задание 4.Вычислить 100 1 i Вычислить 1 i2 Вычислить 128 1 i1 i3 Вычислить 120 1 i1 i Вычислить Вычислить Вычислить Вычислить Вычислить Вычислить Задание 5. Вычислить сумму ряда с заданной точностью Считать, что требуемая точность достигнута, если вычислена сумма нескольких первых слагаемых и очередное слагаемое оказалось по модулю меньше, чем Указать количество учтенных слагаемых.
. 10. Для x= 0,89 и = 0,000001 51 Задание 6.
|