Комментарии полезны в программах на Maple-языке и обычно используются для объяснения особенностей реализованных алгоритмов.
2.5.3. Контроль типа строковых данных
Maple имеет несколько форм задания строковых и символьных. Обычные строковые данные представляются совокупностью любых символов, заключенных в двойные кавычки, например 'Привет' или '2+2'. Не следует путать двойные кавычки с апострофами и обратными апострофами. Апострофы задают отложенные вычисления для выражений, а обратные апострофы задают символическое имя для переменных.
Для контроля объектов на принадлежность к строковым данным служит функция type с параметром string (файл string):
> str:= 'Hello!';
> type(Hello,string);
> type (str, string)
> type(2+3,string);
> type('2+3',string);
> char:=a;
> char:=`a`;
Нетрудно заметить, что только при заключении строки в кавычки тип строки определяется как строковый. В строках могут быть символы кириллицы, но гарантии в правильности обработки таких символов нет — надо мириться с тем, что Maple — англоязычная программа, и ее возможности в поддержке других языков ограничены.
2.5.4. Интерактивный ввод строк
Для интерактивного ввода строк можно использовать функцию readline(filename), задав в качестве имени файла terminal или опустив имя файла. В этом случае ввод строки осуществляется с клавиатуры компьютера:
> s:=readline();
> Привет мой друг!
Полезно обратить внимание на то, что запрос в ходе интерактивного ввода может быть сделан на русском языке (если установленный для запросов шрифт имеет символы кириллицы). Нужно также, чтобы и шрифт строки вывода содержал кириллицу, иначе в строке вывода будет типичная «абракадабра» — смесь непонятных символов.
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!';
> length(str);
> substring(str,1..3) ;
> substring(str,4..6);
> s:=cat('Hello',' my',' friend! ');
> SearchText(my, s);
> ss:= 'Hello '||'my friend! ';
> seq('Name'||i,i=1..4);
Эти функции дают достаточно средств для обработки данных строкового типа, которые можно применять не только для создания текстовых комментариев, но и для управления вычислительным процессом в программах.
2.5.6. Преобразование строки в математическое выражение
Часто возникает необходимость в интерактивном вводе математических выражений. Для ввода с запросом выражения используется функция readstat(promt), где promt — строка с текстовым комментарием. Примере ее применения дан ниже:
> у:=readstat('Введите выражение ');
Введите выражение а*х^2+b;
Альтернативой может стать ввод строкового выражения с последующим преобразованием его в математическое выражение с помощью функции parse:
> s: = `2+3*5`;
> evaln(s);
> parse(%);