<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=418257&amp;view=findpost&amp;p=3828933</guid>
        <pubDate>Tue, 21 Apr 2020 18:40:07 +0000</pubDate>
        <title>Prolog программу для решения известной задачи о волке, козе и капусте</title>
        <link>https://forum.sources.ru/index.php?showtopic=418257&amp;view=findpost&amp;p=3828933</link>
        <description><![CDATA[swf: Она уже есть в 5.2 в качестве примера.<br>
По-моему, копировала её именно оттуда<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">domains</div><div class="code_line">&nbsp;&nbsp; &nbsp; Koza,Kapusta,Volk,s=string</div><div class="code_line">&nbsp;&nbsp; &nbsp; </div><div class="code_line">database </div><div class="code_line">&nbsp;&nbsp; &nbsp;danimals(s)</div><div class="code_line">&nbsp;&nbsp; &nbsp;dcount(integer)</div><div class="code_line">&nbsp;</div><div class="code_line">database - prav</div><div class="code_line">&nbsp;&nbsp; &nbsp;danimals1(s)</div><div class="code_line">&nbsp;&nbsp; &nbsp; </div><div class="code_line">determ sum(integer)</div><div class="code_line">&nbsp;&nbsp; &nbsp; </div><div class="code_line">predicates</div><div class="code_line">&nbsp;&nbsp; &nbsp; dialog</div><div class="code_line">&nbsp;&nbsp; &nbsp; repeat &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; show</div><div class="code_line">&nbsp;&nbsp; &nbsp; assert_database</div><div class="code_line">&nbsp;&nbsp; &nbsp; clear_database</div><div class="code_line">&nbsp;&nbsp; &nbsp; animals(s)</div><div class="code_line">&nbsp;&nbsp; &nbsp; perevozka</div><div class="code_line">&nbsp;&nbsp; &nbsp; menu</div><div class="code_line">&nbsp;&nbsp; &nbsp; process(integer)</div><div class="code_line">&nbsp;&nbsp; &nbsp; error</div><div class="code_line">&nbsp;&nbsp; &nbsp; error1</div><div class="code_line">&nbsp;&nbsp; &nbsp; op_sost</div><div class="code_line">&nbsp;&nbsp; &nbsp; op_sost1</div><div class="code_line">&nbsp;&nbsp; &nbsp; inc</div><div class="code_line">&nbsp;&nbsp; &nbsp; podchet</div><div class="code_line">&nbsp;&nbsp; &nbsp; proverka</div><div class="code_line">&nbsp;&nbsp; &nbsp; </div><div class="code_line">goal &nbsp; &nbsp; </div><div class="code_line">&nbsp;&nbsp; &nbsp; dialog. &nbsp; &nbsp; </div><div class="code_line">&nbsp;&nbsp; &nbsp; </div><div class="code_line">clauses</div><div class="code_line">&nbsp;&nbsp; &nbsp;sum(0).</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;repeat.</div><div class="code_line">&nbsp;&nbsp; &nbsp;repeat:-repeat.</div><div class="code_line">&nbsp;&nbsp; &nbsp;animals(&quot;Kapusta&quot;).</div><div class="code_line">&nbsp;&nbsp; &nbsp;animals(&quot;Koza&quot;).</div><div class="code_line">&nbsp;&nbsp; &nbsp;animals(&quot;Volk&quot;).</div><div class="code_line">&nbsp;&nbsp; &nbsp;assert_database:-</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; animals(S),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; assertz(danimals(S)),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; fail.</div><div class="code_line">&nbsp;&nbsp; &nbsp;assert_database:-!.</div><div class="code_line">&nbsp;&nbsp; &nbsp;clear_database:-</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; retract(danimals(_)),fail.</div><div class="code_line">&nbsp;&nbsp; &nbsp;clear_database:-!. &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;perevozka().</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;op_sost:-</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; F=&quot;Kapusta&quot;,Q=&quot;Koza&quot;,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; danimals(F),danimals(Q),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; retract(danimals(F)),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; retract(sum(I)),I1=I+1,assert(sum(I1)),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; write(&quot;Koza est kapusty:)&quot;),nl.</div><div class="code_line">&nbsp;&nbsp; &nbsp;op_sost:-!.</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;op_sost1:-</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; R=&quot;Volk&quot;,E=&quot;Koza&quot;,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; danimals(R),danimals(E),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; retract(danimals(E)),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; retract(sum(I)),I1=I+1,assert(sum(I1)),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; write(&quot;Volk est kozy :)&quot;),nl.</div><div class="code_line">&nbsp;&nbsp; &nbsp;op_sost1:-!. &nbsp; &nbsp; </div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;show:-danimals(A),write(A),nl,fail.</div><div class="code_line">&nbsp;&nbsp; &nbsp;show:-!.</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;inc():-</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;retract(dcount(H)),H1=H+1,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;assert(dcount(H1)),!.</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;podchet:-</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;assert(dcount(0)),danimals(T),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;inc(),fail. &nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;podchet:-!.</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;proverka:-</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;dcount(X), X&#60;&#62;3,!,retract(dcount(_)),error1,fail.</div><div class="code_line">&nbsp;&nbsp; &nbsp;proverka:-</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;retract(dcount(_)),!.</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;dialog:- &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;assert_database, &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;makewindow(1,7,8,&quot;volk,koza,kapusta &quot;, 0,0,25,75),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;menu,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;clear_database.</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;menu:-</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;repeat,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;clearwindow,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;write(&quot; &nbsp; &nbsp; &nbsp; &nbsp;******************************************&quot;),nl,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;write(&quot; &nbsp; &nbsp; &nbsp; &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*&quot;),nl,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;write(&quot; &nbsp; &nbsp; &nbsp; &nbsp;* &nbsp; 1.posmotret kto na levom beregy &nbsp; &nbsp; &nbsp;*&quot;),nl,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;write(&quot; &nbsp; &nbsp; &nbsp; &nbsp;* &nbsp; 2. Perevesti &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; *&quot;),nl,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;write(&quot; &nbsp; &nbsp; &nbsp; &nbsp;* &nbsp; 3. dobavit na leviy bereg &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*&quot;),nl,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;write(&quot; &nbsp; &nbsp; &nbsp; &nbsp;* &nbsp; 4. Pocitat poteri &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*&quot;),nl,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;write(&quot; &nbsp; &nbsp; &nbsp; &nbsp;* &nbsp; 5. Vihod &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; *&quot;),nl,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;write(&quot; &nbsp; &nbsp; &nbsp; &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*&quot;),nl,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;write(&quot; &nbsp; &nbsp; &nbsp; &nbsp;******************************************&quot;),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;nl,nl, &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; write(&quot;viberite deystvie: &quot;),nl,</div><div class="code_line">&nbsp;&nbsp; &nbsp;readint(Choice),nl,</div><div class="code_line">&nbsp;&nbsp; &nbsp;process(Choice),</div><div class="code_line">&nbsp;&nbsp; &nbsp;Choice = 5,!.</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;process(1):-</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; makewindow(2,7,7,&quot;Leviy bereg&quot;,2,20,18,40), &nbsp; &nbsp; </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; show,nl,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; write(&quot;Nazmite probel&quot;),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; readchar(_),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; removewindow,!.</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;process(2):-</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;makewindow(2,7,7,&quot;perevozka &quot;,2,20,18,42),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;podchet,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;proverka, &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;write(&quot;Kogo vi hotite perevesti&quot;),nl,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;readln(D),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;retract(danimals(D)),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;assert(danimals1(D)),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;op_sost,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;op_sost1, &nbsp; </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;write(&quot;Nazmite probel&quot;),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;readchar(_),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;removewindow,!.</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;process(3):-</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; makewindow(2,7,7,&quot;Dobavlenie&quot;,2,20,18,42),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; write(&quot;kogo vi hotite dobavit na leviy bereg&quot;),nl,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; readln(X),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; assertz(danimals(X)),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; write(&quot;Nazmite probel&quot;),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; readchar(_),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; removewindow,!.</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;process(4):-</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;makewindow(2,7,7,&quot;Poteri&quot;,2,20,18,42),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;write(&quot;poteri ravni = &quot;),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;sum(I1),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;write(I1),nl,nl,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;write(&quot;Nazmite probel&quot;),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;readchar(_),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;removewindow,!.</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;process(5):-</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;write(&quot;Vi hotite viyti iz programmi? y/n&quot;),nl,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;readln(Z),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Z=&quot;y&quot;,!.</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;process(Choice):-</div><div class="code_line">&nbsp;&nbsp; &nbsp; Choice&#60;1,error.</div><div class="code_line">&nbsp;&nbsp; &nbsp;process(Choice):-</div><div class="code_line">&nbsp;&nbsp; &nbsp; Choice&#62;5,error.</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; error:-</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;write(&quot;Ykazite chislo ot 1 do 5&quot;),nl,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;write(&quot;nazmite probel dly prodolzeniy&quot;),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;readchar(_).</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;error1:-</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;write(&quot;na levom beregy dolzno bit 3 obeckta!&quot;),nl,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;write(&quot;nazmite probel dly prodolzeniy&quot;),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;readchar(_),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;removewindow,!.</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>swf</author>
        <category>Prolog</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=418257&amp;view=findpost&amp;p=3828930</guid>
        <pubDate>Tue, 21 Apr 2020 16:21:40 +0000</pubDate>
        <title>Prolog программу для решения известной задачи о волке, козе и капусте</title>
        <link>https://forum.sources.ru/index.php?showtopic=418257&amp;view=findpost&amp;p=3828930</link>
        <description><![CDATA[anna2212: Нужно написать на языке Prolog программу для решения известной задачи о волке, козе и капусте. Программа должна быть написана в visual prolog 5.2<br>Ранее никогда не работала с данной программой, поэтому прошу у вас помощи. Может у кого-то есть готовая программа. Либо уже именно файл программы, который можно будет запустить. Буду благодарна&#33;<br>Задание: У фермера есть волк, коза и капуста, и все они находятся на левом берегу реки. Необходимо провести это “трио” на правый берег, но в лодку может поместиться что-то одно – волк, коза или капуста. Рискованно оставлять на одном берегу волка вместе с козой, равно как и козу вместе с капустой.]]></description>
        <author>anna2212</author>
        <category>Prolog</category>
      </item>
	
      </channel>
      </rss>
	