В других случаях последовательность символов рассматривается как строка, если она заключена в двойные кавычки — знаки ", апострофы ' и в обратные апострофы ` Два апострофа подряд формируют апостроф как знак символьной строки, например `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:="Привет мой друг!"
Полезно обратить внимание на то, что запрос в ходе интерактивного ввода может быть сделан на русском языке (если установленный для запросов шрифт имеет символы кириллицы). Нужно также, чтобы и шрифт строки вывода содержал кириллицу, иначе в строке вывода будет типичная «абракадабра» — смесь непонятных символов.
Имеется ряд функций для работы с обычными строками. Из них наиболее важны следующие:
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:
Читать дальше
Конец ознакомительного отрывка
Купить книгу