Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пролог.doc
Скачиваний:
17
Добавлен:
10.11.2018
Размер:
1.44 Mб
Скачать

7.11.3. Черепашья графика

Все координаты в черепашьей графике отчитываются от предыдущего положения курсора. Определить следующие предикаты:

Penup – поднять перо

Pendown – опустить перо

Pencolor (A) – установить цвет, А – номер цвета

Forward (B) – перемещение черепашки вперед по прямой линии

Back (B) – перемещение ее назад, В –число шагов на расстоянии В, В меняется от 1 до 31999.

Right(A) – поворот по часовой стрелке

Left (A) –поворот против часовой стрелки на угол А

Penpos (строка, столбец, угол) – этот оператор помещает черепаху в соответствующие строку и столбца, с ориентацией на угол А.

А=0 соответствует ориентации вниз.

Пример 1. Нарисовать вертикальную линию, длина – 8000 с точки(1000, 1600)

draw_en:-

penpos (1000, 1600, 0) , pendown, pencolor(1),

forword (8000),

Пример 2. Нарисовать замкнутую фигуру с точки (20000, 16000) из прямых отрезков длиной 1000 путем вращения на 20 при каждом шаге.

draw_Fig:-

graphics(2, 0, 7), penpos (20000, 16000, 0),

pendown, closed_fig (500).

closed_fig (A):-A>=30000,!.

closed_fig (A0):-

forward (1000),

right (2),

A=A0+50, closed_fig (A).

7.12. Списки и их использование

Кроме шести основных объектов, Пролог поддерживает связанные объекты, называемые списками. Списки используются, когда заранее неизвестно, сколько будет элементов в списках и какая в них будет информация. Списком называется упорядоченный набор однотипных объектов, следующих друг за другом. Элементы, составляющие списки, связаны друг с другом. Поэтому с ними можно работать как с группой, т.е. со списком в целом, так и с отдельным элементом.

Над списками определены следующие операции.

  1. Доступ к объектам списка.

  2. Проверка на принадлежность списку.

  3. Разделение списка на два.

  4. Слияние двух списков.

  5. Сортировка элементов списка в порядке возрастания или убывания.

Рассмотрим структуру, организацию и представления списков. Объектами списка могут быть целые, действительные числа, символы, символьные строки, структуры и списки. Файлы не могут быть элементами списка. Порядок расположения элементов определяет конкретный список и играет важную роль в процессе сопоставлений. Совокупность элементов списка помещают в квадратные скобки: [a, b, c, d, e, f]. Элементы отделяются друг от друга запятыми. Количество элементов в списке называется его длиной. Минимальным списком является (нулевой) пустой:[ ].Каждый список можно представить состоящим из двух частей: 1)головы- первый элемент списка и 2) хвоста-остальная часть списка.

Для выделения отдельного элемента в списке используется встроенная операция разделения списка на голову и хвост.

Х= [Н|T]

Head -голова

Tаil - хвост

Голова – отдельный элемент списка,

Хвост – это тоже список .

Для графического представления списка используется 2 формы:

  1. линейный граф number ([66, 84, 12, 32]) – представляет порядок элементов в списке

  2. бинарное дерево граф

[66,84, 12, 32]

66 [84, 12, 32]

84 [12, 32]

12 [32]

32 [ ]

//здесь изобразить граф

Граф задает направление обхода дерева, начиная с корня дерева, лист самой левой ветви даст первый элемент списка и т.д. Дерево используется для интерпретации процесса отката в виде направленного перебора ветвей дерева.