This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
courses:knowledge_base_and_expert_system:lab4 [2019/09/04 20:59] andrey.suchkov [Варианты заданий] |
courses:knowledge_base_and_expert_system:lab4 [2022/12/10 09:08] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Лабораторная работа №4: Рекурсивные структуры данных. Деревья ====== | + | ====== Лабораторная работа №4: Рекурсивные структуры данных (деревья) ====== |
===== Цель работы ===== | ===== Цель работы ===== | ||
+ | Изучение и исследование рекурсивных структур данных в языке Visual Prolog на примере деревьев. | ||
===== Основные теоретические положения ===== | ===== Основные теоретические положения ===== | ||
Деревья, также как и списки, являются рекурсивным типом данных. Дерево -- это структура данных, которая может быть разделена на корень дерева, левое и правое поддеревья. Так как левое и правое поддеревья в свою очередь являются деревьями, структура рекурсивна. Кроме того, дерево является еще и составным объектом данных. | Деревья, также как и списки, являются рекурсивным типом данных. Дерево -- это структура данных, которая может быть разделена на корень дерева, левое и правое поддеревья. Так как левое и правое поддеревья в свою очередь являются деревьями, структура рекурсивна. Кроме того, дерево является еще и составным объектом данных. | ||
Line 54: | Line 55: | ||
Следует отметить, что в большинстве случает рекурсия, используемая при работе с деревьями, хвостовой не является, так приходится обрабатывать левое и правое поддеревья, что дает две рекурсивные цели в одном предложении и, соответственно, не выполняется первое правило хвостовой рекурсии - рекурсивный вызов должен быть последней целью в хвостовой части правила вывода. | Следует отметить, что в большинстве случает рекурсия, используемая при работе с деревьями, хвостовой не является, так приходится обрабатывать левое и правое поддеревья, что дает две рекурсивные цели в одном предложении и, соответственно, не выполняется первое правило хвостовой рекурсии - рекурсивный вызов должен быть последней целью в хвостовой части правила вывода. | ||
===== Постановка задачи ===== | ===== Постановка задачи ===== | ||
+ | Реализовать на языке Visual Prolog программу, выполняющую заданные операции над деревьями в соответствии с индивидуальным вариантом задания. | ||
===== Порядок выполнения работы ===== | ===== Порядок выполнения работы ===== | ||
+ | - Напишите на языке Visual Prolog программу, реализующую заданные операции над списками в соответствии с индивидуальным вариантом задания. | ||
+ | - Произведите отладку программы в системе Visual Prolog. | ||
+ | - Постройте трассу программы при выполнении каждого запроса. | ||
===== Варианты заданий ===== | ===== Варианты заданий ===== | ||
[[.lab4:lab4_vars]] | [[.lab4:lab4_vars]] | ||
===== Содержание отчёта ===== | ===== Содержание отчёта ===== | ||
+ | * Цель работы. | ||
+ | * Краткое изложение основных теоретических понятий. | ||
+ | * Постановка задачи с кратким описанием порядка выполнения работы. | ||
+ | * Трассы выполнения запросов и объяснение результатов их выполнения. | ||
+ | * Общий вывод по проделанной работе. | ||
+ | * Код программы. |