Читать «Журнал «Компьютерра» № 9 от 7 марта 2006 года» онлайн - страница 45

Компьютерра

Отдельного упоминания заслуживают графические возможности Algebrus. Здесь к услугам пользователя инструменты для рисования самых разнообразных двух— и трехмерных графиков и диаграмм: начиная с банальных графиков функций y=f(x) и заканчивая средствами визуализации векторных полей и построения сложных трехмерных поверхностей (рис. 3). Есть и довольно экзотические функции: скажем, процедура Compass_Chart выводит на экран набор векторов по заданным углам и длинам, а Surface_Plot — трехмерную поверхность, заданную набором точек на плоскости и соответствующих им высот.

Модели для сборки

Несмотря на хорошо проработанный интерфейс, Algebrus, по-видимому, проектировался прежде всего как среда разработки со встроенным интерпретатором языка XPascal. Дело в том, что некоторые из ее возможностей не выведены на интерфейсный уровень, и даже доступ к ним из командной строки не реализован в полной мере. Примером может служить численное интегрирование с помощью метода Integrate. В качестве одного из параметров он принимает интегрируемую функцию (переменную типа TMathFunc); однако, не обращаясь к XPascal Editor, вы не сможете объявить «свою» функцию — это означает, что, хотя вы и можете вызвать Integrate из командной строки, ничего, кроме уже объявленных системных функций, проинтегрировать с ее помощью не удастся. Тоже самое касается любого другого метода, принимающего в качестве одного из параметров некоторую функцию.

Более того, хотя командную строку и стоит, пожалуй, использовать для простейших вычислений, XPascal является гораздо более естественным средством для общения с Algebrus.

Что можно сказать об этом языке? Во-первых, это «надстройка» над обыкновенным Паскалем, включающая в себя большое количество функций, которые могут быть полезны при математических расчетах. Например, в языке есть такие типы данных, как матрица и кватернион, и реализованы различные методы для работы с ними (скажем, вычисление определителя). Есть и другие приятные «мелочи», которые отличают этот язык от классического Паскаля: так, стандартные арифметические операторы (+, —, *) можно применять к векторам и матрицам, а можно и переопределить для работы с какими-либо другими типами данных. В то же время изменения не затрагивают основ языка, поэтому у человека, уже знакомого с Паскалем, освоение среды Algebrus не займет много времени. С другой стороны, недостатком программы, весьма существенным для потенциальных разработчиков, является отсутствие доступа ко встроенным библиотекам — то есть узнать, как именно реализованы используемые Algebrus’ом функции, не представляется возможным. Кроме того, XPascal — это, по-видимому, расширенная версия Паскаля «обыкновенного», но не Object Pascal, то есть этот язык не является объектно-ориентированным в строгом смысле слова (хотя в нем реализована поддержка пользовательских типов данных и структур), что тоже едва ли можно причислить к достоинствам программы.