[Список тем] [Вступление к этой теме] страницы темы: [1] [2]


Алфавит входного языка системы Mathcad


Общение с пользователем системы Mathcad осуществляется с помощью математически ориентированного входного языка общения с системой, который является типичным языком визуального программирования. В нем большинство операторов и функций языка знакомо пользователю по курсу математики. Благодаря этому большинство расчетов в Mathcad не требует программирования в общепринятом смысле этого слова. Однако и обычные программные средства в Mathcad есть. Они будут описаны позже. Алфавит входного языка - это совокупность символов и слов, которые используются при задании команд и функций, необходимых для решения интересующего пользователя класса задач. Алфавит системы Mathcad содержит:

К укрупненным элементам языка относятся типы данных, операторы, встроенные функции, функции пользователя, процедуры и управляющие структуры.

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

Константы

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

Константы - имеющие уникальные имена объекты, хранящие некоторые значения, которые определяются в процессе загрузки системы. Mathcad поддерживает следующие типы констант:

Для проведения физических расчетов в системе Mathcad может применяться особый вид констант - единицы измерения размерных величин. Помимо своего числового значения, они характеризуются еще и указанием на то, к какой физической величине они относятся. При необходимости Mathcad выполняет физические расчеты с соответствующим преобразованием размерных величин. Уместно сразу отметить, что оператор умножения * при выводе числа на экран меняется на привычную математикам точку в середине строки, а операция возведения в степень (с применением оператора ^) отображается путем представления порядка в виде надстрочного элемента. Оператор деления / заменяется горизонтальной чертой. Десятичные числа имеют основание 10. Диапазон их возможных значений лежит в пределах от 10307 до 10-307 (это машинная бесконечность и машинный ноль).

Переменные

Переменные являются также имеющими уникальные имена объектами. Однако, в отличие от констант, они вначале не определены, а после определения могут принимать любые значения в пределах своего типа. Имена констант, переменных и иных объектов называют идентификаторами. В системе Mathcad тип переменной определяется ее значением - переменные могут быть числовыми, строковыми, символьными и т. д., поэтому тип переменной предварительно не задается. Имена (идентификаторы) могут иметь практически любую длину, и в них могут входить любые латинские и греческие буквы, а также цифры, однако начинаться идентификатор может только с буквы, например: х, х1, alfa, X_coordinate. Кроме того, в идентификаторах недопустимо использование пробелов. Некоторые спецсимволы (например знак объединения "_") могут входить в состав идентификаторов, другие (например знаки арифметических действий) недопустимы, поскольку ведут к неоднозначности идентификации переменной. Значения строковых переменных задаются в кавычках, например: N:= " My_name". Нельзя использовать в идентификаторах буквы русского языка. Малые и большие буквы в идентификаторах различаются. Идентификаторы должны быть уникальными, то есть они не могут совпадать с именами встроенных или определенных пользователем функций. Полезно сверять подозрительные имена со списком всех функций, который можно получить, щелкнув на кнопке f (х) панели инструментов.

Операторы

Операторы - элементы языка, предназначенные для создания математических выражений совместно с данными, именуемыми операндами. Это знаки арифметических операций, вычисления сумм, произведений, производной, интеграла и т. д. После указания операндов (аргументов соответствующих операторов) операторы становятся исполняемыми программными блоками. Mathcad позволяет задавать и пользовательские операторы. Операторы в Mathcad вводятся с помощью шаблонов, которые, в свою очередь, имеют места ввода для операндов. Мы рассмотрим операторы по мере описания операций, выполняемых с их помощью.

Встроенные функции

Mathcad поддерживает множество встроенных функций, то есть функций, определенных в самой системе и готовых к немедленному использованию. Функции обладают свойством возвращать некоторое значение в ответ на обращение к ним по имени, с указанием аргумента (или списка аргументов). Они возвращают символьное или числовое значение, вектор или матрицу. В систему встроен ряд функций, например, функция вычисления синуса sin(х), натурального логарифма ln(х) и т. д. Функции вводятся своими именами, принятыми для системы Mathcad. Иногда эти имена несколько отличаются от стандартных обозначений - в основном некоторым сокращением. К примеру, arctg(x) в Mathcad обозначается как atan(x). При вводе функции при помощи палитры функций появляется шаблон для ввода параметров. В этом случае в поле палитры выводится синтаксическая форма записи функций. Если на имени функции установлен курсор ввода, то нажатие клавиши F1 открывает страницу справки по указанной функции.

Функции пользователя

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

  • файлов, загружаемых библиотек функций, пакетов расширений и электронных книг. Их можно приобрести или иногда получить из Интернета. В этой книге описан только базовый набор функций, входящий в поставку самой системы Mathcad 8.0/2000 PRO и достаточный для решения большинства задач обычных Пользователей. Позже мы вернемся к функциям пользователя и опишем их более подробно.

    Математические выражения

    Функции, наряду с операторами, могут входить в математические выражения. Например, рассмотрим выражение:

    Y := 5*ln(х)+1 В этом выражении Y - переменная, 1 и 5 - числовые константы, * и + - операторы, ln(х) - встроенная функция.

    При выполнении символьных операций константы p и е используются только в символьном виде. Это значит, что их численные значения не вычисляются при выводе результатов символьных вычислений. К примеру, число 2p = 6.283... при использовании знака символьного вычисления -> выводится как 2p, а не как приближенное численное значение 6.283, при использовании же знака = будет получено 6.283.

    Переменные

    Присваивание переменным значений

    Назначение переменных в Mathcad соответствует назначению переменных в математике. Уже само их название говорит о том, что значения переменных могут меняться. Они используются для обобщенного представления данных определенного типа. К примеру, вычисление значения выражения (2+3), равного 5, носит весьма частный характер. Куда более общим является вычисление значения выражения (х+у) как суммы значений двух переменных -х и у. В частности, при х=1 и у=3 для (х+у) получим значение 4, но при х=3 и у=5 вычисление (х+у) даст уже 8. Переменные имеют имена - идентификаторы. В нашем случае это х и у. Однако Mathcad позволяет задавать и более сложные имена, например Х_сооrdinate, Vcub и т. д. Длина имени не ограничена. Внутри имен переменных надо избегать знаков, которые могут трактоваться как операторы (например, пробел, *, /, +, - и т. д). Имена должны начинаться с буквы (допустимо а2, но не 2а и т. д.).

    Задание переменным значений называется присваиванием. В отличие от классической записи операции присваивания в математике, в Mathcad знак равенства = можно использовать как оператор присваивания только один раз, при первом присваивании значения новой переменной любого типа. Основное назначение этого оператора - вывод значения переменной или выражения, после которых и ставится знак равенства. До первого присваивания переменная не определена (не имеет значения), и поэтому знак = срабатывает как оператор присваивания, например:

    х=2

    у=3

    х+у = 5

    В последнем случае переменные уже определены, поэтому едва вы успеете ввести знак =, как тут же появится результат сложения х и у - число 5. Mathcad "знает", что поскольку переменные х и у уже определены, то знак = надо использовать для вывода результата.

    Основным оператором присваивания является составной знак :=, вводимый двоеточием. Его можно применять как при первом присваивании значения переменной, так и при любой следующей по порядку операции присваивания:

    х:=3

    у:=2

    х+y = 5

    Так какой же оператор (:= или =) правильнее использовать для присваивания переменным значений? В новой версии Mathcad, пожалуй, правильнее все же использовать знак =. Это позволяет избежать переопределения некоторой переменной, которую пользователь ранее отвел под константу. Если вы попытаетесь переопределить ее вводом оператора =, то Mathcad проигнорирует ваши усилия и выведет значение этой переменной.

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

    Локальное и глобальное присваивание

    Если переменной присваивается значение с помощью оператора := (или =), то такое присваивание является локальным. Однако с помощью знака (три горизонтальные черточки) можно обеспечить глобальное присваивание, то есть независимо от того, в каком месте документа стоит оператор глобального присваивания, переменная получает это значение. К примеру, если переменной присвоено таким образом некоторое значение в самом конце документа, то она будет иметь это же значение и в начале документа. Разумеется, в дальнейшем значение переменной можно изменить и с помощью оператора локального присваивания.

    Статус присваивания не следует путать со статусом самих переменных. Все переменные, описанные выше, являются глобальными, поскольку их можно определять в любом месте документа и в любом месте изменять их значение. При этом после смены значения новое значение сохраняется ниже места, где произошло присваивание переменной нового значения. Локальные переменные в системе Mathcad содержатся в телах функций пользователя, которые будут рассмотрены ниже. Как уже отмечалось, использование незаданной переменной в каком-либо математическом выражении ошибочно и ведет к окраске ее имени ярко-красным цветом (в предшествующих версиях - черным цветом). Установив указатель мыши на имени переменной, во всплывающей подсказке можно получить дополнительное текстовое пояснение о сути ошибки. Использование переменных, значения которых не определены, может привести к различным ошибкам. Все они диагностируются и требуют исправления для продолжения работы.

    Особенности локального и глобального присваивания переменным

    Размерные переменные

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

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

    Рис. 16.2. Примеры задания и применения размерных переменных

    Ранжированные переменные

    До сих пор мы рассматривали переменные, которые имеют единственное значение. Однако в математике часто возникает необходимость в задании некоторого ряда значений - чаще всего упорядоченного. Например, для вычисления факториала) N!=1*2*.. .*(N-1)*N нужно сформировать ряд чисел от 1 до N с шагом 1 и перемножить их. Также упорядоченный ряд значений какой-то переменной (например абсциссы х) нужен для построения графика функции - Mathcad строит графики функций по точкам, соединяя их отрезками прямой. Для создания таких рядов в Mathcad используются так называемые ранжированные переменные. Иногда они заменяют управляющие структуры - циклы, однако полноценной такая замена все же не является. В частности, потому что не предусмотрен выбор любого значения ранжированной переменной. В самом простом случае для создания ранжированной переменной используется выражение:

    Name:= Nbegin..Nend

    Здесь Name - имя переменной,

    Nbegin - ее начальное значение,

    Nend - конечное значение,

    .. - символ, указывающий на изменение переменной в заданных пределах (он вводится знаком точки с запятой ;).

    Если Nbegin Для создания ранжированной переменной общего вида используется выражение:

    Name := Nbegin, (Nbegin + Step)..Nend

    Здесь Step - заданный шаг изменения переменной (он должен быть положительным, если Nbegin ЗАМЕЧАНИЕ Полезно знать, что Mathcad позволяет задавать и ранжированные размерное переменные. Каждый компонент такой переменной - размерная величина.

    Таблицы вывода

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

    Рис. 16.3. Примеры применения ранжированных переменных

    Полезно учитывать некоторые свойства таблиц вывода.

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

    Числа в таблицах можно задавать в требуемом формате с помощью операций задания формата чисел. В старых версиях Mathcad при выводе в виде таблицы значений размерного выражения все ячейки таблицы содержали единицу измерения, начиная с Mathcad 8.0, единица измерения выводится только в заголовке таблицы, что, несомненно, удобнее.

    В Mathcad 2000 таблицы значений размерных переменных выводятся в длинных квадратных скобках, а векторы - в длинных круглых скобках.

    Применение ранжированных переменных

    Важно отметить, что задание ранжированных переменных (range variable) эквивалентно заданию конечных циклов. Явно задаются начальное значение, шаг изменения и конечное значение, неявно - обращение к оператору цикла, вычисляющему все промежуточные значения ранжированной переменной при каждом обращении к ней. ранжированные переменные удобно использовать при определении индексированных переменных и векторов, а также при построении графиков. Привыкшие к обычному программированию пользователи часто забывают, что ранжированная переменная - это не обычная переменная, в каждый данный момент имеющая одно значение. Они пытаются выполнять с такими переменными действия, корректные лишь для обычных переменных. Например, задав ранжированную переменную i := 1.. 100, пытаются использовать присваивание вида f := i*2, где f - обычная переменная. Это приводит к ошибке - система

    (в русском переводе) сообщит: "Неправильный контекст. Нажмите F1 для помощи". Однако можно использовать следующее присваивание:

    fi := i2

    В этом случае будет получен новый вектор с именем f, элементы которого в нашем случае являются квадратами значений ранжированной переменной i. Более подробно особенности задания и применения векторов рассматриваются ниже.

    На рис. 16.3 представлена ранжированная переменная J (ряд значений тока в амперах - amp). К сожалению, нетрудно заметить, что при выводе произошла замена одной единицы тока - amp - на эквивалентное ей, но не привычное отношение coul/sec. Это говорит о том, что в применении ранжированных размерных величин в Mathcad пока не все гладко.


    [Список тем] [Вступление к этой теме] страницы темы: [1] [2]

    [В начало страницы]