Вход/Регистрация
Maple 9.5/10 в математике, физике и образовании
вернуться

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

Шрифт:

Рис. 2.15. Построение зависимости энергии ионизации вещества от его номера в таблице периодической системы элементов

2.5. Функции для работы со строковыми данными

2.5.1. Создание и применение строковых данных

Строки как тип данных — это просто цепочки символов. Они обычно используются для создания текстовых комментариев, имен переменных и символьных выражений. Строки комментариев должны каким-либо образом выделяться, чтобы Maple не отождествлял их с именами констант и переменных. Для этого строки-комментарии имеют внутренний разделительный признак, который устанавливается при их вводе (нажатием клавиши F5, которое приводит к исчезновению знака >).

В других случаях последовательность символов рассматривается как строка, если она заключена в двойные кавычки — знаки ", апострофы ' и в обратные апострофы ` Два апострофа подряд формируют апостроф как знак символьной строки, например `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);

  • Читать дальше
  • 1
  • ...
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: