|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Контрольный пример
Фрагмент программы печатает все элементы, проходя его «в глубину».
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. Подсчитать в дереве количество совпадающих вершин.
18. Выдать элемент бинарного дерева, который имеет в нем наибольшее число вхождений. 19. Сравнить два дерева на изоморфизм. 20. Построить дерево по алгебраическому выражению.
Лабораторная работа № 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 – закрывает текущий выходной поток.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |