Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Prolog Введите в программу следующую базу данных Введите в программу следующую базу данных. Domains list=integer* Database - db1 % База данных с именем db1 fact1(integer,string,list) Database - db2 % База данных с именем db2 fact2(integer,string) Clauses fact1(1,f1,). fact1(2,f2,). https://www.cyberforum.ru/ prolog/ thread1329554.html Prolog Считывание чисел с терминала и занесение их в список
Создайте программу считывания чисел с терминала и занесение их в список.
Prolog Выведите список стран, население которых превышает 10 миллионов человек https://www.cyberforum.ru/ prolog/ thread1329547.html
В Англии проживает 50 млн. человек, во Франции 70 млн. человек, в Германии - 44 млн. человек, в Дании - 4 млн. человек, в Канаде - 73 млн. человек, в Чили - 2 млн. человек, в США - 200 млн. Выведите список стран, население которых превышает 10 млн. человек.
Prolog В Англії проживає 50 млн. чоловік, у Франції 70 млн. чоловік, у Німеччині - 44 млн. чоловік, https://www.cyberforum.ru/ prolog/ thread1329507.html
В Англії проживає 50 млн. чоловік, у Франції 70 млн. чоловік, у Німеччині - 44 млн. чоловік, у Данії - 4 млн. чоловік, у Канаді - 73 млн. чоловік, у Чилі - 2 млн. чоловік, у США - 200 млн. Виведіть список країн, населення яких перевищує 10 млн. чоловік.
Prolog Количество элементов первого списка, имеющих ту же четность, что и соответствующие элементы второго списка
Даны два целочисленных списка одинаковой длины.Подсчитать количество тех элементов первого списка, которые имеют туже четность,что и соответствующие элементы второго списка.
Prolog Верно ли что число имеет тот же знак, что и все элементы списка https://www.cyberforum.ru/ prolog/ thread1329383.html
Даны числовой список и число, не равное нулю. Верно ли что число имеет тот же знак, что и все элементы списка?
Prolog Поиск в файле https://www.cyberforum.ru/ prolog/ thread1329167.html
Здравствуйте. Очень нравится ваш форум. Спасибо вам. Вот не могу разобраться с Visual Prolog Вот такое задание: на вход программы идут два текстовых файла in1.txt и in2.txt. in1.txt содержит строки для поиска. in2.txt содержит текст, по которому нужно вести поиск. в качестве результата работы должен создаваться файл out.txt, содержащий число строк файла in2.txt, в которых была найдена...
Определение родственных связей Prolog
написала код, для определения родственной связи свекровь. 'man'('Oleg'). 'man'('Ivan'). 'man'('Filipp'). 'man'('Kirill'). 'woman'('Katya'). 'woman'('Nastya'). 'woman'('Olya'). 'parent'('Oleg' , 'Olya'). 'parent'('Katya' , 'Olya').
Prolog Задача с БД, списками, интерфейсом Есть головоломка. В отделении Сбербанка работают: кассир, контролер и заведующий. Их фамилии: Борисов, Иванов и Сидоров. Кассир не имеет ни братьев, ни сестер и меньше всех ростом. Сидоров женат на сестре Борисова и ростом выше контролера. Назовите фамилии кассира, контролера и заведующего. Вот ее решение. domains https://www.cyberforum.ru/ prolog/ thread1328674.html Prolog Написать программу-планировщик для манипулирования фотокамерой https://www.cyberforum.ru/ prolog/ thread1328391.html
Необходимо написать на языке Prolog программу-планировщик для манипулирования фотокамерой. Речь идет о подготовке фотокамеры к работе, т. е. вставке новой пленки и замене аккумулятора в случае необходимости. План вставки новой пленки состоит в следующем: 1) открыть футляр 2) вынуть фотокамеру 3) перемотать старую пленку 4) открыть отсек для пленки 5) вынуть старую пленку 6) вставить...
Описание функции Prolog
Помогите пожалуйста с решением задачи: Описать функцию, принимающую в качестве аргументов два списка и возвращающую True, если все элементы, входящие в оба списка, расположены в этих списках в одном и том же порядке.
Prolog Описание предиката y(N) https://www.cyberforum.ru/ prolog/ thread1328357.html
Помогите решить задачу: Описать предикат y(N), выводящий на экран результат выражения для заданного N. N — целое число. Результат выражения должен быть целочисленным, если все операции в выражении целочисленные. y(N)=\sum_{i=1}^{N}\sum_{j=1}^{N}(lg\, i + ln\, j)
0 / 0 / 0
Регистрация: 15.11.2015
Сообщений: 2
15.11.2015, 11:38 0

Создание динамической БД: результаты сессии данной группы студентов - Prolog - Ответ 8343159

15.11.2015, 11:38. Показов 2798. Ответов 7
Метки (Все метки)

Ответ

Ребят, помогите, третьи сутки с этим парюсь! Условие аналогичное предыдущему:
Динамическая база данных содержит информацию о результатах сессии данной группы студентов в виде утверждений следующих видов: математика (фамилия_и_о, оценка), физика (фамилия_и_о, оценка), химия (фамилия_и_о, оценка), информатика (фамилия_и_о,оценка). Предполагается, что в группе N студентов и все они оценки по всем предметам (5,4,3 или 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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
 domains
        name,predmet=string
                f=integer
        ocenka=integer
        l=string*
        li=integer*
database
        dstud(name,predmet,ocenka,ocenka,ocenka).
predicates
        repeat.
        do_db.      
        menu.       
        print.
        output(l,f).
        clear_db.
        stud(name,predmet,ocenka,ocenka,ocenka).
        process(integer).
        zadacha.
        delete(name).
        poisk(name).
        spisok(l).
        spisok1(l,l,f).
        bezdubl(l,l).
        prinadl(name,f,l).
        spisok2(l,l).
clauses
        repeat.
        repeat:-repeat.
          
        stud("Ivanov I.I.","matematika",2,4,0). 
        stud("Ivanov I.I.","fizika",2,4,0).
        stud("Ivanov I.I.","himia",2,3,0).
        stud("Ivanov I.I.","informatika",2,5,0).
        stud("Sidorov P.I.","matematika",3,0,0).    
        stud("Sidorov P.I.","fizika",3,0,0).
        stud("Sidorov P.I.","himia",3,0,0).
        stud("Sidorov P.I.","informatika",5,0,0).
        stud("Gavrilov V.V.","matematika",2,2,3).   
        stud("Gavrilov V.V.","fizika",2,2,4).
        stud("Gavrilov V.V.","himia",2,2,3).
        stud("Gavrilov V.V.","informatika",2,2,3).
        stud("Stepanov K.K.","fizika",2,2,2).
        stud("Stepanov K.K.","informatika",2,2,2).
        stud("Stepanov K.K.","matematika",2,2,2).
        stud("Stepanov K.K.","himia",2,2,2).        
 
do_db:-stud(N,P,O,D,T),assertz(dstud(N,P,O,D,T)),fail.
        do_db:-!.
        
        clear_db:-retract(dstud(_,_,_,_,_)),fail.
        clear_db:-!.
        
        zadacha:-makewindow(1,7,7,"DBD",2,10,20,50),menu,clear_db,removewindow.
            
        menu:-makewindow(2,7,7,"Glavnoe menu",1,1,24,70),nl,repeat,clearwindow,
        write("  0. Ochistka DBD "),nl,
        write("  1. Sozdanie DBD "),nl,     
        write("  2. Zagruzka DBD"),nl,
        write("  3. Prosmotr DBD"),nl,
        write("  4. Poisk po FIO "),nl,
        write("  5. Dobavlenie "),nl,
        write("  6. Udalenie "),nl,
        write("  7. Sohranenie DBD "),nl, 
        write("  8. Zadanie "),nl,   
        write("  9. Vihod  "),nl,nl,
        write("Vash vibor: "),
        readint(K),nl,process(K),K=9,!,removewindow.
 
        delete(N):-retract(dstud(N,_,_,_,_)),fail.
        delete(N):- nl, write("Operacia zavershena"),readchar(_).
        
        print:-dstud(N,P,O,D,T),write(N," ",P," - ",O," - ",D," - ",T),nl,fail.
        print.
        poisk(N):-dstud(N,P,O,D,T),write(P," - ",O,D,T),nl,fail.
        poisk(_):-write("Poisk zavershen"), readchar(_).
        
        output([],_):-!.
        output([H|L],P):-write(H,P), output(L,P).
        
        process(0):-clear_db.
        process(1):-do_db,write("DBD sozdana"),nl,readchar(_).
        process(2):-makewindow(3,7,7,"Zagruzka",2,10,15,50),nl,
            write("Imya faila: "), readln(F), consult(F),!,
            write("Fail vveden"),readchar(_),removewindow.
        process(2):-write("Oshibka. Fail ne naiden"),nl,readchar(_), removewindow.
        process(3):-makewindow(4,7,7,"Prosmotr",4,10,20,50), nl, print, readchar(_),removewindow.
        process(4):-makewindow(5,7,7,"Poisk po FIO",4,10,20,50),write("Vvedite FIO studenta: "),
            readln(N),poisk(N),removewindow.
        process(5):-makewindow(6,7,7,"Dobavlenie",4,10,20,50),
            write("Vvedite FIO studenta: "),readln(N),
            write("Vvedite predmet: "),readln(P),
            write("Vvedite ocenku na examine: "),readint(O), write("Vvedite ocenku na pervoi peresdache: "),readint(D), write("Vvedite ocenku na vtoroi peresdache: "),readint(T),
            assertz(dstud(N,P,O,D,T)),write("Dobavleno"), nl, readchar(_), removewindow.
        process(6):-makewindow(7,7,7,"Udalenie",4,10,20,50),
            write("Vvedite FIO studenta: "),readln(N),delete(N),removewindow.
        process(7):-write("Imya faila: "), readln(F), save(F),!,write("DBD sohranena"),readchar(_).
        process(7):-write("Oshibka!"),readchar(_).
        process(9):-write("Zavershenie raboty!"), readchar(_).
        
        process(8):-makewindow(8,7,7,"Zadanie",4,10,20,50),
            spisok(LL),bezdubl(LL,L),spisok1(L,L1,P),write("Sdali s 4 i 5 : "), nl, output(L1,P), nl,readchar(_), removewindow.
        
        spisok(LL):-findall(N,dstud(N,_,_,_,_),L),spisok1(L,LL,P).
        
        spisok1([],[],_):-!.
        spisok1([X|L],[X|L1],P):-dstud(X,"matematika",O1,OO1,OOO1),O1>2,
            dstud(X,"fizika",O2,OO2,OOO2),O2>2,
            dstud(X,"himia",O3,OO3,OOO3),O3>2,
            dstud(X,"informatika",O4,OO4,OOO4),O4>2,P=0,!,
                    spisok1(L,L1,P).
               spisok1([X|L],[X|L1],P):-dstud(X,"matematika",O1,OO1,OOO1),OO1>2,
            dstud(X,"fizika",O2,OO2,OOO2),OO2>2,
            dstud(X,"himia",O3,OO3,OOO3),OO3>2,
            dstud(X,"informatika",O4,OO4,OOO4),OO4>2,P=4,!,
                    spisok1(L,L1,P).
           
               spisok1([X|L],[X|L1],P):-dstud(X,"matematika",O1,OO1,OOO1),OOO1>2,
            dstud(X,"fizika",O2,OO2,OOO2),OOO2>2,
            dstud(X,"himia",O3,OO3,OOO3),OOO3>2,
            dstud(X,"informatika",O4,OO4,OOO4),OOO4>2,P=8,!,
                    spisok1(L,L1,P).
           
        spisok1([X|L],L1,_):-spisok1(L,L1,P).
        
        bezdubl([],[]).
        bezdubl([X|L],L1):-prinadl(X,P,L),bezdubl(L,L1).
        bezdubl([X|L],[X|L1]):-not(prinadl(X,_,L)),bezdubl(L,L1).
        
        prinadl(X,P,[X|_]):-!.
        prinadl(X,P,[_|L]):-prinadl(X,P,L).
        
        spisok2([],[]):-!.
        spisok2([X|L],[X|L1]):-dstud(X,_,O5,OO5,OOO5),O5>3,!, spisok2(L,L1).
        spisok2([X|L],L1):-spisok2(L,L1).
Добавлено через 7 минут
Код работает некорректно, ибо вообще не представляю как делать.
Как, например, написать условие, что оценка на пересдаче больше 2, либо равна нулю (если студент сдал предмет с первого раза)?
И если никак значит ли это что нужно прописывать для каждой комбинации отдельное определение?
Например, физика - 5 - 0 -0
информатика - 2- 3 - 0
математика -2 - 2 - 3
химия - 3 - 0 - 0

Ну то сеть проверять оценку на каждой пересдаче для каждого предмета...

Вернуться к обсуждению:
Создание динамической БД: результаты сессии данной группы студентов Prolog
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.11.2015, 11:38
Готовые ответы и решения:

Найти фамилии студентов данной группы, которые получили максимальный балл (программа не запускается)
дана инф ввиде:ФИО,группа,балл. найти фамилии студентов данной группы,которые получили максимальный...

Сессия. Результаты сессии, состоящей из трех экзаменов, для группы из n студентов представлены матрицей K(n,3).
Сессия. Результаты сессии, состоящей из трех экзаменов, для группы из n студентов представлены...

Результаты сессии студентов
Здравствуйте, мне нужно написать программу "Результаты сессии студентов" с использованием ООП. В...

Сформировать файл, в котором хранятся результаты сессии группы.
Всем привет, помогите решить одну задачку, скоро сессия, а я все никак не сделаю. "Сформировать...

7
15.11.2015, 11:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2015, 11:38
Помогаю со студенческими работами здесь

Составить список? в котором сохраняются результаты сессии группы (структуры)
Помогите пожалуйста запутался в программе задача Составить список в котором сохраняются...

На основе результатов экзаменационной сессии анализировать успеваемость группы студентов
Привет,помогите написать прогу Разработать проект, с помощью которого на основе результатов...

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

Создать файл с фамилиями студентов группы; используя его сформировать ведомость результатов сессии
Составить алгоритм программу, в которой необходимо: создать файл с фамилиями студентов группы и,...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru