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

Задачка не может вычислить самую молодую команды

22.05.2012, 02:21. Показов 1063. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа считает средний возраст игроков, но вот с выводом самой молодой команды не получается. Помогите найти в чем ошибка?пожалуйста)

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
[PROLOG]*Äëÿ êàæäîé êîìàíäû ñîñòàâèòü ïåðå÷åíü åå èãðîêîâ, îïðåäåëèü ñðåäíèé âîçðàñò êàæäîé êîìàíäû è íàéòè ñàìóþ ìîëîäóþ êîìàíäó.*/
DOMAINS
    ôàìèëèÿ,àìïëóà,íàçâàíèå_êîìàíäû = string
    âîçðàñò,kol_vo,âîçðàñò_ñì= integer
    ñðåäíèé_âîçðàñò=real
    
FACTS
    determ kol(kol_vo,âîçðàñò_ñì)
    determ kol_vo(kol_vo)
    nondeterm êîìàíäà(íàçâàíèå_êîìàíäû)   
    nondeterm ëè÷íûå_äàííûå(íàçâàíèå_êîìàíäû,ôàìèëèÿ,âîçðàñò)
    determ sum(kol_vo)
    determ âîçðàñò(íàçâàíèå_êîìàíäû,ñðåäíèé_âîçðàñò)
    
PREDICATES
    nondeterm ïåðå÷åíü(íàçâàíèå_êîìàíäû,kol_vo)
        nondeterm ïåðå÷åíü_ôóòáîë     
        nondeterm ñðåäíèé_âîçðàñò(íàçâàíèå_êîìàíäû,ñðåäíèé_âîçðàñò)
        nondeterm ìîëîäàÿ_êîìàíäà
    
CLAUSES 
 
    /*  ïåðå÷åíü ôóòáîëèñòîâ êàæäîé êîìàíäû, îïðåäåëåíèå ÷èñëà ôóòáîëèñòîâ â êîìàíäå */
    ïåðå÷åíü(Íàçâàíèå_êîìàíäû,_):- 
       assert(kol_vo(0)), 
       ëè÷íûå_äàííûå(Íàçâàíèå_êîìàíäû,Ôàìèëèÿ,_), write(Ôàìèëèÿ), nl, 
           retract(kol_vo(N)), 
           N1 = N + 1,
           assert(kol_vo(N1)),
           fail. 
        ïåðå÷åíü(_,K):-
           retract(kol_vo(K)).
           
        /* îïðåäåëåíèå ñðåäíåãî âîçðàñòà èãðîêîâ â êîìàíäå */
       ñðåäíèé_âîçðàñò(Íàçâàíèå_êîìàíäû,Ñðåä_âîçðàñò1):- 
       assert(kol(0,0)), 
       ëè÷íûå_äàííûå(Íàçâàíèå_êîìàíäû,_,Âîçðàñò), 
           retract(kol(N,Â_Ñ)), 
           N1 = N + 1,
           Â_Ñ1=Â_Ñ+Âîçðàñò,
          Ñðåä_âîçðàñò1=Â_Ñ1/N1,
           assert(kol(N1,Â_Ñ1)),
           fail. 
        ñðåäíèé_âîçðàñò(Íàçâàíèå_êîìàíäû,Ñðåä_âîçðàñò):-
           retract(kol(K,Â_Ñ)),
          Ñðåä_âîçðàñò=Â_Ñ/K.
        
    /*âûâîä ïåðå÷íÿ ôóòáîëèñòîâ êàæäîé êîìàíäû, îáùåãî ÷èñëà èãðîêîâ,÷èñëà ôóòáîëèñòîâ â êîìàíäå è cðåäíåãî âîçðàñòà èãðîêîâ â êîìàíäå*/
    ïåðå÷åíü_ôóòáîë:-
       assert(sum(0)), 
       êîìàíäà(Íàçâàíèå_êîìàíäû),
       write("Ïåðå÷åíü ôóòáîëèñòîâ êîìàíäû ",Íàçâàíèå_êîìàíäû,":"),nl,
       ïåðå÷åíü(Íàçâàíèå_êîìàíäû,K),
       write("÷èñëî èãðîêîâ="), write(K), nl,
       ñðåäíèé_âîçðàñò(Íàçâàíèå_êîìàíäû,Ñðåä_âîçðàñò),
       write("ñðåäíèé âîçðàñò èãðîêîâ= "),write(Ñðåä_âîçðàñò),nl,nl,
       retract(sum(S)), 
           S1 = S +K, 
           asserta(sum(S1)), 
           fail.
         ïåðå÷åíü_ôóòáîë:-  
           retract(sum(S)),
           write("Îáùåå ÷èñëî èãðîêîâ="),
           write(S),nl,nl.
         
           /* Îïðåäåëåíèå ñàìîé ìîëîäîé êîìàíäû è âûâîä åå íà ýêðàí */
         ìîëîäàÿ_êîìàíäà:-
             assert(âîçðàñò(" ",0.0)),
              ñðåäíèé_âîçðàñò(Íàçâàíèå_êîìàíäû,Ñðåä_âîçðàñò),
              âîçðàñò(Íàçâàíèå_êîìàíäû_ìèí,Ñðåä_âîçðàñò1),
             Ñðåä_âîçðàñò<Ñðåä_âîçðàñò1,
              retract(âîçðàñò(Íàçâàíèå_êîìàíäû_ìèí,Ñðåä_âîçðàñò1)),
             assert(âîçðàñò(Íàçâàíèå_êîìàíäû,Ñðåä_âîçðàñò)),
              fail.
           ìîëîäàÿ_êîìàíäà:-
              retract(âîçðàñò(Íàçâàíèå_êîìàíäû,Ñðåä_âîçðàñò)),
              write("Ñàìàÿ ìîëîäàÿ êîìàíäà="),
              write(Íàçâàíèå_êîìàíäû),nl.
               
GOAL
    consult("C:\\ôóòáîë.dba"),
    ïåðå÷åíü_ôóòáîë,
    ìîëîäàÿ_êîìàíäà,
    save("C:\\ïåðå÷åíü.dba").
[/PROLOG]
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.05.2012, 02:21
Ответы с готовыми решениями:

Структура: Найти самую молодую команду среди учасников турнира.
Здравствуйте, помогите пожалуйста решить задачу Есть запись с такой структурой: type Tsportsman = record team:...

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

Найти самого старого мужчину и самую молодую женщину в списке группы
Всем привет, дали условие &quot;Дан список группы в 10 человек в виде ФАМИЛИЯ ГОД_РОЖД. ПОЛ 15 симв. 4 симв. 1 симв. Иванов 1985 М Петрова...

6
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
22.05.2012, 23:52
Prolog
1
2
3
4
5
6
7
8
9
         молодая_команда:-
              команда(Название_команды),
              средний_возраст(Название_команды,Сред_возраст),
              not(моложе(Сред_возраст)),
              write("Samaya molodaya komanda="),
              write(Название_команды),nl,fail.
         молодая_команда.
         
         моложе(Возраст):-средний_возраст(_,Сред_возраст),Сред_возраст<Возраст.
0
0 / 0 / 0
Регистрация: 19.05.2012
Сообщений: 7
23.05.2012, 01:53  [ТС]
Программа работает с таким вариантом такого правила несколько неправильно. Вместо одной команды, она выдает список команд, у которых средний возраст больше минимального среднего возраста
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
23.05.2012, 13:25
По поводу "больше минимального" сомневаюсь, приведите базу данных. Должен выдаваться список самых молодых команд (средний возраст у них одинаковый). Если не хотите список, то сотрите fail и второе правило.
0
0 / 0 / 0
Регистрация: 19.05.2012
Сообщений: 7
23.05.2012, 13:36  [ТС]
Вот моя база данных
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
ëè÷íûå_äàííûå("Ðåàë_Ìàäðèä","Êðèøòèàíó_Ðîíàëäó",27).
ëè÷íûå_äàííûå("Ðåàë_Ìàäðèä","Èêåð_Êàñèëüÿñ",30).
ëè÷íûå_äàííûå("Ðåàë_Ìàäðèä","Ðèêàðäó_Êàðâàëüþ",33).
ëè÷íûå_äàííûå("Áàðñåëîíà","Âèêòîð_Âàëüäåñ",30).
ëè÷íûå_äàííûå("Áàðñåëîíà","Õàâüåð_Ìàñêåðàíî",27).
ëè÷íûå_äàííûå("Áàðñåëîíà","Æåðàð_Ïèêå",25).
ëè÷íûå_äàííûå("Âàëåíñèÿ","Ãóàéòà_Âèñåíòå",25).
ëè÷íûå_äàííûå("Âàëåíñèÿ","Äàâèä_Àëüáåëüäà",34).
ëè÷íûå_äàííûå("Âàëåíñèÿ","Ïàáëî_Ýðíàíäåñ",26).
ëè÷íûå_äàííûå("Äåïîðòèâî","Äàíèýëü_Àðàíñóáèÿ",32).
ëè÷íûå_äàííûå("Äåïîðòèâî","Õóàí_Âàëåðîí",36).
ëè÷íûå_äàííûå("Äåïîðòèâî","Ïàáëî_Àëüâàðåñ",31).
ëè÷íûå_äàííûå("Ñåâèëüÿ","Àíäðåñ_Ïàëîï",38).
ëè÷íûå_äàííûå("Ñåâèëüÿ","Èâàí_Ðàêèòè÷",24).
ëè÷íûå_äàííûå("Ñåâèëüÿ","Äèåãî_Ïåðîòòè",23).
ëè÷íûå_äàííûå("Àëüìåðèÿ","Ýñòåáàí_Ñóàðåñ",36).
ëè÷íûå_äàííûå("Àëüìåðèÿ","Ôåðíàíäî_Ñîðèàíî",32).
ëè÷íûå_äàííûå("Àëüìåðèÿ","Ìèãåëü_Àíõåëü",31).
ëè÷íûå_äàííûå("Àòëåòèê","Ãîðêà_Èðàèñîñ",31).
ëè÷íûå_äàííûå("Àòëåòèê","Êàðëîñ_Ãóðïåãè",31).
ëè÷íûå_äàííûå("Àòëåòèê","Ìàðêåë_Ñóñàåòà",24).
ëè÷íûå_äàííûå("Ýñïàíüîë","Êðèñòèàí_Àëüâàðåñ",26).
ëè÷íûå_äàííûå("Ýñïàíüîë","Ðîäðèãåñ_Õàâüåð_Ëîïåñ",26).
ëè÷íûå_äàííûå("Ýñïàíüîë","Ôèëèïïå_Êîóòèíüî",19).
ëè÷íûå_äàííûå("Âèëüÿððåàë","Äèåãî_Ëîïåñ",30).
ëè÷íûå_äàííûå("Âèëüÿððåàë","Ìàðêîñ_Ñåííà",35).
ëè÷íûå_äàííûå("Âèëüÿððåàë","Áðóíî_Ñîðèàíî",27).
ëè÷íûå_äàííûå("Ëåâàíòå","Ãóñòàâî_Ìóíóà",34).
ëè÷íûå_äàííûå("Ëåâàíòå","Õàâüåð_Ôàðèíîñ",34).
ëè÷íûå_äàííûå("Ëåâàíòå","Õóàí_Ëóèñ_Ãîìåñ",31).
êîìàíäà("Ðåàë_Ìàäðèä").
êîìàíäà("Áàðñåëîíà").
êîìàíäà("Âàëåíñèÿ").
êîìàíäà("Äåïîðòèâî").
êîìàíäà("Ñåâèëüÿ").
êîìàíäà("Àëüìåðèÿ").
êîìàíäà("Àòëåòèê").
êîìàíäà("Ýñïàíüîë").
êîìàíäà("Âèëüÿððåàë").
êîìàíäà("Ëåâàíòå").
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
23.05.2012, 13:53
моложе(Возраст):-команда(Название),средний_возраст(Назван ие,Сред_возраст),Сред_возраст<Возраст.
0
0 / 0 / 0
Регистрация: 19.05.2012
Сообщений: 7
23.05.2012, 13:57  [ТС]
спасибо большое))) огромное просто)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.05.2012, 13:57
Помогаю со студенческими работами здесь

Найти самую частую причину проигрыша команды
Олимпиадная задача Царь Пантелеймон пребывал в раздумьях — и всё из-за новомодного увлечения водным поло. Во всех соседних царствах...

Не менее сложная задачка, а может даже сложнее
Всем привет, и спасибо кто помог вчера с решением задачи. И все бы отлично, но в некоторых местах у нас не подгружаются ФИО. И вот у нас не...

Корабль может перемещатся в 4 направлениях и принимать 4 команды
Корабль может перемещатся в 4 направлениях ( север восток юг запад) и принимать 4 команды (вперёд вправо назад влево). Корабль шёл сначало...

Корабль может перемещаться в 4 направлениях и принимать 4 команды
Корабль может перемещаться в 4 направлениях(Север,Восток,Юг,Запад) и принимать 4 команды(вперёд,вправо,назад,влево).Корабль шёл сначала по...

Корабль может перемещаться в 4 направлениях и принимать 4 команды
Корабль может перемещаться в 4 направлениях(Север,Восток,Юг,Запад) и принимать 4 команды(вперёд,вправо,назад,влево).Корабль шёл сначала по...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru