Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
2 / 2 / 0
Регистрация: 01.11.2012
Сообщений: 45
1

База данных о врачах и пациентах

18.04.2013, 00:38. Показов 1288. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые форумчане, это моя первая и последняя задача на этом языке. 150-летняя преподавательница даже не собирается нам давать малейшие объяснения (похоже она его сама не помнит). Задача:

Отношения-факты:
<Карта пациента>(<номер>,<фио>,<адрес>,<телефон>,<возраст>,<место работы>)
<Врач>(<код врача>,<фио>,<специализация>)
<Прием>(<код врача>,<номер карты пациента>,<диагноз>,<назначения>,<больничный да\нет>)

Отношения-правила:
каких врачей прошел пациент за указанный период времени, какие диагнозы были поставлены за все время, каких пациентов принял врач за все время, кому был выдан больничный и т.п.
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
domains
 i=integer
 s=string
 
predicates
    card(i,s,s,s,i,s)
    doctor(i,s,s)
    visit(i,i,s,s,s,s)
    
clauses
    card(1, Demidenko_OV, Stavropolskaya_123, "28636", 19, KFC).
    card(2, Ivanenko_AA, Ugorskaya_48, "33589", 20, Intel).
    card(3, Kyznetsenko_PB, Omskaya_66, "24565", 45, MacDonalds).
    card(4, Kremnenko_AV, Murmanskaya_23, "40186", 68, BeeFree).
    
    doctor(21, Smirnoff_VV, terapevt).
    doctor(22, Abaeff_AT, khirurg).
    
    visit(21, 1, "2 marta" , angina, Azitromicin, YES).
    visit(21, 2, "4 marta", faringit, Amosin_i_operatsia, YES).
    visit(22, 2, "5 marta", faringit, poloskanie, YES).
    visit(22, 3, "5 marta", lishnyaya_noga, otrezat_nogu, NO).
    visit(22, 4, "1 aprelya", abscess, operatsia, NO).
Совершенно не понимаю, как писать отношения-правила. Подскажите, пожалуйста, что мне делать дальше и что, может быть, я сейчас делаю не так? Буду признательна за помощь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.04.2013, 00:38
Ответы с готовыми решениями:

Составить программу, которая организует ввод данных о пациентах поликлиники
Составить программу, которая организует ввод данных о пациентах поликлиники: ФИО, возраст,...

Программа, позволяющую организовать в виде стека набор данных динамической структуры о пациентах больницы
Добрый день! :) Задание. Помогите пожалуйста, как решать, натолкните на мысль. Составить...

База данных, основанная на службах vs База данных SQL Server
Доброго времени суток. Делал я, значит, Data Access Layer для ASP.NET MVC проекта. Создал обычную...

Оптовая база: База данных!
Для оптовой базы требуется разработать информационную систему, позво- ляющую обрабатывать данные...

2
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
18.04.2013, 22:29 2
Возьмите все строки в фактах в кавычки. С заглавной буквы переменные начинаются. Раз время надо считать, то его стоит в виде структур, а не строк записывать
Диагнозы за все время
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
domains
 i=integer
 s=string
 date=d(integer,integer).
 slist=string*
 
predicates
    nondeterm card(i,s,s,s,i,s)
    nondeterm doctor(i,s,s)
    nondeterm visit(i,i,date,s,s,s)
    nondeterm member(s,slist).
    nondeterm diagnoz(s).
    vse_diagnozi.
    write_d(slist).
    
    
clauses
    card(1, "Demidenko_OV", "Stavropolskaya_123", "28636", 19, "KFC").
    
    doctor(21, "Smirnoff_VV", "terapevt").
    
    visit(21, 1, d(2,3) , "angina", "Azitromicin", "YES").
   
    member(X,[X|_]).
    member(X,[_|Tail]):-member(X,Tail).
    
    diagnoz(D):-visit(_,_,_,D,_,_).
    
    vse_diagnozi:-findall(D,diagnoz(D),List), write_d(List).
    
    %spicialnii vivod, chotbi ne bilo dublikatov
    write_d([]).
    write_d([H|Tail]):-not(member(H,Tail)),!,write(H),nl,write_d(Tail).
    write_d([_|Tail]):-write_d(Tail).
 
goal
    vse_diagnozi.
Остальные попробуйте самостоятельно сделать, уже есть от чего оттолкнуться.
1
2 / 2 / 0
Регистрация: 01.11.2012
Сообщений: 45
04.05.2013, 13:46  [ТС] 3
Спасибо большое! Подскажите, пожалуйста, если мне нужно вывести, каких врачей прошел пациент за указанный период, то как мне связать врача и код, ведь в visit указывается код врача, а в doctor он только расшифровывается.
Prolog
1
vrachi(V):-visit(V,_,_,_,_,_)...
как-то так, но как?

И еще, объясните, пожалуйста, что значит специальный вывод, чтобы не было дубликатов?
0
04.05.2013, 13:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2013, 13:46
Помогаю со студенческими работами здесь

Как подключиться к базе данных на Wpf. База данных Sql Server
Раньше работал с Windows Worms, и то не долго. Щас хочу перейти на WPF. Я в этом деле еще...

Не открывается база данных Access , пишет неразпознаваемый формат базы данных
Не открывается база данных Access , пишет неразпознаваемый формат базы данных,что делать

База данных для телефонной станции ( С условием сортировки данных )
Здравствуйте! Нужно создать программку на Delphi &quot;База данных для телефонной станции ( С условием...

База данных ветклиника, отображение выбранных данных в другой форме!
Здравствуйте, помогите пож-ста. Есть база данных, мне нужно организовать в главной форме Карта...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru