Чтение онлайн

ЖАНРЫ

Maple 9.5/10 в математике, физике и образовании

Дьяконов Владимир Павлович

Шрифт:

В других случаях последовательность символов рассматривается как строка, если она заключена в двойные кавычки — знаки ", апострофы ' и в обратные апострофы ` Два апострофа подряд формируют апостроф как знак символьной строки, например `abc``def` дает строку abc`def. Любое математическое выражение может входить в строку и, разумеется, оно при этом не выполняется. Например:

> `2+2 не всегда ``четыре```;

2+2 не всегда `четыре`

2.5.2. Неисполняемые программные комментарии

Часто возникает необходимость в задании программных

комментариев. Любой текст после знака # в Maple рассматривается как не выводимый (неисполняемый) программный комментарий — даже если это математическое выражение. При этом он не вычисляется. Например:

2+3;#Это пример. А это выражение не вычисляется: 4+5

5

Комментарии полезны в программах на Maple-языке и обычно используются для объяснения особенностей реализованных алгоритмов.

2.5.3. Контроль типа строковых данных

Maple имеет несколько форм задания строковых и символьных. Обычные строковые данные представляются совокупностью любых символов, заключенных в двойные кавычки, например "Привет" или "2+2". Не следует путать двойные кавычки с апострофами и обратными апострофами. Апострофы задают отложенные вычисления для выражений, а обратные апострофы задают символическое имя для переменных.

Для контроля объектов на принадлежность к строковым данным служит функция type с параметром string (файл string):

> str:= "Hello!";

str := "Hello!"

> type(Hello,string);

false

> type (str, string)

true

> type(2+3,string);

false

> type("2+3",string);

true

> char:=a;

char := a

> char:=`a`;

char := a

Нетрудно заметить, что только при заключении строки в кавычки тип строки определяется как строковый. В строках могут быть символы кириллицы, но гарантии в правильности обработки таких символов нет — надо мириться с тем, что Maple — англоязычная программа, и ее возможности в поддержке других языков ограничены.

2.5.4. Интерактивный ввод строк

Для интерактивного ввода строк можно использовать функцию readline(filename), задав в качестве имени файла terminal или опустив имя файла. В этом случае ввод строки осуществляется с клавиатуры компьютера:

> s:=readline;

> Привет мой друг!

s:="Привет мой друг!"

Полезно обратить внимание на то, что запрос в ходе интерактивного ввода может быть сделан на русском языке (если установленный для запросов шрифт имеет символы кириллицы). Нужно также, чтобы и шрифт строки вывода содержал кириллицу, иначе в строке вывода будет типичная «абракадабра» — смесь непонятных символов.

2.5.5. Обработка строк

Имеется ряд функций для работы с обычными строками. Из них наиболее важны следующие:

lenght(str) — возвращает число символов, содержащихся в строке str;

substring(str,a..b) — возвращает подстроку строки str от a-го символа до b-го;

cat(str1,str2,...) — возвращает строку, полученную объединением

строк str1, str2,… (альтернатива — оператор конкатенации в виде точки .);

SearchText(s,str) — производит поиск подстроки s в строке str и при его успехе возвращает номер позиции s в строке str (при отсутствии s в str функция возвращает 0).

Примеры применения этих функций (в виде продолжения ранее приведенных примеров) представлены ниже:

> str:="Hello!";

str := "Hello!"

> length(str);

6

> substring(str,1..3) ;

Hel

> substring(str,4..6);

lo!

> s:=cat("Hello"," my"," friend! ");

s := "Hello my friend"

> SearchText(my, s);

7

> ss:= "Hello "||"my friend! ";

ss := "Hello my friend!"

> seq("Name"||i,i=1..4);

"Namei", "Namei", "Namei", "Namei"

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

2.5.6. Преобразование строки в математическое выражение

Часто возникает необходимость в интерактивном вводе математических выражений. Для ввода с запросом выражения используется функция readstat(promt), где promt — строка с текстовым комментарием. Примере ее применения дан ниже:

> у:=readstat("Введите выражение ");

Введите выражение а*х^2+b;

у:= ах² + b

Альтернативой может стать ввод строкового выражения с последующим преобразованием его в математическое выражение с помощью функции parse:

> s: = `2+3*5`;

s: = 2 +3*5

> evaln(s);

s

> parse(%);

17

Обратите снимание на то, что функция evaln не смогла вычислить строковое выражение `2+3` поскольку оно не является числовым типом данных. Однако функция parse преобразовала это выражение в числовое, что и привело к его вычислению.

2.6. Переменные и их применение

2.6.1. Типы переменных

Как следует из самого названия, переменные — это объекты, значения которых могут меняться по ходу выполнения документа. Пока мы рассматриваем лишь глобальные переменные, доступные для модификации значений в любом месте документа. Тип переменной в системе Maple определяется присвоенной ей значением — это могут быть целочисленные (integer), рациональные (rational), вещественные (real), комплексные (complex) или строчные (string) переменные и т.д. Переменные могут также быть символьного типа (их значением является математическое выражение) или типа списка (см. далее). Для явного указания типа переменных используется конструкция

Поделиться с друзьями: