5 / 1 / 1 Регистрация: 28.01.2018 Сообщений: 310 |
|
1 |
|
16.12.2020, 02:26. Показов 2200. Ответов 4
main.pro(1,1) ругается на первую строчку которая называется domains Добавлено через 20 минут Добавлено через 5 часов 39 минут Добавлено через 25 секунд
__________________
0 |
785 / 589 / 156 Регистрация: 07.10.2013 Сообщений: 1,313 |
|
16.12.2020, 09:49 |
2 |
мб я не в том файле пишу а как же вам помочь, если вы ничего не говорите где текст файла?
0 |
Yelle 5 / 1 / 1 Регистрация: 28.01.2018 Сообщений: 310 |
||||
16.12.2020, 09:55 [ТС] |
3 |
|||
arlat, это не важно там просто при любой простой програмке выдает эту ошибку,но если ты не понимаешь сути проблемы то вот такая простая задачка не запускается выдавая туже самую ошибку
0 |
arlat 785 / 589 / 156 Регистрация: 07.10.2013 Сообщений: 1,313 |
||||
16.12.2020, 14:57 |
4 |
|||
это не важно важно. вы хоть установили примеры, идущие в поставке, да посмотрели бы хоть один
multi (o,o,o) это для данного случая, для вашей реализации компилятор подскажет Миниатюры
0 |
785 / 589 / 156 Регистрация: 07.10.2013 Сообщений: 1,313 |
|
16.12.2020, 15:02 |
5 |
вижуал пролог 8 так ставьте 9-ку, чего уж там…
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
16.12.2020, 15:02 |
Помогаю со студенческими работами здесь Syntax error, не могу понять в чем причина Ошибка в коде Syntax error: Operator priority clash Ошибка: «Syntax error in clause body, predicate call expected» ошибка syntax error in 50 line at ‘display’ :help: Syntax error in expression (unexpected `;’, possibly due to bad layout) Syntax error or access violation 1064 you have an error in your sql syntax[Unix server] Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 5 |
Содержание
- Error c150 syntax error visual prolog
- Error c150 syntax error visual prolog
- Error c150 syntax error visual prolog
- Я выполняю задание для колледжа. Моя программа Prolog имеет 1 синтаксическую ошибку C150. Как отлаживать синтаксис, а затем запрашивать базу знаний?
Error c150 syntax error visual prolog
clauses
classInfo(«whoWotLove», «1.0»).
like(masha, flowers).
like(X, Z):- love(X, Y), like(Y, Z).
love(anna, son(anna)).
love(son(anna), masha).
love(olya, X):- love(anna, X).
z1:- stdio::nl, like(son(anna), flowers), stdio::write(«z1:да»).
z1:- stdio::nl, stdio::write(«z1:нет»).
run():-
console::init(), z1.
end implement main
goal
mainExe::run(main::run).
main.pro(10,5) error c155: The identifier ‘Name’ must start with a lowercase letter
main.pro(12,9) error c150: Syntax error
DOMAINS
Name=anna;masha;olya;flowers;son(Name).
PREDICATES
like(Name, Name).
love(Name, Name).
z1.
z2.
z3.
z4.
z5.
z6.
CLAUSES
like(masha, flowers).
like(X, Z):-love(X, Y),like(Y, Z).
love(anna, son(anna)).
love(son(anna), masha).
love(olya, X):-love(anna, X).
z1:- nl, like(son(anna), flowers), write(«z1 да «).
z1:- nl, write(«z1 нет»).
z2:- nl, love(anna, masha), write(«z2 да «).
z2:- nl, write(«z2 нет»).
z3:- nl, write(«z3 «),like(X, flowers), write(X,»,»),fail.
z3:- nl, write(«больше нет»).
z4:- nl, write(«z4 «),love(olya, X), write(X,»,»),fail.
z4:- nl, write(«больше нет»).
z5:- nl, write(«z5 «), love(X, masha), like(X, flowers), write(X,»,»),fail.
z5:- nl, write(«больше нет»).
z6:- nl, like(anna, flowers),write(«z6 да «).
z6:- nl, write(«z6 нет»).
GOAL
z1,z2,z3,z4,z5,z6.
В версии Visual Prolog 5.2 Ругается на «makewindow», приходилось её закоментировать.
Пишет:
E;Test_Goal, pos: 808, 404 Undeclared predicate, misspelling or not supported on chosen platform makewindow
Проверял в TestGoal.
main.pro(10,5) error c155: The identifier ‘Name’ must start with a lowercase letter идентификатор ‘Name’ должен начинаться с маленькой буквы.
Замените ‘Name’ на ‘name’, ёлы-палы.
makewindow() в семёрке нету. и не надо)))
implement main
open core
domains
name=anna;masha;olya;flowers;son(name).
class predicates
like(name, name). /*пишет ошибку в этой строке (main.pro(12,9) error c150: Syntax error)*/
love(name, name).
z1.
clauses
classInfo(«whoWotLove», «1.0»).
like(masha, flowers).
like(X, Z):- love(X, Y), like(Y, Z).
love(anna, son(anna)).
love(son(anna), masha).
love(olya, X):- love(anna, X).
z1:- stdio::nl, like(son(anna), flowers), stdio::write(«z1:да»).
z1:- stdio::nl, stdio::write(«z1:нет»).
run():-
console::init(), z1.
end implement main
goal
mainExe::run(main::run).
class predicates
like(name, name). /*пишет ошибку в этой строке (main.pro(12,9) error c150: Syntax error)*/
like:(name, name).
И начнёт на режим детерменизма ругаться, наверное)))
Вы бы начали с классического «хелоу ворд», однако.
class predicates
like(name, name). /*пишет ошибку в этой строке (main.pro(12,9) error c150: Syntax error)*/
like:(name, name).
И начнёт на режим детерменизма ругаться, наверное)))
Вы бы начали с классического «хелоу ворд», однако.
На русском языке нормальной литературы по версии 7.3 нет. Вот и приходится по старым книжкам разбираться.
А эту «A Beginners’ Guide to Visual Prolog Version 7.2» ещё не скоро переведут.
На русском языке нормальной литературы по версии 7.3 нет. Вот и приходится по старым книжкам разбираться.
А эту «A Beginners’ Guide to Visual Prolog Version 7.2» ещё не скоро переведут.
Источник
Error c150 syntax error visual prolog
Не могу откомпилировать в Visual Prolog 7.3 задачу «Полицейская головоломка», написанную на Prolog. Суть задачи следующая:
Jean был убит во вторник. Luc, Paul, Alain, Bernard и Louis находятся под подозрением.
Известно что:
— убийцей является тот, кто желал смерти Jean-a, имеет оружие и не имеет алиби на вторник;
— алиби представленное персоной не внушающей доверия не является действительным;
— кто-то мог хотеть смерти Jean-a, если он был заинтересован в его смерти или желал ему отомстить;
— персона модет быть заинтересована в смерти Jean-a, если она наследует его собственность, если должна ему денег или была замечена Jean-ом на месте преступления.
Анкета дала следующие результаты:
— У Luc-a есть алиби на вторник, которое предоставил Bernard;
— У Paul-a есть алиби на вторник, которое предоставил Bernard;
— У Louis-a есть алиби на вторник, которое предоставил Luc;
— У Alain -a есть алиби на четверг, которое предоставил Luc;
— Alain персона не внушающее доверие;
— Paul хотел отомстить Jean-у;
— Luc хотел отомстить Jean-у;
— Bernard является наследником Jean-a;
— Jean является наследником Louis -a;
— Louis должен денег Jean-у;
— Luc должен денег Jean-у;
— Jean видел Alain –a за совершением преступления;
— У Luc-а есть оружие;
— У Louis -а есть оружие;
— У Alain -а есть оружие.
Кто убийца?
Мое решение следующее:
implement main
open core
constants
className = «main».
classVersion = «».
clauses
classInfo(className, classVersion).
domains
name = symbol.
day = symbol.
predicates
person : (name).
alibi : (name,day,name).
persona_non : (name).
mesti : (name).
heir : (name,name).
money : (name).
jean_see : (name).
weapon : (name).
motive : (name).
n_al : (name).
killer : (name).
goal
mainExe::run(main::run).
killer(X),
write(«KILLER -«,X).
clauses
run():-
console::init(),
person(jean).
person(luc).
person(paul).
person(alain).
person(bernard).
person(louis).
alibi(luc,tuesday,bernard). /* У Luc-a есть алиби на вторник, которое предоставил Bernard */
alibi(paul,tuesday,bernard). /* У Paul-a есть алиби на вторник, которое предоставил Bernard */
alibi(louis,tuesday,luc). /* У Louis-a есть алиби на вторник, которое предоставил Luc */
alibi(alain,thursday,luc). /* У Alain -a есть алиби на четверг, которое предоставил Luc */
persona_non(alain). /* Alain персона не внушающее доверие */
mesti(paul). /* Paul хотел отомстить Jean-у */
mesti(luc). /* Luc хотел отомстить Jean-у */
heir(bernard,jean). /* Bernard является наследником Jean-a */
heir(jean,louis). /*Jean является наследником Louis -a */
jean_see(alain). /* Jean видел Alain –a за совершением преступления */
money(louis). /* Louis должен денег Jean-у */
money(luc). /* Luc должен денег Jean-у */
weapon(luc). /* У Luc-а есть оружие */
weapon(louis). /* У Louis -а есть оружие */
weapon(alain). /* У Alain -а есть оружие */
n_al(X) :- not(alibi(X,tuesday,_)), not(alibi(_,tuesday,X)), persona_non(X).
motive(X) :- mesti(X), heir(X,_), jean_see(X), money(X).
killer(X) :- motive(X), weapon(X), n_al(X).
end implement main
Но выдает ошибку при компиляции — e150: Syntax error
Подскажите, пожалуйста.
Источник
Error c150 syntax error visual prolog
У меня установлен swipl.
При нажатии кнопки появляется сообщение об ошибке:
Error occurred running Prolog compiler. Check options.
In the main menu go to ‘Tools / Options / Miscellaneous / Prolog’.
Command string is swipl -c C:Documents and SettingsАдминистраторМои документыNetBeansProjectsNewProjectsrcnewProlo gTemplate.pro .
Произошла ошибка при запуске компилятора Prolog. Проверьте параметры.
В главном меню выберите «Инструменты / Параметры / Разное / Пролог».
Командная строка — swipl -c C: Documents and Settings Администратор Мои документы NetBeansProjects NewProject src newPrologTemplate.pro.
Небольшой опыт работы с NetBeans у меня есть (Groovy) .
Про PROLOG я только читал .
Во взаимодействии NetBeans и PROLOG я, пока надеюсь, полный ноль .
Вобщем просветите невежду :confused.
А если есть русскоязычные материалы в сети по этой теме, просьба
накидать ссылки:837:
Задача, наверное, решена — установил компилятор, прописал путь .
При нажатии на `CompileProlog file` появляется следующее —
Output of running C:Program FilesVisual Prolog 7.4 PEbinvipCompiler.exe C:PROLOGhelloWorldsrchelloWorld.pro is:
This application is created with the Personal Edition of Visual Prolog.
You may NOT distribute it or use it commercially.
See:
Compiling file ‘C:PROLOGhelloWorldsrchelloWorld.pro’
Compiled 9 lines in 0.010 sec (899 lines per second)
C:PROLOGhelloWorldsrchelloWorld.pro(7,1) : error c150: Syntax error
Compilation terminated with code 1
Поэтому просьба, предоставить мне код делающий две вещи, helloWorld и fibonachi, но в такой форме, чтобы окна не исчезали после окончания работы, а дожидались нажатия любой клавиши .
Винитарх, я ввёл первый код, после нажатия
появилось следующее сообщение:
Output of running C:Program FilesVisual Prolog 7.4 PEbinvipCompiler.exe C:PROLOGhelloWorldsrchelloWorld.pro is:
This application is created with the Personal Edition of Visual Prolog.
You may NOT distribute it or use it commercially.
See:
Compiling file ‘C:PROLOGhelloWorldsrchelloWorld.pro’
Compiled 7 lines in 0.100 sec (70 lines per second)
C:PROLOGhelloWorldsrchelloWorld.pro(1,11) : error c223: A class declaration is not found for the implementation ‘main’
Compilation terminated with code 1
«Объявление класса не найдено для реализации ‘main’» — что может значить это сообщение и что надо сделать чтобы исправить ошибку .
Я всё же не вполне понял Вашу цель. С каким именно Prolog Вы хотите работать в NetBeans? Visual Prolog и SWI Prolog — это сейчас фактически разные языки. Вам безразлично какой из них использовать?
И почему Вы решили бросить SWI Prolog и искать дальше? Всего-то оставалось настроить строку запуска..
тогда надо добавить опцию компилятору /I:. /I:d:vipProDirpfc
путь свой поставить надо.
Да. в IDE по BuildScript Preview можно увидеть правильную строку компилятора, ну почти правильную. там есть свои заморочки
Compiler Name — «C:Program Filesswiplbinswipl.exe»
Compiler Arguments — пустая
При нажатии кнопки
появилось следующее сообщение:
Output of running «C:Program Filesswiplbinswipl.exe» C:PROLOGhelloWorldsrctest.pl is:
На данный момент я доволен .
При нажатии на кнопку выдается следующее:
Output of running «C:Program Filesswiplbinswipl.exe» C:PROLOGhelloWorldsrcfibonachi.pl is:
Warning: c:/prolog/helloworld/src/fibonachi.pl:13:
Singleton variables: [N]
N = _G2025 ===> fib = 8
Как изменить код чтобы:
Винитарх, всё равно —
Arab = 3497 ===> Rim = MMMCDXCVII
ERROR: c:/prolog/helloworld/src/rimarab.pl:23:
is/2: Type error: `[]’ expected, found `»XX»‘ (a string) («x» must hold one character)
Warning: c:/prolog/helloworld/src/rimarab.pl:23:
Винитарх, надеюсь, что перенос вопроса из темы о Io, побудит Вас ответить на него! Заранее спасибо.
Винитарх, убедительная просьба популярно объяснить что происходит в строке
Output of running «C:Program Filesswiplbinswipl.exe» -c C:PROLOGhelloWorldsrcfibonachi_1.pro is:
Warning: c:/prolog/helloworld/src/fibonachi_1.pro:9:
Clauses of main/0 are not together in the source-file
Earlier definition at c:/prolog/helloworld/src/fibonachi_1.pro:2
Current predicate: fib/2
Use :- discontiguous main/0. to suppress this message
% autoloading prolog_codewalk:must_be/2 from c:/program files/swipl/library/error
. .
Что может значить такое сообщение и как надо исправить код .
Вторая строчка (maun:-) лишняя. Уберите её.
В сообщении об ошибке Вам было сказано, что клозы предиката main должны быть вместе, т.е. сгруппированы.
Получилось следующее (извиняюсь за «простыню»):
Output of running «C:Program Filesswiplbinswipl.exe» -c C:PROLOGhelloWorldsrcfibonachi_1.pro is:
% autoloading prolog_codewalk:must_be/2 from c:/program files/swipl/library/error
% autoloading prolog_debug:backtrace/1 from c:/program files/swipl/library/prolog_stack
% autoloading qsave:current_foreign_library/2 from c:/program files/swipl/library/shlib
% autoloading error:assertion/1 from c:/program files/swipl/library/debug
% autoloading prolog_source:directory_file_path/3 from c:/program files/swipl/library/filesex
% autoloading files_ex:use_foreign_library/2 from c:/program files/swipl/library/shlib
% autoloading prolog_codewalk:portray_clause/1 from c:/program files/swipl/library/listing
% autoloading prolog_codewalk:clause_info/4 from c:/program files/swipl/library/prolog_clause
% autoloading prolog_codewalk:initialization_layout/4 from c:/program files/swipl/library/prolog_clause
% autoloading record:member/2 from c:/program files/swipl/library/lists
% autoloading oset:reverse/2 from c:/program files/swipl/library/lists
% autoloading prolog_codewalk:clause_name/2 from c:/program files/swipl/library/prolog_clause
% Autoloader: iteration 1 resolved 11 predicates and loaded 12 files in 0.340 seconds. Restarting .
% autoloading files_ex:maplist/2 from c:/program files/swipl/library/apply
% autoloading files_ex:permission_error/3 from c:/program files/swipl/library/error
% Autoloader: loaded 11 files in 2 iterations in 0.461 seconds
Источник
Я выполняю задание для колледжа. Моя программа Prolog имеет 1 синтаксическую ошибку C150. Как отлаживать синтаксис, а затем запрашивать базу знаний?
r) Проверьте свою программу Prolog, задав следующие вопросы. Обратите внимание, что в некоторых случаях может быть невозможно избежать получения одного и того же ответа более одного раза для запроса. i) Кто такой муж Сары? ii) Кто такие внуки Элизабет? iii) Кто такие прабабушки? iv) Кто такие сестры-дианы? v) Кто такие дяди Беатрис? Включите распечатку, в которой отображаются ваши запросы и ответы на программы (вы можете просто скопировать это из главного окна SWI-Prologs).
Прежде всего, посмотрите на этот вопрос, где объясняется, как отформатировать ваш код на SO.
Поскольку мы не можем работать с указанным вами кодом, позвольте мне просто дать вам небольшой пример того, из чего состоит ваше задание. Оттуда вы сможете выяснить, что вы должны менять.
Мы рассматриваем следующие факты Пролога:
(Заметим, что мы не пишем имена с прописными буквами, так как Prolog использует заглавные слова для имен переменных.)
Впоследствии мы можем определить понятие бабушки и дедушки. Дедушка и бабушка — это тот, кто был детьми, и у этих детей тоже есть дети. Мы можем написать это очень легко:
Теперь мы можем спросить Prolog:
Во втором запросе мы иллюстрируем мощь объединения Prolog. Мы просим Пролога найти нас каждый X и каждый Y, для которых тело бабушки и дедушки /2 преуспевает. В этом случае это только для billy_the_kid и grandpa_bills, но когда вы расширяете свой набор фактов и добавляете больше людей, этот запрос возвращает все результаты (по отдельности), для которых grandparent/2 преуспевает.
Для получения дополнительной информации ознакомьтесь с этим уроком.
Источник
What’s wrong ? I try to build prolog program but complier throw error number c150 . How to fix
domains NAME=string. NUM=symbol. N=integer. predicates abon(NAME,NUM) abonname(NAME,NUM) abonnum(NAME,NUM) punkt(N) menu repeat clauses abon(alex,"111234"). abon(ivan,"123456"). abon(petr,"135679"). abon(semen,"141258"). abon(evgen,"157989"). abon(dima,"234577"). abon(semen,"245876"). abon(oleg,"342588"). abon(roman,"428576"). abonname(NAME,NUM):-abon(NAME,NUM),!. abonname(_,"No information about number"). abonnum(NAME,NUM):-abon(NAME,NUM),!. abonnum("No information about name",_). menu:-repeat,write("nomer menu-"),nl, write("1-all information"),nl, write("2-search by name"),nl, write("3-search by number"),nl, write("0-exit"),nl, readint(N),punkt(N),N=0. punkt(N):-N=1,abon(NAME,NUM), write(NAME,"-",NUM),nl,fail. punkt(N):-N=2,write("Name?:"),nl,readln(NAME), abonname(NAME,NUM),write("nomer-",NUM),nl,fail. punkt(N):-N=3,write("Number?:"),nl,readln(NUM), abonnum(NAME,NUM),write("imya-",NAME),nl,fail. punkt(0):-write("Exit"). repeat. repeat:-repeat. goal menu.
rule(1,"блюдо","первое",[1,2]). rule(2,"блюдо","фастфуд",[1,3]). rule(3,"блюдо","второе",[1]). rule(4,"блюдо","салат",[4]). rule(5,"блюдо","десерт",[5]). rule(6,"первое","суп щавелевый с галушками",[6,10,12,18,27]). rule(7,"первое","рассольник",[6,12,16,27]). rule(8,"первое","борщ",[6,12,14]). rule(9,"первое","куриный суп",[7,11,12]). rule(10,"первое","суп с фрикадельками",[8,11,12]). rule(11,"первое","молочный суп",[11,26]). rule(12,"первое","уха",[9,12]). rule(13,"второе","пюре с котлетой",[8,12,29]). rule(14,"второе","голубцы",[8,13,14]). rule(15,"второе","плов",[6,13]). rule(16,"второе","манты",[8,10,28]). rule(17,"второе","пельмени",[8,10]). rule(18,"второе","мясо по-французски",[6,12,20,22]). rule(19,"второе","рыба фаршированная",[9,24]). rule(20,"фастфуд","пицца",[10,15,17,20,21]). rule(21,"фастфуд","бутерброд",[10,17,20,22]). rule(22,"салат","зимний",[6,12,16,18,22,29]). rule(23,"салат","греческий",[15,16,20,21,22]). rule(24,"салат","хе",[6,19,27]). rule(25,"салат","красная шапочка",[12,18,20,22,23]). rule(26,"салат","летний",[15,16,22]). rule(27,"салат","нежность",[7,12,16,18,20,22]). rule(28,"десерт","блин сладкий",[10,24,26]). rule(29,"десерт","блин",[10,26]). rule(30,"десерт","шоколадные конфеты",[24,25]). rule(31,"десерт","торт",[10,24]). rule(32,"десерт","мороженое",[26,24,30]). rule(33,"десерт","мороженое",[26,25,30]). rule(34,"десерт","мороженое",[26,30]). rule(35,"десерт","молочный коктейль",[26]). 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("с помидорами?"),!,complete(15). ask(16):-write("с солеными/свежими огурцами?"),!,complete(16). ask(17):-write("с колбасой?"),!,complete(17). ask(18):-write("с яйцом?"),!,complete(18). ask(19):-write("с морковью?"),!,complete(19). ask(20):-write("с сыром?"),!,complete(20). ask(21):-write("с оливками?"),!,complete(21). ask(22):-write("с майонезом?"),!,complete(22). ask(23):-write("с гранатами?"),!,complete(23). ask(24):-write("с начинкой?"),!,complete(24). ask(25):-write("с шоколадом?"),!,complete(25). ask(26):-write("из молока?"),!,complete(26). ask(27):-write("кисловатое?"),!,complete(27). ask(28):-write("на пару?"),!,complete(28). ask(29):-write("традиционное?"),!,complete(29). ask(30):-write("очень холодное?"),!,complete(30). recognition(X):- rule(N, X, Y, Z), discover(Z), !, format(' это более всего похоже на %s - %s (правило %d)', X, Y, N), recognition(Y). recognition("блюдо"):- write("это блюдо системе не известно!"),nl,!. recognition("первое"):- write("это блюдо системе не известно, но его состав очень оригинален!"),nl,!. recognition("второе"):- write("это блюдо системе не известно, но его состав очень оригинален!"),nl,!. recognition("фастфуд"):- write("это блюдо системе не известно!"),nl,!. recognition("салат"):- write("это блюдо системе не известно, но его состав очень оригинален!"),nl,!. recognition("десерт"):- write("это блюдо системе не известно!"),nl,!. recognition(_). discover([]). discover([X|Y]):- ask(X), discover(Y). complete(X):- nl, read(Y), assert(fact(X, Y)), Y="y".