ВУЗ:
Составители:
Рубрика:
31
7. Таблицы
Таблицы – структуры данных, на верхнем уровне иерархии
представленные парой «ключ-значение». Ключ может быть лю-
бым неструктурированным типом данных. Значение – любым ти-
пом: записью, списком, множеством.
Создание таблицы: t:=table()
Присвоение ключа и значения: t[k]:=v
Проверка на наличие ключа:
\t[k] – утверждение успешно, если ключ k существует.
/t[k] – утверждение успешно, если ключ k не существует.
Приведем пару
примеров работы с таблицами.
Первый пример еще и демонстрирует создание простого
графического интерфейса. Мы создаем графическое окно, чтобы
кириллические символы выводились в читаемом виде.
link graphics
procedure main()
tab1:=table()
names_obj_table1:=["овощи","фрукты"]
listEl:=[["капуста","картофель","лук"],["яблоки","виноград","
груши"]]
every i:=1 to *names_obj_table1 do
{
tab1[names_obj_table1[i]]:=list()
tab1[names_obj_table1[i]]:=listEl[i]
}
w:=WOpen("size=400,300")# создаем окно размером 300 на
400 пиксел.
Font("Times New Roman,16") # устанавливаем шрифт
WWrite("###################") # пишем в графическое
окно
# Функция key генерирует
ключи
every keY:=key(tab1) do
{
WWrite("КЛЮЧ ",keY)
32
every eL:=Tab1[keY] do every WWrite(!eL)
WWrite("###################")
}
WDone()
end
Выход:
###################
КЛЮЧ овощи
капуста
картофель
лук
###################
КЛЮЧ фрукты
яблоки
виноград
груши
###################
Пример
из книги Thomas'а W. Christopher'а.
Пусть s – строка и мы хотим создать таблицу, ключом в ко-
торой будут символы, а значениями – список их номеров в строке.
t:=table()
every i:=1 to *s & x:=s[i] do
{
/t[x]:=[]
put(t[x],i)
}
7.1. Сортировка таблиц
Для сортировки таблиц используется функция sort(t,k)".
k=1|2|3|4
Если Вы хотите отсортировать по ключам, параметр k дол-
жен быть опущен: sort(t), в противном случае сортировка произво-
дится
по значениям.
Если k=1|2, то результат сортировки представляется в виде
[[key1,val1],[key2,val2],...[keyN,valN]]
7. Таблицы every eL:=Tab1[keY] do every WWrite(!eL) WWrite("###################") Таблицы – структуры данных, на верхнем уровне иерархии } представленные парой «ключ-значение». Ключ может быть лю- WDone() бым неструктурированным типом данных. Значение – любым ти- end пом: записью, списком, множеством. Выход: Создание таблицы: t:=table() ################### Присвоение ключа и значения: t[k]:=v КЛЮЧ овощи Проверка на наличие ключа: капуста \t[k] – утверждение успешно, если ключ k существует. картофель /t[k] – утверждение успешно, если ключ k не существует. лук ################### Приведем пару примеров работы с таблицами. КЛЮЧ фрукты Первый пример еще и демонстрирует создание простого яблоки графического интерфейса. Мы создаем графическое окно, чтобы виноград кириллические символы выводились в читаемом виде. груши link graphics ################### procedure main() tab1:=table() Пример из книги Thomas'а W. Christopher'а. names_obj_table1:=["овощи","фрукты"] Пусть s – строка и мы хотим создать таблицу, ключом в ко- listEl:=[["капуста","картофель","лук"],["яблоки","виноград"," торой будут символы, а значениями – список их номеров в строке. груши"]] t:=table() every i:=1 to *names_obj_table1 do every i:=1 to *s & x:=s[i] do { { tab1[names_obj_table1[i]]:=list() /t[x]:=[] tab1[names_obj_table1[i]]:=listEl[i] put(t[x],i) } } w:=WOpen("size=400,300")# создаем окно размером 300 на 400 пиксел. 7.1. Сортировка таблиц Font("Times New Roman,16") # устанавливаем шрифт Для сортировки таблиц используется функция sort(t,k)". WWrite("###################") # пишем в графическое k=1|2|3|4 окно Если Вы хотите отсортировать по ключам, параметр k дол- # Функция key генерирует ключи жен быть опущен: sort(t), в противном случае сортировка произво- every keY:=key(tab1) do дится по значениям. { Если k=1|2, то результат сортировки представляется в виде WWrite("КЛЮЧ ",keY) [[key1,val1],[key2,val2],...[keyN,valN]] 31 32
Страницы
- « первая
- ‹ предыдущая
- …
- 14
- 15
- 16
- 17
- 18
- …
- следующая ›
- последняя »