Изменить программу под другой метод поиска - Prolog
Формулировка задачи:
Добрый день, помогите пожалуйста изменить на метод Поиска в глубину.
Решение задачи: «Изменить программу под другой метод поиска»
textual
Листинг программы
domains str=string. int=integer. intlist=integer*. predicates nondeterm rule(int,str,str,intlist). nondeterm complete(int). nondeterm recognition(str). nondeterm discover(intlist). nondeterm ask(int). facts fact(int,str). clauses ask(X):-fact(X,"y"),!. ask(X):-fact(X,"n"),!,fail. ask(1):-write("Заражает компьютер ?"),!,complete(1). ask(2):-write("Распространяется людьми?"),!,complete(2). ask(3):-write("Совершает звонки на платные номера?"),!,complete(3). ask(4):-write("Осуществляет доступ к файловой системе?"),!,complete(4). ask(5):-write("Внедряется в существующие файлы?"),!,complete(5). ask(6):-write("Отправляет СМС-сообщения на платные номера?"),!,complete(6). ask(7):-write("Создан группой хакеров Культ дохлой коровы?"),!,complete(7). ask(8):-write("Используют сетевые протоколы?"),!,complete(8). ask(9):-write("Самораспространяется по СМС-сообщениям?"),!,complete(9). ask(10):-write("Приносит доход владельцам порносайтов?"),!,complete(10). ask(11):-write("Данные жертвы хранятся во временной файле?"),!,complete(11). ask(12):-write("Записывают свои копии в архивы?"),!,complete(12). ask(13):-write("Использует уязвимости и ошибки администрирования?"),!,complete(13). ask(14):-write("Пересылает входящие СМС-сообщения?"),!,complete(14). ask(15):-write("Располагается в каталоге Windows?"),!,complete(15). rule(1,"вирус","BackOrifice",[1,2,4,7]). rule(2,"вирус","Pinch",[1,2,4,11]). rule(3,"вирус","NetBus",[1,2,4]). rule(4,"вирус","Trojan.Winlock",[1,2]). rule(5,"вирус","Virus.Win9x.CIH",[1,5]). rule(6,"вирус","WinStart",[1,8,12,15]). rule(7,"вирус","AdjVirus",[1,8,12]). rule(8,"вирус","Worm.Info",[1,8]). rule(9,"вирус","Conficker",[1,13]). rule(10,"вирус","VBS.LoveLetter",[1]). rule(11,"вирус","Trojan.WinCE.Terdial.a",[3]). rule(12,"вирус","Worm.SymbOS.Yxe",[6,9]). rule(13,"вирус","Trojan_Spy.SymbOS.Zbot",[6,14]). rule(14,"вирус","Trojan_SMSWinCE.Sejweek",[6]). rule(15,"вирус","Trojan-SMS.Android.FakePlayer",[10]). rule(15,"вирус","Net-Worm.IphoneOS.lke.b",[]). recognition(X):- rule(N, X, Y, Z), discover(Z), !, write(" это более всего похоже на ", X, " - ", Y, " (правило ", N,")"), nl, recognition(Y). recognition("сеть"):- write("Система не имеет данных, этот вирус системе не известен"),nl,!. recognition(_). discover([]). discover([X|Y]):- ask(X), discover(Y). complete(X):- nl, readln(Y), assert(fact(X, Y)), Y="y". goal retractall(_), recognition("вирус").
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д