Основные элементы языка программирования Icon. Чанышев О.Г. - 11 стр.

UptoLike

Составители: 

21
4. Символьные множества
Множества символов заключается в апострофы: 'abcd'. В
Icon'е существуют следующие встроенные множества символов:
&ascii – 128 символов ASCII.
&cset – 256 символов.
&digits – цифры ('0123456789').
&lcase – множество символов латиницы в нижнем регистре.
&ucase – множество символов латиницы в верхнем регистре.
&letters – все символы латиницы (объединение &lcase и
&ucase).
4.1. Операции с множествами символов
-c – производит множество cset, состоящее из символов, не
встречающихся в c.
*c – число
элементов c.
c1**c2 – пересечение c1 с c2.
c1++c2 – объединение c1 и c2.
c1--c2 – «разность» между c1 и c2. Итоговое множество
включает только те символы из c1, которых нет в c2.
4.2. Принадлежит ли символ множеству? Функция any
any(c,s) – возвращает 2, если s[1] существует и является эле-
ментом множества c.
any(c,s,i) – возвращает i+1, если s[i] существует и является
элементом множества c.
22
5. Строки
S:="This is string"
Для того чтобы выбрать i-ый символ строки, следует рас-
сматривать строку как массив символов s:=S[i]. Вы можете при-
своить иное значение символу в строке, заданной переменной, но
не можете сделать то же самое для строкилитерала:
S[1]:="t" – допустимо. "This is string"[1]:="t" – недопустимо.
Значение индекса может быть отрицательным целым.
procedure main()
S:="This is string"
writes(S[1])
writes(" ",S[14])
writes(" ",S[-1])
end
Выход: T g g
5.1. Подстроки
Выделяя подстроки
индексированием, следует иметь в виду
неочевидное:
при указании индексов слева направо первый индекс есть
номер левого символа подстроки, второйправый выбираемый
символ, указываемый как <порядковый номер> + 1;
при указании подстроки справа налево с использованием
отрицательных значений, 0 – есть крайний правый символ, -(n+1)
указывает на крайний левый выбираемый символ (n-ый справа).
……………………………………………….
S:="This is string"
write(S[9:15])# Получим на выходе
string.
write(S[0:-6])# Получим на выходе string.
write(S[15:9])# Получим на выходе string.
#Как видим, таким способом подстрока не реверсируется.
write(S[2:0])# Получим на выходе his is string
write(S[-1:1])# Получим на выходе This is strin
write(S[9:12])" Получим на выходе str
                 4. Символьные множества                                                         5. Строки

       Множества символов заключается в апострофы: 'abcd'. В               S:="This is string"
Icon'е существуют следующие встроенные множества символов:
       &ascii – 128 символов ASCII.                                       Для того чтобы выбрать i-ый символ строки, следует рас-
       &cset – 256 символов.                                         сматривать строку как массив символов s:=S[i]. Вы можете при-
       &digits – цифры ('0123456789').                               своить иное значение символу в строке, заданной переменной, но
       &lcase – множество символов латиницы в нижнем регистре.       не можете сделать то же самое для строки – литерала:
       &ucase – множество символов латиницы в верхнем регистре.           S[1]:="t" – допустимо. "This is string"[1]:="t" – недопустимо.
       &letters – все символы латиницы (объединение &lcase и              Значение индекса может быть отрицательным целым.
&ucase).                                                                  procedure main()
                                                                          S:="This is string"
     4.1. Операции с множествами символов                                 writes(S[1])
      -c – производит множество cset, состоящее из символов, не           writes(" ",S[14])
встречающихся в c.                                                        writes(" ",S[-1])
      *c – число элементов c.                                             end
      c1**c2 – пересечение c1 с c2.                                       Выход: T g g
      c1++c2 – объединение c1 и c2.
      c1--c2 – «разность» между c1 и c2. Итоговое множество                5.1. Подстроки
включает только те символы из c1, которых нет в c2.                       Выделяя подстроки индексированием, следует иметь в виду
                                                                     неочевидное:
     4.2. Принадлежит ли символ множеству? Функция any                    при указании индексов слева направо первый индекс есть
     any(c,s) – возвращает 2, если s[1] существует и является эле-   номер левого символа подстроки, второй – правый выбираемый
ментом множества c.                                                  символ, указываемый как <порядковый номер> + 1;
     any(c,s,i) – возвращает i+1, если s[i] существует и является         при указании подстроки справа налево с использованием
элементом множества c.                                               отрицательных значений, 0 – есть крайний правый символ, -(n+1)
                                                                     указывает на крайний левый выбираемый символ (n-ый справа).
                                                                          ……………………………………………….
                                                                          S:="This is string"
                                                                          write(S[9:15])# Получим на выходе string.
                                                                          write(S[0:-6])# Получим на выходе string.
                                                                          write(S[15:9])# Получим на выходе string.
                                                                          #Как видим, таким способом подстрока не реверсируется.
                                                                          write(S[2:0])# Получим на выходе his is string
                                                                          write(S[-1:1])# Получим на выходе This is strin
                                                                          write(S[9:12])" Получим на выходе str


                               21                                                                    22