Создание динамической БД: результаты сессии данной группы студентов - Prolog
Формулировка задачи:
Задание. Динамическая база данных содержит информацию о результатах сессии данной группы студентов в виде утверждений следующих видов: математика (фамилия_и_о, оценка), физика (фамилия_и_о, оценка), химия (фамилия_и_о, оценка), информатика (фамилия_и_о,оценка). Предполагается, что в группе N студентов и все они оценки по всем предметам (5,4,3 или 2). В динамической базе данных (ДБД) для каждого студента может хранится информация об одной или нескольких оценках (т.е несколько фактов) по каждому предмету, что связано с возможными пересдачами экзаменов.
Требуется написать программу, создающую ДБД и предоставляющую возможность ее изменения в процессе работы, а также формирующую без дублирования (т.е одна и та же фамилия дважды не встречается) список студентов, удовлетворяющих следующим условиям.
1. Сдавшие сессию и имеющие три оценки отлично.
Программа работает, но выводит всех студентов, у которых есть хотя бы одна пятерка. В чем причина не могу понять.
Решение задачи: «Создание динамической БД: результаты сессии данной группы студентов»
textual
Листинг программы
dstud(X,P1,O1), O1=5, dstud(X,P2,O2), O2=5, P1 <> P2, dstud(X,P3,O3), O3=5, P1 <> P3, P2 <> P3
Объяснение кода листинга программы
В данном коде происходит следующее:
- Создается факт
dstud(X,P1,O1)
, гдеX
- идентификатор группы студентов,P1
- первый проход по данной группе студентов,O1
- результаты этого прохода (возможно, оценка). - Затем факт
dstud(X,P1,O1)
используется для установления значения переменнойO1
равным 5. - Далее, создается второй проход по группе студентов
P2
и результаты этого прохода (возможно, оценка) присваиваются переменнойO2
. - Переменная
O2
устанавливается равной 5. - Проверяется условие
P1 <> P2
, что означает, что первый и второй проходы различаются. - Затем, создается третий проход по группе студентов
P3
и результаты этого прохода (возможно, оценка) присваиваются переменнойO3
. - Переменная
O3
устанавливается равной 5. - Проверяется условие
P1 <> P3
, что означает, что первый и третий проходы различаются. - Также проверяется условие
P2 <> P3
, что означает, что второй и третий проходы различаются. Таким образом, данный код создает факты о проходах по группе студентов и проверяет их на различие. Возможно, это связано с созданием динамической базы данных для хранения результатов сессии группы студентов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д