ВУЗ:
Составители:
Рубрика:
33
Если k=1|2, то
[key1,val1,key2,val2,...,keyN,valN]
Если Вы хотите представить таблицу в виде списка списков,
не сортируя, сделайте нечто подобное следующему:
tab1:=table()
s:="Я не хочу тебя видеть, пока ты не умоешься!"
every i:=1 to *s & x:=s[i] do {
/tab1[x]:=[]
put(Tab1[x],i)
}
list1:=[]
# list1 будет содержать ключ-символ в качестве первого
элемента
# и список(!) номеров позиций его вхождения в строку в ка-
честве следующих
# элементов
.
every list1:=[k:=key(Tab1),tab1[k]] do
{
every el:=!list1 do every WWrites(" ",!el)
WWrite()
}
WDone()
End
Для символа 'т', например, получите: т 11 20 29
7.3. Некоторые другие функции
copy(tab) – создает копию таблицы.
delete(tab,x) – удаляет из таблицы ключ вместе со значением.
insert(tab,x,y) то же, что и T[x]:=y.
member(tab,x) – проверка, является ли x ключом в tab.
34
8. Множества
Мы уже познакомились с объектами типа множество, рас-
сматривая символьные множества. Множество в Icon'е – неупоря-
доченная «коллекция» объектов без дублирования. Если Вы пы-
таетесь включить уже существующий объект, он просто не вклю-
чится. Операции над множествами мы тоже рассмотрели.
Остается познакомиться с функциями, ориентированными
на роботу со множествами.
copy(S) – создает копию
множества S.
delete(S,x) – удаляет элемент x.
insert(S,x) – включает x.
member(S,x) – проверяет на принадлежность элемента x
множеству S.
set() – создает пустое множество.
set(L) – создает множество из элементов списка L.
sort(S) – создает список из множества S. Однотипные эле-
менты собираются вместе и располагаются в порядке создания.
sortf(S,i) – то же самое, только записи и списки сортируются
по i-м полям.
Если k=1|2, то 8. Множества [key1,val1,key2,val2,...,keyN,valN] Мы уже познакомились с объектами типа множество, рас- Если Вы хотите представить таблицу в виде списка списков, сматривая символьные множества. Множество в Icon'е – неупоря- не сортируя, сделайте нечто подобное следующему: доченная «коллекция» объектов без дублирования. Если Вы пы- tab1:=table() таетесь включить уже существующий объект, он просто не вклю- s:="Я не хочу тебя видеть, пока ты не умоешься!" чится. Операции над множествами мы тоже рассмотрели. every i:=1 to *s & x:=s[i] do { Остается познакомиться с функциями, ориентированными /tab1[x]:=[] на роботу со множествами. put(Tab1[x],i) copy(S) – создает копию множества S. } delete(S,x) – удаляет элемент x. list1:=[] insert(S,x) – включает x. # list1 будет содержать ключ-символ в качестве первого member(S,x) – проверяет на принадлежность элемента x элемента множеству S. # и список(!) номеров позиций его вхождения в строку в ка- set() – создает пустое множество. честве следующих set(L) – создает множество из элементов списка L. # элементов. sort(S) – создает список из множества S. Однотипные эле- every list1:=[k:=key(Tab1),tab1[k]] do менты собираются вместе и располагаются в порядке создания. { sortf(S,i) – то же самое, только записи и списки сортируются every el:=!list1 do every WWrites(" ",!el) по i-м полям. WWrite() } WDone() End Для символа 'т', например, получите: т 11 20 29 7.3. Некоторые другие функции copy(tab) – создает копию таблицы. delete(tab,x) – удаляет из таблицы ключ вместе со значением. insert(tab,x,y) то же, что и T[x]:=y. member(tab,x) – проверка, является ли x ключом в tab. 33 34
Страницы
- « первая
- ‹ предыдущая
- …
- 15
- 16
- 17
- 18
- 19
- …
- следующая ›
- последняя »