Комментарии полезны в программах на 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
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату