Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по Прологу.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
164 Кб
Скачать
☆

Контрольный пример

Фрагмент программы печатает все элементы, проходя его «в глубину».

show_tree(nil).

show_tree(tree(X,Left,Right)):-write(X),show_tree(Left), show_tree(Right).

Задание к работе

1. Составить программу, которая решает задачи соответствующего варианта.

2. Предусмотреть в программе возможности автоматического ввода/вывода деревьев.

3. Подобрать тестовые данные, проверяющие работу программы.

4. Провести анализ ошибок и полученных результатов, составить отчет о проделанной работе.

Варианты заданий

  1. Подсчитать длину максимального пути и выдать его трассировку.

  2. Выдать метки всех вершин с их кратностями.

  3. Построить деревянное покрытие графа.

  4. Выделить метку вершины дерева, имеющую наибольшее число вхождений.

  5. В указанном ярусе дерева добавить вершину с указанной меткой.

  6. Составить программу, реализующую сортировку линейного числового списка на основе бинарного отсортированного дерева.

  7. Проверить дерево на изоморфизм.

  8. Для связного графа построить деревянное покрытие, начиная с указанной вершины.

  9. Выделить в дереве все поддеревья с указанной меткой.

  10. Реализовать обход дерева в ширину с выдачей меток.

  11. Удалить вершину с указанной меткой, в случае отсутствия указанной метки выдать сообщение о невозможности удаления.

  12. Реализовать обход дерева в глубину с выдачей меток.

  13. Реализовать поиск в дереве данного поддерева.

  14. Подсчитать количество вхождений в дерево данной метки.

  15. Выделить в дереве максимальное поддерево с заданной меткой.

  16. Подсчитать количество вершин дерева. Выдать наиболее длинный путь дерева.

  17. Подсчитать в дереве количество совпадающих вершин.

  1. Выдать элемент бинарного дерева, который имеет в нем наибольшее число вхождений.

  2. Сравнить два дерева на изоморфизм.

  3. Построить дерево по алгебраическому выражению.

Лабораторная работа № 5

Работа с динамическими базами данных

Цель работы

Ознакомиться с реализацией динамических баз данных в языке Пролог.

Задание для подготовки к работе

Изучить лекционный материал.

Порядок выполнения работы

1. Решить задачу соответствующего варианта.

2. Подобрать тестовые данные и протестировать программу на компьютере.

3. Составить отчет о проделанной работе.

Содержание отчета

1. Исходные тексты программ на языке Пролог.

2. Наборы тестовых данных и результаты работы программ.

3. Перечень и анализ ошибок.

4. Выводы по работе.

Основные понятия

Реляционная модель данных предполагает, что база данных – это есть описание некоторого множества отношений. Пролог-программу можно рассматривать как такую базу данных, здесь отношения между данными представлены в виде фактов и правил. В Прологе есть специальные средства для модифицирования этой базы данных, то есть добавлять и удалять новые отношения из файла. Для этих целей служат встроенные предикаты [1, 5]:

consult(F) – все предложения, содержащиеся в файле будут использоваться Пролог-машиной для достижения целей.

reconsult(F) – если в файле есть предложения, касающиеся отношений, которые уже были определены ранее, старые отношения заменяются на новые из файла.

assert(C) – добавляет предложение C из базы данных.

retract(C) – удаляет предложение C из базы данных.

asserta(C) – помещает предложение C в начале базы данных.

assertz(C) – помещает предложение C в конце базы данных.

see(F) – делает файл F текущим входным потоком.

tell(F) – файл становиться текущим выходным потоком.

seen – закрывает текущий входной поток.

told – закрывает текущий выходной поток.