ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »
