MathCAD

       

Операторы и функции


В математике есть основополагающее понятие – соотношение: имеется два множества; каждому элементу первого множества соотносят элемент второго множества. Частным случаем такого соотношения является функция одного аргумента – каждому значению угла (первое множество) соответствует значение, например, синуса (второе множество), косинуса и т.д. Читатель средних лет тут сразу вспомнит знаменитые таблицы Брадиса с такими «множествами» углов, синусов, логарифмов и других нужных для расчетов данных. Естественно, Mathcad не хранит множество углов и множество соответствующих им синусов, а рассчитывает эту тригонометрическую функцию по определенному алгоритму. Насколько он точен и быстр – это второй вопрос.

Можно говорить о двух множествах чисел, одном множестве функций и еще об одном множестве переменных и о множестве значений определенного интеграла: каждой четверке элементов первых четырех множеств соответствует один элемент пятого множества. Здесь речь идет об операторе определенного интеграла с четырьмя операндами, который также есть в среде Mathcad.

Лет двадцать назад наметилось некое несоответствие в трактовке терминов «функция», «оператор» математиками и программистами[24].

Математик, читая эту книгу, может сделать абсолютно законный вывод, что автор не вполне понимает, что такое оператор и что такое функция. Более того, в самом программировании нет полного единства в определении этих основополагающих понятий. То, что мы называем оператором в среде Mathcad, в среде языка BASIC называется иначе, и наоборот. Так, в среде языка BASIC есть очень удобный оператор Swap(a, b), меняющий в переменных a и b их содержимое. Этот оператор ничего не возвращает и, следовательно, с точки зрения пользователя Mathcad не может называться оператором. С другой стороны, операторы и функции Mathcad сами по себе тоже могут ничего не возвращать, а просто находиться в Mathcad-документе и ждать, когда с ними что-нибудь сделают. Например, поместят в левый операнд оператора вывода числового значения. Вот тогда-то они начнут возвращать то, что записано в приложениях 2 и 3.


Будем считать, что термины «оператор» и «функция» программно-зависимы, и рассмотрим не их суть (об этом пусть спорят теоретики), а отличия друг от друга в среде Mathcad.
Вот тест на внимательность читателя: заметил ли он разницу в использовании тригонометрических функций sin и cos на рис. 1.15 и 1.16. На первом рисунке аргумент a заключен в скобки, а на втором – нет. На рис. 1.16 можно было бы написать более экзотически (по-арабски): a sin и a cos.
Дело в том, что вычисление синуса и косинуса на рис. 1.15 ведется через вызов функции, а на рис. 1.16 – через вызов оператора. Для компьютера нет никакой разницы между функцией и оператором: и в том и в другом случае все сводится к вызову соответствующей вычислительной процедуры. Разница важна для пользователя, который еще в школе на уроках математики привык, что сложение, например, – это оператор с двумя операндами: 2 + 5, а синус – функция с одним аргументом: sin(a). Но ничто не мешает нам складывать через вызов функции (встроенной или пользовательской):
сложить(a, b):= a + b
сложить(2, 5)=7,
а рассчитывать синус и косинус через вызов оператора – см. рис. 1.16.
Функции вводятся в документ, как правило, через нажатие соответствующих кнопок: «s», «i», «n», «(» и т.д. Но лучше для этого использовать «мастер функций» (рис. 1.28).

Содержание раздела