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

Экспертная система на основе фреймов. Пролог

26.11.2013, 00:46. Показов 1204. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, есть такое задание:
Требуется определить скорость автомобиля. Для этого необходимо создать окно и ввести данные по состоянию дороги, состоянию автомобиля и состоянию водителя.

Вот, что получилось:
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
database - mydb
    avto(char)
    road(char)
    drive(char)
 
predicates
 
    nondeterm expert
    nondeterm obrab(char)
    nondeterm repeat
    nondeterm ocenka(char,real)
    nondeterm vyxod(char)
 
clauses
 
  expert:-
  clearwindow,
      makewindow(1,26,45,"win_velocity",0,0,15,50),
      repeat,
      clearwindow,
      write("SPEED"),
      nl,
      write("1.State of avto"),
      nl,
      write("2.State of road"),
      nl,
       write("3.State of drive"),
      nl,
      write("4.Result"),
      nl,
      write("Your choice: "),
      readchar(C),
      obrab(C).
      
repeat.
repeat:-repeat.
 
  
  obrab('1'):-
      makewindow(2,26,45,"win_avto",7,8,12,50),
      repeat,
      clearwindow,
      write("AVTO-STATE"),
      nl,
      write("1.Bad"),
      nl,
      write("2.Middle"),
      nl,
      write("3.Good"),
      nl,
      write("Your choice: "),
      readchar(C),
      retractall(_,mydb),
      assert(avto(C),mydb),
      removewindow,
      shiftwindow(1),
      !,fail.
  
   obrab('2'):-
      makewindow(3,26,45,"win_road",7,8,12,50),
      repeat,
      clearwindow,
      write("ROAD-STATE"),
      nl,
      write("1.Bad"),
      nl,
      write("2.Middle"),
      nl,
      write("3.Good"),
      nl,
      write("Your choice: "),
      readchar(C),
      retractall(_,mydb),
      assert(avto(C),mydb),
      assert(road(C),mydb),
      removewindow,
      shiftwindow(1),
      !,fail.
      
   obrab('3'):-
      makewindow(4,26,45,"win_drive",7,8,12,50),
      repeat,
      clearwindow,
      write("DRIVE-STATE"),
      nl,
      write("1.Bad"),
      nl,
      write("2.Middle"),
      nl,
      write("3.Good"),
      nl,
      write("Your choice: "),
      readchar(C),
      retractall(_,mydb),
      assert(drive(C),mydb),
      assert(avto(C),mydb),
      assert(road(C),mydb),
      removewindow,
      shiftwindow(1),
      !,fail.
   
 
   obrab('4'):-!,
         road(R),
         avto(A),
         drive(D),
         ocenka(R,E1),
         ocenka(A,E2),
         ocenka(D,E3),
         ALPHA=0.6*E1+0.2*E2+0.2*E3,
         VELOCITY=90*ALPHA,
         nl,
         write("RECOMMENDED SPEED IS: ",VELOCITY),
         nl,
         write("Exit? (y/n)"),
         readchar(W),
         vyxod(W).
    
    
 
      ocenka('1',0.7).
      ocenka('2',0.5).    
      ocenka('3',0.9).  
      ocenka('4',0.6). 
    
    vyxod('y'):-!.
          
 
goal
expert.
Скорость выводит неправильно, считывает только последний параметр из
Prolog
1
ocenka('3',0.9)
0,9.
Видимо вот здесь проблема:
Prolog
1
2
3
  
assert(drive(C),mydb),
assert(avto(C),mydb),assert(road(C),mydb),
скажите, пожалуйста, как исправить.
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.11.2013, 00:46
Ответы с готовыми решениями:

Экспертная система. Турбо Пролог. 505 Type error
Здравствуйте, помогите, пожалуйста, разобраться. Есть экспертная система, которая должна определять диагноз пользователя, задавая ему...

Экспертная система
Добрый день Нужна экспертная система по определению оптимальной конфигурации ПК. Входные данные: 1) цели использования ПК; 2)...

Экспертная система
Нужна экспертная система, написанная на прологе, в принципе на любую тему! Точнее нужен исходник! Если у кого то есть или знает где можно...

1
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
26.11.2013, 12:06
Цитата Сообщение от triple94bm Посмотреть сообщение
Скорость выводит неправильно, считывает только последний параметр из
Prolog
1
ocenka('3',0.9)
0,9. скажите, пожалуйста, как исправить.
Правильно, Вы же всегда делаете retractall(_,mydb)... Да, и вообще, Вы всмотритесь в код внимательней, что там происходит: readchar(C) и этого ж C assert во все параметры. Т.е. программа работает правильно логика рассуждений разработчика хромает... Не надо писать на Паскале в синтаксисе Пролога, попробуйте все-таки описать задачу декларативно...
Извиняюсь, это даже не Паскаль. Пройдите по своему коду и опишите словами и вслух, что делает Ваша программа.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.11.2013, 12:06
Помогаю со студенческими работами здесь

Экспертная система
Вроде все сделала, но программа не работает. Помогите найти ошибки. domains fam, name = string s1,s2,s3,s4,s5,s6 = char ...

Экспертная система и БД поликлинники
Здравствуйте, такая проблема, вот код базы данных и внедренную в нее экспертной системы. Проблема в том, что пролог ругается, prolog.err ....

Экспертная система (Цветы)
Помогите разобраться...Есть экспертная система, не знаю как она работает. Как вводить запросы? Объяснииитее.... Оболочка экспертной...

Развитая экспертная система
Дали задание написать развитую экспертную систему, опираясь на учебник Братко. То, что понял написал, но она не хочет работать, т.к. как я...

Экспертная система по конфигурации ПК
Экспертная система по определению оптимальной конфигурации ПК. Входные данные: 1) цели использования ПК; 2) границы стоимости выбранной...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru