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

Определить профессию каждого члена семьи

22.12.2011, 14:29. Показов 4052. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В семье пять человек: муж, жена, их сын, сестра мужа и отец жены. Их профессии - инженер, юрист, слесарь, учитель и экономист. Известно, что юрист и учитель - не кровные родственники. Слесарь младше экономиста, и оба играют в футбол за сборную своего завода. Инженер моложе учителя, но старше жены своего брата. Назовите профессии каждого.
Ответ
сестра мужа - инженер
жена - юрист, а учитель - ее муж.
слесарь - это сын, а экономист - его дед
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.12.2011, 14:29
Ответы с готовыми решениями:

Вычислить доход на члена семьи
Всем привет! Помогите пожалуйста перевести программу на язык СИ! struct student { ...

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

Используя сведения о размере обуви каждого члена баскетбольной команды
Используя сведения о размере обуви каждого члена баскетбольной команды, а также сведения о наличии...

После каждого четного члена последовательности с нечетным номером, вставить значение max
Даны натуральное число n и целые числа (m1...mn) . После каждого четного члена последовательности с...

10
Українець
424 / 318 / 16
Регистрация: 26.09.2009
Сообщений: 844
22.12.2011, 17:39 2
1.Информативное название темы
2.Наработки
1
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 4
23.12.2011, 09:06  [ТС] 3
Написала что смогла...не работает, помогите пожалуйста!!!
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
domains 
    s = symbol
    
predicates
    nondeterm семья(s)
    nondeterm профессия(s)
    nondeterm разн_семья(s,s,s,s,s)
    nondeterm разн_профессия(s,s,s,s,s)
    nondeterm правило1(s,s,s,s,s)
    nondeterm правило2(s,s,s,s,s)
    nondeterm правило3(s,s,s,s,s)
    nondeterm ответ(s,s,s,s,s)
clauses
    семья("муж"). семья("жена"). семья("сын"). семья("сестра мужа"). семья("отец жены"). 
    профессия("инженер"). профессия("юрист"). профессия("слесарь"). профессия("учитель"). профессия("экономист"). 
    
    разн_семья(M1,M2,M3,M4,M5):- семья(M1), семья(M2), семья(M3), семья(M4),семья(M5), 
    M1<>M2, M2<>M3, M3<>M4, M1<>M3, M1<>M4, M2<>M4, M1<>M5, M2<>M5, M3<>M5, M4<>M5. 
    
    разн_профессия(M1,M2,M3,M4,M5):- профессия(M1), профессия(M2), профессия(M3), профессия(M4),профессия(M5), 
    M1<>M2, M2<>M3, M3<>M4, M1<>M3, M1<>M4, M2<>M4, M1<>M5, M2<>M5, M3<>M5, M4<>M5. 
            
    правило1(X1,X2,X3,X4,X5):- разн_профессия(X1,X2,X3,X4,X5), X2<>"муж", X4<>"сын".
    правило1(X1,X2,X3,X4,X5):- разн_профессия(X1,X2,X3,X4,X5), X2<>"жена", X4<>"отец жены".
    правило1(X1,X2,X3,X4,X5):- разн_профессия(X1,X2,X3,X4,X5), X2<>"сын", X4<>"отец жены".
    правило1(X1,X2,X3,X4,X5):- разн_профессия(X1,X2,X3,X4,X5), X2<>"муж", X4<>"сестра мужа".
    правило1(X1,X2,X3,X4,X5):- разн_профессия(X1,X2,X3,X4,X5), X2<>"сестра мужа", X4<>"сын".
    
    правило2(X1,X2,X3,X4,X5):- разн_профессия(X1,X2,X3,X4,X5), X3<>"сын", X5<>"муж".
    правило2(X1,X2,X3,X4,X5):- разн_профессия(X1,X2,X3,X4,X5), X3<>"сын", X5<>"отец жены".
    правило2(X1,X2,X3,X4,X5):- разн_профессия(X1,X2,X3,X4,X5), X3<>"отец жены", X5<>"муж".
    
    правило3(X1,X2,X3,X4,X5):- разн_профессия(X1,X2,X3,X4,X5), X1="сестра мужа".
        
    ответ(X1,X2,X3,X4,X5):- правило1(X1,X2,X3,X4,X5),правило2(X1,X2,X3,X4,X5),правило3(X1,X2,X3,X4,X5).
 
goal
ответ(Муж,Жена,Сын,Сестра_мужа,Отец_жены).
Добавлено через 11 часов 41 минуту
помогите(
0
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
23.12.2011, 17:58 4
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
domains 
        s = symbol
        
predicates
        nondeterm профессия(s)
        nondeterm разн_профессия(s,s,s,s,s)
        nondeterm правило1(s,s,s,s,s)
        nondeterm правило2(s,s,s,s,s)
        nondeterm правило3(s,s,s,s,s)
        nondeterm ответ(s,s,s,s,s)
clauses
        профессия("инженер"). профессия("юрист"). профессия("слесарь"). профессия("учитель"). профессия("эконосист"). 
        
        разн_профессия(M1,M2,M3,M4,M5):- профессия(M1), профессия(M2), профессия(M3), профессия(M4),профессия(M5), 
        M1<>M2, M2<>M3, M3<>M4, M1<>M3, M1<>M4, M2<>M4, M1<>M5, M2<>M5, M3<>M5, M4<>M5. 
                        
        правило1(X1,X2,_,_,_):- X1="юрист",X2="учитель";X2="юрист",X1="учитель".
    правило1(_,X2,_,X4,_):- X2="юрист",X4="учитель";X4="юрист",X2="учитель".
    правило1(X1,_,_,_,X5):- X1="юрист",X5="учитель";X5="юрист",X1="учитель".
    правило1(_,_,_,X4,X5):- X4="юрист",X5="учитель";X5="юрист",X4="учитель".
        
        правило2("эконосист",_,"слесарь",_,_).
        правило2("слесарь",_,_,_,"эконосист").
        правило2(_,_,"слесарь",_,"эконосист").
        
        правило3("учитель",_,_,"инженер",_).
        правило3(_,_,_,"инженер","учитель").
                
        ответ(X1,X2,X3,X4,X5):- разн_профессия(X1,X2,X3,X4,X5),
        правило1(X1,X2,X3,X4,X5),правило2(X1,X2,X3,X4,X5),правило3(X1,X2,X3,X4,X5).
 
goal
ответ(Муж,Жена,Сын,Сестра_мужа,Отец_жены).
0
5 / 5 / 0
Регистрация: 04.10.2015
Сообщений: 30
28.11.2015, 20:31 5
это не единственное решение задачи)
0
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
29.11.2015, 08:00 6
Да вроде единственное
Prolog
1
2
3
4
5
6
7
?-  ответ(Муж,Жена,Сын,Сестра_мужа,Отец_жены).
Муж = "учитель",
Жена = "юрист",
Сын = "слесарь",
Сестра_мужа = "инженер",
Отец_жены = "эконосист" ;
false.
0
5 / 5 / 0
Регистрация: 04.10.2015
Сообщений: 30
29.11.2015, 09:25 7
Black Fregat, если нет проверки что экономист-мужчина, то есть вариант такой:
муж-юрист, жена-экономист, сын-слесарь,сестра мужа-инженер и отец жены - учитель. по условию задачи этот вариант противоречий не вызывает)
0
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
29.11.2015, 13:26 8
Цитата Сообщение от innnochka Посмотреть сообщение
нет проверки что экономист-мужчина
По крайней мере, слесарь и экономист одного пола - они вместе играют в футбол за сборную завода. Женщины в мужской футбол обычно не играют..
0
5 / 5 / 0
Регистрация: 04.10.2015
Сообщений: 30
29.11.2015, 16:43 9
Black Fregat, в оригинальной версии задачи условие написано иначе: В семье Семёновых пять человек: муж, жена, их сын, сестра мужа и отец жены. Все они работают. Один — инженер, другой — юрист, третий — слесарь, четвертый — экономист, пятый — учитель. Вот что еще известно о них.
Юрист и учитель не кровные родственники.
Слесарь — хороший спортсмен. Он пошел по стопам экономиста и играет в футбол за сборную завода.
Инженер старше жены своего брата, но моложе, чем учитель.
Экономист старше, чем слесарь.
Какова профессия каждого члена семьи Семёновых?
0
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
29.11.2015, 16:49 10
Я ночью посмотрю более внимательно, какие именно условия взяты при решении задачи.
Текущий вариант, как я уже писал, Ваше побочное решение не пропускает.
0
0 / 0 / 1
Регистрация: 15.09.2014
Сообщений: 8
10.11.2016, 10:42 11
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
PREDICATES
 
профессия (symbol)
семья (symbol)
 
кровныеРодственники (symbol, symbol)
старше (symbol, symbol)
мужчина (symbol)
соответствие (symbol, symbol)
естьБрат (symbol)
вопрос (symbol, symbol, symbol, symbol, symbol, symbol, symbol, symbol, symbol, symbol)
 
CLAUSES
 
профессия (инженер). профессия (юрист). профессия (слесарь). профессия (экономист). профессия (учитель).
семья (муж). семья (жена). семья (сестраМужа). семья (сын). семья (отецЖены). 
 
% Описываем всевозможные комбинации кровных родственников.
кровныеРодственники(Родственник1, Родственник2):- семья(Родственник1), семья(Родственник2), Родственник1 = муж, Родственник2 = сын; 
                          семья(Родственник1), семья(Родственник2), Родственник1 = сын, Родственник2 = муж;
                          семья(Родственник1), семья(Родственник2), Родственник1 = муж, Родственник2 = сестраМужа; 
                          семья(Родственник1), семья(Родственник2), Родственник2 = муж, Родственник1 = сестраМужа; 
                          семья(Родственник1), семья(Родственник2), Родственник1 = сестраМужа, Родственник2 = сын; 
                          семья(Родственник1), семья(Родственник2), Родственник1 = сын, Родственник2 = сестраМужа;
                          семья(Родственник1), семья(Родственник2), Родственник1 = жена, Родственник2 = сын; 
                          семья(Родственник1), семья(Родственник2), Родственник1 = сын, Родственник2 = жена;
                          семья(Родственник1), семья(Родственник2), Родственник1 = отецЖены, Родственник2 = сын; 
                          семья(Родственник1), семья(Родственник2), Родственник1 = сын, Родственник2 = отецЖены;
                          семья(Родственник1), семья(Родственник2), Родственник1 = жена, Родственник2 = отецЖены; 
                          семья(Родственник1), семья(Родственник2), Родственник1 = отецЖены, Родственник2 = жена.
% Перечисляем мужчин.
мужчина(Родственник):-    семья(Родственник), Родственник = муж;
            семья(Родственник), Родственник = сын;
            семья(Родственник), Родственник = отецЖены.
% Родственник1 старше, чем Родственник2
старше(Родственник1, Родственник2):- семья(Родственник1), семья(Родственник2), Родственник1 = муж, Родственник2 = сын; 
                     семья(Родственник1), семья(Родственник2), Родственник1 = отецЖены, Родственник2 = сын;
                     семья(Родственник1), семья(Родственник2), Родственник1 = отецЖены, Родственник2 = жена;
                     семья(Родственник1), семья(Родственник2), Родственник1 = жена, Родственник2 = сын;
                     семья(Родственник1), семья(Родственник2), Родственник1 = сестраМужа, Родственник2 = жена.
                     
% По условию, инженер старше сестры брата => у инженера есть брат!
естьБрат(Родственник):- семья(Родственник), Родственник = сестраМужа.
 
% Кто угодно может быть инженером.
соответствие (Родственник, Профессия):- семья(Родственник), профессия(Профессия), Профессия = инженер.
% Кто угодно может быть учителем.
соответствие (Родственник, Профессия):- семья(Родственник), профессия(Профессия), Профессия = учитель.
% Кто угодно может быть юристом.
соответствие (Родственник, Профессия):- семья(Родственник), профессия(Профессия), Профессия = юрист.
% Кто угодно может быть слесарем.
соответствие (Родственник, Профессия):- семья(Родственник), профессия(Профессия), Профессия = слесарь.
% Кто угодно может быть экономистом.
соответствие (Родственник, Профессия):- семья(Родственник), профессия(Профессия), Профессия = экономист.
 
вопрос(Р1, П1, Р2, П2, Р3, П3, Р4, П4, Р5, П5):- соответствие(Р1, П1), П1 = инженер, соответствие (Р2, П2), П2 = учитель, 
                         соответствие (Р3, П3), П3 = юрист, соответствие (Р4, П4), П4 = слесарь,
                         соответствие (Р5, П5), П5 = экономист, 
                         мужчина(Р4), мужчина (Р5), естьБрат (Р1),
                         not(кровныеРодственники(Р2, Р3)),
                         старше(Р5, Р4), not(старше (Р1, Р2)),
                         Р1 <> Р2, Р1 <> Р3, Р1 <> Р4, Р1 <> Р5,
                         Р2 <> Р3, Р2 <> Р4, Р2 <> Р5, Р3 <> Р4, Р3 <> Р5, Р4 <> Р5,    
                         П1<>П2, П1<>П3, П1<>П4, П1<>П5, П2<>П3, П2<>П4, П2<>П5, П3<>П4, П3<>П5,  
                         П4<>П5.                  
 
GOAL
вопрос(Р1, П1, Р2, П2, Р3, П3, Р4, П4, Р5, П5).
0
10.11.2016, 10:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2016, 10:42
Помогаю со студенческими работами здесь

Для каждого члена последовательности из натуральных чисел найти количество нулей и единиц в записи числа
Поступает последовательность целых положительных чисел, 0 — конец последовательности. Для каждого...

Определить Y с точностью до члена ряда
Дано: |x|\leq 1; Y = x-\frac{{x}^{3}}{3}+...+{(-1)}^{n}*\frac{{x}^{2*n-1}}{2*n-1} Определить Y с...

Ошибка: модификатор члена public должен указываться перед типом и именем члена
Привет! Нужна помощь! Обращаюсь к профессионалам на форуме, т.к. это ваша тема :) Есть вообщем...

Найти номер первого члена последовательности, который отличается от предыдущего члена не более чем на заданное значение
Рассмотрим последовательность, образованную дробями: 1/1, 2/1, 3/2, ..., в которой числитель...


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

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