Объясните что к чему - Prolog
Формулировка задачи:
Объясните как запустить файл .pro через visual prolog 5.2. вот прям с нуля если можно какие действия нужны.
Есть файлы .pro мне нужно их просто запустить чтобы всё работало. Как это сделать?
P.S. это мне нужно чтобы тупо сдать и забыть про всё это. Всем заранее спасибо!
DOMAINS manufactor=string model=string type=string oblast=string os=android;windows;ios program=string chip=string diagonal=real gabarit=integer price=integer Item=navigator(manufactor,model,type,oblast,os,program,chip,diagonal,gabarit,price) FACTS product(Item) PREDICATES string win_os(os) determ printAll determ print(item) determ menu nondeterm choice(integer) - (i) nondeterm findByManufactor(manufactor, item) - (i,o) nondeterm findByModel(model, item) - (i,o) nondeterm findByType(type, item) - (i,o) nondeterm findByOblast(oblast, item) - (i,o) nondeterm findByOs(os, item) - (i,o) nondeterm findByProgram(program, item) - (i,o) nondeterm findBychipChip(chip, item) - (i,o) nondeterm findByDiagonal(diagonal, diagonal, item) - (i,i,o) nondeterm findByGabarit(gabarit,gabarit, item) - (i,i,o) nondeterm findByPrice(price, price, item) - (i,i,o) os parseOs(string) determ match(string, string) - (i,i) determ header CLAUSES menu:- nl,write("1-Напечатать все"), nl, write("2-Поиск по Производителю"), nl, write("3-Поиск по Модели"), nl, write("4-Поиск по Типу модели"), nl, write("5-Поиск по Области пременения"), nl, write("6-Поиск по Операционной системе"), nl, write("7-Поиск по Программному обеспечению"), nl, write("8-Поиск по Чипсету"), nl, write("9-Поиск по Диагонали экрана"), nl, write("10-Поиск по Габариты"), nl, write("11-Поиск по Цене"), nl, write("e-Выход"), nl, write("Выберите действие: "), readint(C), consult("db_navigator.txt"),nl,choice(C),!,menu. menu:- nl,write(" Спасибо за работу с программой"),nl. header:- writef("%-15\t%-15\t%-25\t%-10\t%-15\t%-25\t%-15\t%-15\t%-15\t%-15", "Производитель:", "Модель:", "Тип:", "Область пременения:", "Операционная система:", "Программное обеспечение:", "Чипсет:", "Диагональ экрана:", "Габарит:", "Цена:"), nl. choice(1):- header, printAll. choice(2):- write("Выберите производителя: "), readln(Manufactor), header, findByManufactor(Manufactor, Item), print(Item), fail; true. choice(3):- write("Введите модель: "), readln(Model), header, findByModel(Model, Item), print(Item), fail; true. choice(4):- write("Введите Тип: "), readln(Type), header, findByType(Type, Item), print(Item), fail; true. choice(5):- write("Введите Область пременения: "), readln(Oblast), header, findByOblast(Oblast, Item), print(Item), fail; true. choice(6):- write("Введите Операционная система: "), readln(SM), header, Os = parseOs(SM), findByOs(Os,Item), print(Item), fail; true. choice(7):- write("Введите Программное обеспечение: "), readln(Program), header, findByProgram(Program, Item), print(Item), fail; true. choice(8):- write("Введите Чипсет: "), readln(Chip), header, findBychipChip(Chip, Item), print(Item), fail; true. choice(9):- write("Введите минимальную диагональ: "), readreal(Min), write("Введите максимальную диагональ: "), readreal(Max), header, findByDiagonal(Min,Max,Item), print(Item), fail; true. choice(10):- write("Введите минимальную Габариты: "), readint(Min), write("Введите максимальную Габариты: "), readint(Max), header, findByGabarit(Min,Max,Item), print(Item), fail; true. choice(11):- write("Введите минимальную Цену : "), readint(Min), write("Введите максимальную Цену: "), readint(Max), header, findByPrice(Min,Max,Item), print(Item), fail; true. printAll:- retract(product(Item)),print(Item),fail. printAll. print(Item):- Item=navigator(Manufactor, Model, Type, Oblast, Os, Program, Chip, Diagonal, Gabarit, Price), SM=win_os(Os), writef("%-15\t%-15\t%-25\t%-20\t%-25\t%-25\t%-25\t%-25\t%-15\t%-15", Manufactor, Model, Type, Oblast, SM, Program, Chip, Diagonal, Gabarit, Price), nl. win_os(android,"андроид"). win_os(windows,"Windows CE"). win_os(ios,"IOS NEW"). findByManufactor(Manufactor,Item):- retract(product(Item)), Item=navigator(ManufactorSrc,_,_,_,_,_,_,_,_,_), match(Manufactor,ManufactorSrc). findByModel(Model,Item):- retract(product(Item)), Item=navigator(_,ModelSrc,_,_,_,_,_,_,_,_), match(Model,ModelSrc). findByType(Type,Item):- retract(product(Item)), Item=navigator(_,_,TypeSrc,_,_,_,_,_,_,_), match(Type,TypeSrc). findByOblast(Oblast, Item):- retract(product(Item)), Item=navigator(_,_,_,OblastSrc,_,_,_,_,_,_), match(Oblast,OblastSrc). findByOs(Os,Item):- retract(product(Item)), Item=navigator(_,_,_,_,Os,_,_,_,_,_). findByProgram(Program, Item):- retract(product(Item)), Item=navigator(_,_,_,_,_,ProgramSrc,_,_,_,_), match(Program,ProgramSrc). findBychipChip(Chip,Item):- retract(product(Item)), Item=navigator(_,_,_,_,_,_,ChipSrc,_,_,_), match(Chip,ChipSrc). findByDiagonal(Min,Max,Item):- retract(product(Item)), Item=navigator(_,_,_,_,_,_,_,Diagonal,_,_), Diagonal >= Min, Diagonal <= Max. findByGabarit(Min,Max,Item):- retract(product(Item)), Item=navigator(_,_,_,_,_,_,_,_,Gabarit,_), Gabarit >= Min, Gabarit <= Max. findByPrice(Min,Max,Item):- retract(product(Item)), Item=navigator(_,_,_,_,_,_,_,_,_,Price), Price >= Min, Price <= Max. parseOs(S,android):- match("андроид",S),!. parseOs(S,windows):- match("Windows CE",S),!. parseOs(S,ios):- match("IOS NEW",S),!. match(S,SIn):- upper_lower(S,SLow), upper_lower(SIn,SInLow), searchstring(SInLow,SLow,Pos), Pos>0. GOAL menu.
Решение задачи: «Объясните что к чему»
textual
Листинг программы
GLOBAL FACTS
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д