Важно сразу учесть, что Mathcad выполняет действия над блоками в строго определенном порядке — блоки анализируются (оцениваются) слева направо и сверху вниз. Это означает, что блоки нельзя располагать в документе произвольно. Блоки, готовящие какие-либо операции, должны предшествовать блокам, которые выполняют эти операции. Исключением являются блоки с глобальным определением (они также будет рассмотрены позже). Их можно располагать в любом месте документа, например в конце.
В подавляющем большинстве расчетных задач входной язык общения с Mathcad позволяет задавать их решение в виде вводимых с помощью операторов и функций математических формул и указывать тип желаемых результатов (таблицы или графики). Специальные приемы предусмотрены лишь для задания циклического изменения переменных и создания так называемых ранжированных переменных, имеющих набор значений.
Визуально-ориентированный язык общения системы Mathcad надо отличать от языка реализации системы, то есть обычного языка программирования высокого уровня, на котором написана система. Языком реализации системы Mathcad является один из самых мощных языков высокого уровня — C++.
По существу, входной язык системы — промежуточное звено между скрытым от пользователя языком документа и языком реализации системы. По мере того как пользователь создает (средствами текстового, формульного и графического редакторов) в окне редактирования объекты (тексты, формулы, таблицы и графики), система сама составляет программу на некотором промежуточном языке связи, которая хранится в оперативной памяти до тех пор, пока не будет записана на диск в виде файла с расширением. mcd. Однако важно подчеркнуть, что от пользователя не требуется знание языков программирования (реализации и связи), достаточно освоить приближенный к естественному математическому языку входной язык системы.
В версии Mathcad 2000 PRO значительно снижены требования и к знанию даже входного языка. Практически все операторы, имеющие вид привычных математических символов, можно выбирать мышью в палитрах математических объектов, а большинство математических функций (например, sin, cos, ехр и т. д.) имеют естественную форму задания, например, sin (х) так и вводится — sin (х). К тому же есть возможность выбора функций из списка, имеющегося в специальном окне, что резко уменьшает вероятность ошибок при вводе. Этот список выводится с помощью кнопки f(x) на панели инструментов.
В Mathcad эффективно решена проблема сквозной передачи данных от одного объекта к другому, например, от одного математического выражения к другому, от него к таблицам, от таблиц к графикам и т. д. Поэтому изменение в любой формуле или в задании входных данных тут же ведет к пересчету задачи по всей цепи взаимодействия объектов (это не относится, однако, к символьным операциям, реализуемым с помощью команд меню).
Средства повышения эффективности вычислений и их оптимизация
Как отмечалось, входной язык системы Mathcad — интерпретируемый. В интерпретаторах, например, в Бейсике, листинг программы пользователя анализируется системой сверху вниз
(а в пределах строки — слева направо), и любые указания в программе тут же выполняются. Так же просматриваются блоки в системе Mathcad. Как только блок опознается, система автоматически запускает внутренние подпрограммы для выполнения необходимых действий, например, вычисления по формуле, вывода таблицы значений вектора, построения рисунка по его шаблону и т. д. Интерпретаторы работают медленно, поэтому не случайно, что пользователи, работавшие со старыми версиями Mathcad, отмечали медлительность систем, особенно при сложных вычислениях и при построении графиков. Медлительность является и следствием работы системы в графическом режиме, когда малейшее изменение содержания экрана требует его полной перерисовки.
В последние версии Mathcad введена экспертная система SmartMath. Эта система старается использовать при численных вычислениях конечные формулы, полученные в результате символьных (аналитических) преобразований. Часто (хотя и не всегда) это дает значительное ускорение вычислений в сравнении с их реализацией численными методами.
Операция оптимизации вычислений с помощью системы SmartMath вводится специальными атрибутами (знак * у формул) и словами — директивами. Их число в новых версиях Mathcad значительно увеличено, и для ввода операторов и директив символьной математики добавлена специальная палитра. Таким образом система SmartMath превратилась в полноправного члена семьи Mathcad. Наиболее развит этот подход в самом мощном варианте системы — Mathcad 2000 Premium, в состав которой введено оптимизирующее расширение The Expert Solver, автоматически включающее «на всю катушку» средства SmartMath.
Средства расширения систем Mathcad
Начиная с версии Mathcad PLUS 5.0 в систему введена возможность ее расширения функциями, которые задаются обычными программами на языке С или C++. Однако это не позволяет эффективно и просто решить проблему расширения. На С или C++ хорошо программируют системные программисты, но они весьма редко разбираются в сути математических задач. Как отмечалось, начиная с версии Mathcad PLUS 6.0 у системы появилась весьма изящная возможность записи встроенных в документ программных модулей, реализующих типовые управляющие структуры и записанных в виде обычных программ. Так что теперь Mathcad предоставляет програмистам полную свободу для самовыражения. Средством локального расширения системных возможностей являются также функции пользователя.
Однако в наивысшей степени средства расширения системы Mathcad представлены сменными проблемно-ориентированными электронными книгами, библиотеками и пакетами расширения. Они позволяют настроить систему на наиболее эффективное решение задач в любой области науки и техники — в математике, физике и химии, в астрономии, механике, электротехнике и радиотехнике, в биологии и экономике, в финансах, статистике и т. д.
Электронные книги — это пакеты для решения задач в определенной области науки и техники, ориентированные на типовые средства систем класса Mathcad.
Пакеты расширения — это укрупненные библиотеки, поставляемые с электронными книгами, учитывающими новые операторы и функции, которые пакеты расширения вводят в базовую систему Mathcad. Входящие в нихэлектронные книги нельзя использовать без соответствующих библиотек.
Библиотеки — это комплекты электронных книг и пакетов расширения.
4.Приемы работы с системой MathCad
Документ программы MathCad называется рабочим листом. Он содержит объекты:
формулы и текстовые блоки. В ходе расчетов формулы обрабатываются последовательно, слева направо и сверху вниз, а текстовые блоки игнорируются. Ввод информации осуществляется в месте расположения курсора. Программа MathCad использует три вида курсоров. Если ни один объект не выбран, используется крестообразный курсор, определяющий место создания следующего объекта. При вводе формул используется уголковый курсор, указывающий текущий элемент выражения. При вводе данных в текстовый блок применяется текстовый курсор в виде вертикальной черты.
Ввод формул
Формулы — основные объекты рабочего листа. Новый объект по умолчанию является формулой. Чтобы начать ввод формулы, надо установить крестообразный курсор в нужное место и начать ввод букв, цифр, знаков операций. При этом создается область формулы, в которой появляется уголковый курсор, охватывающий текущий элемент формулы, например имя переменной (функции) или число. При вводе бинарного оператора по другую сторону знака операции автоматически появляется заполнитель в виде черного прямоугольника. В это место вводят очередной операнд. Для управления порядком операций используют скобки, которые можно вводить вручную. Уголковый курсор позволяет автоматизировать такие действия. Чтобы выделить элементы формулы, которые в рамках операции должны рассматриваться как единое целое, используют клавишу ПРОБЕЛ. При каждом ее нажатии уголковый курсор «расширяется», охватывая элементы формулы, примыкающие к данному. После ввода знака операции элементы в пределах уголкового курсора автоматически заключаются в скобки. Элементы формул можно вводить с клавиатуры или с помощью специальных панелей управления. Панели управления (рис. 1) открывают с помощью меню View (Вид) или кнопками панели управления Math (Математика). Для ввода элементов формул предназначены следующие панели:
Введенное выражение обычно вычисляют или присваивают переменной. Для вывода результата выражения используют знак вычисления, который выглядит как знак равенства и вводится при помощи кнопки Evaluate Expression (Вычислить выражение) на панели инструментов Evaluation (Вычисление).