Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 07.03.2025
Сообщений: 1

Реализация динамической базы данных

09.03.2025, 15:19. Показов 1252. Ответов 0

Студворк — интернет-сервис помощи студентам
Предметная область – учебная группа факультета. Каждая учебная
группа может быть описана структурой: название факультета, код
специальности, номер группы, состав группы. Состав группы может быть
описан списком структур, описывающих отдельного студента: фамилия, имя,
отчество, обучение на военной кафедре, сводная ведомость. Сводная
ведомость может быть описана списком из следующих структур: предмет,
оценка.
Реализовать следующие типы запросов:
1. Подсчитать число групп на заданном факультете;
2. Найти оценку определенного студента по заданному предмету;
3. Найти группы, которые сдали сессию без двоек;
4. Найти всех студентов, обучающихся на военной кафедре;
5. Найти группу с максимальным числом студентов.


Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
DOMAINS
predmet=v(string,integer)
predmeti=predmet*
student=s(string,string,string,string,integer,string,predmeti)
studenti=student*
list=integer*
slist=string*
 
 
PREDICATES
g(string,integer,integer,studenti).
chislo_grupp(string,integer).
length(list,integer).
member(student,studenti).
member(predmet,predmeti).
na_voennoi(string).
vse_na_voennoi(slist).
otsenka_po_predmetu(string, string, string, string, integer).
gruppy_bez_dvoek(string, integer, integer).
bez_dvoek(predmeti). 
studenty_bez_dvoek(studenti).
 
 
CLAUSES
g(mat,100,1,[s(alla, ivanovna, shajdurova,g,1990,n,[v(matan,2),v(algebra,4)]),s(sergey, aleksandrovich, vakurov,m,1991,y,[v(matan,3)]),s(vera, valerevna, patrusheva,g,1989,n,[v(matan,4),v(algebra,3)])]).
g(fiz,101,2,[s(ruslan, aleksandrovich, lutov,m,1990,y,[v(optika,2),v(termeh,2)]),s(kiril, ilich, petrov,m,1989,y,[v(termeh,4)])]).
g(inf,102,3,[s(sergey, vladimirovich, smolin,m,1989,y,[v(prolog,3),v(vbasic,4)]),s(anna, petrovna, sidyakina,g,1988,n,[v(prolog,3),v(vbasic,5)])]). 
%1
length([],0).
length([_|Tail],N):-length(Tail,N1),N=N1+1.
chislo_grupp(F,N):-findall(Number,g(F,_,Number,_),List),length(List,N).
 
%4
member(H,[H|_]).
member(H,[_|Tail]):-member(H,Tail).
na_voennoi(Surname):-g(_,_,_,Students),member(s(_,_,Surname,_,_,y,_),Students).
vse_na_voennoi(List):-findall(Surname,na_voennoi(Surname),List).
 
%2
otsenka_po_predmetu(FName, MName, LName, Predmet, Otsenka) :-     g(_, _, _, Students),     member(s(FName, MName, LName, _, _, _, Predmeti), Students),     member(v(Predmet, Otsenka), Predmeti). 
 
%3 
bez_dvoek([]). 
bez_dvoek([v(_,Otsenka)|Tail]) :- Otsenka > 2, bez_dvoek(Tail).  
studenty_bez_dvoek([]). 
studenty_bez_dvoek([s(_,_,_,_,_,_,Predmeti)|Tail]) :-     
bez_dvoek(Predmeti),     
studenty_bez_dvoek(Tail).  
gruppy_bez_dvoek(F, Code, Num) :-     
g(F, Code, Num, Students),     
studenty_bez_dvoek(Students). 
 
 
 
goal
%chislo_grupp(mat,N).
%otsenka_po_predmetu(ruslan, aleksandrovich, lutov, optika, Otsenka).
%vse_na_voennoi(L).
%gruppy_bez_dvoek(F, Code, Num).
помогите пожалуйста реализовать 5-ый запрос, единственное что я знаю это то что он должен быть объявлен в разделе facts
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.03.2025, 15:19
Ответы с готовыми решениями:

Вывод фактов из динамической базы данных
База вида Пусть в ней записи Я создаю список по первому параметру: findall(A, base(A,_,_,_), L), e(L),

Создание динамической базы данных Turbo Prolog 2.0
Здравствуйте, делаю лабораторные работы по Turbo Prolog, столкнулась с таким заданием. Дан код: Domains p_name,k_name, pos, college =...

Использование динамических баз данных
Задание подразумевает использование динамических баз данных и вычисление некоторых «агрегативных» характеристик: сумма, количество,...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.03.2025, 15:19
Помогаю со студенческими работами здесь

Программирование внешних баз данных в Visual Prolog
это моя тема контрольной работы Если у кого нибудь есть какие-нибудь книги или методички по данной теме поделитесь пожалуйста

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

Динамическая база данных
"Информационно-справочная библиотечная сисетма". Характеристики книги: ID, автор, название, год издания, предметная область, перечень...

Нахождение самой дорогой игрушки (динамическая база данных)
Нужна помощь в написании 4 пункта: получить названия наиболее дорогих игрушек (цены которых отличаются от самой дорогой не более чем на 100...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru