Дьяконов Владимир Павлович
Шрифт:
Рис. 2.15. Построение зависимости энергии ионизации вещества от его номера в таблице периодической системы элементов
2.5. Функции для работы со строковыми данными
2.5.1. Создание и применение строковых данных
Строки как тип данных — это просто цепочки символов. Они обычно используются для создания текстовых комментариев, имен переменных и символьных выражений. Строки комментариев должны каким-либо образом выделяться, чтобы Maple не отождествлял их с именами констант и переменных. Для этого строки-комментарии имеют внутренний разделительный признак, который устанавливается при их вводе (нажатием клавиши F5, которое приводит к исчезновению знака >).
В других случаях последовательность символов рассматривается как строка, если она заключена в двойные кавычки — знаки ", апострофы ' и в обратные апострофы ` Два апострофа подряд формируют апостроф как знак символьной строки, например `abc``def` дает строку abc`def. Любое математическое выражение может входить в строку и, разумеется, оно при этом не выполняется. Например:
2.5.2. Неисполняемые программные комментарии
Часто возникает необходимость в задании программных комментариев. Любой текст после знака # в Maple рассматривается как не выводимый (неисполняемый) программный комментарий — даже если это математическое выражение. При этом он не вычисляется. Например:
Комментарии полезны в программах на Maple-языке и обычно используются для объяснения особенностей реализованных алгоритмов.
2.5.3. Контроль типа строковых данных
Maple имеет несколько форм задания строковых и символьных. Обычные строковые данные представляются совокупностью любых символов, заключенных в двойные кавычки, например "Привет" или "2+2". Не следует путать двойные кавычки с апострофами и обратными апострофами. Апострофы задают отложенные вычисления для выражений, а обратные апострофы задают символическое имя для переменных.
Для контроля объектов на принадлежность к строковым данным служит функция type с параметром string (файл string):
Нетрудно заметить, что только при заключении строки в кавычки тип строки определяется как строковый. В строках могут быть символы кириллицы, но гарантии в правильности обработки таких символов нет — надо мириться с тем, что Maple — англоязычная программа, и ее возможности в поддержке других языков ограничены.
2.5.4. Интерактивный ввод строк
Для интерактивного ввода строк можно использовать функцию readline(filename), задав в качестве имени файла terminal или опустив имя файла. В этом случае ввод строки осуществляется с клавиатуры компьютера:
Полезно обратить внимание на то, что запрос в ходе интерактивного ввода может быть сделан на русском языке (если установленный для запросов шрифт имеет символы кириллицы). Нужно также, чтобы и шрифт строки вывода содержал кириллицу, иначе в строке вывода будет типичная «абракадабра» — смесь непонятных символов.
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).
Примеры применения этих функций (в виде продолжения ранее приведенных примеров) представлены ниже: