Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 5 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Prolog

Registrovaný: 25.05.07
Prihlásený: 14.04.23
Príspevky: 346
Témy: 58
Bydlisko: Partizanske
Príspevok NapísalOffline : 28.11.2007 17:00

Zdravim potreboval by som nejaky program v PROLOGU, nie moc zlozity a ak by sa dalo aj s nejakym jednoduchym vysvetlenim! ak niekto nieco ma tak please SS







_________________
Ntbk 1: HP ProBook 640 Ntbk 2: HP EliteBook 840 G5
HTPC: Zotac Zbox BI320,120GB SSD, RAM 3Gb
Konzola: Xbox ONE 1Tb
TV: Samsung 65RU7402
Tel 1: Huawei P10lite
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.11.06
Prihlásený: 31.12.07
Príspevky: 677
Témy: 9
Príspevok NapísalOffline : 28.11.2007 17:15

jednoduchší nepoznám
Kód:
% Hello World in Prolog

hello :- display('Hello World!') , nl .


Offline

Užívateľ
Užívateľ
Prolog

Registrovaný: 25.05.07
Prihlásený: 14.04.23
Príspevky: 346
Témy: 58
Bydlisko: Partizanske
Príspevok Napísal autor témyOffline : 28.11.2007 17:32

hmm no to je velmi zaujimave ale ja to musim odovzdat ako semestralku! a s tymto by ma vykopal z dveri







_________________
Ntbk 1: HP ProBook 640 Ntbk 2: HP EliteBook 840 G5
HTPC: Zotac Zbox BI320,120GB SSD, RAM 3Gb
Konzola: Xbox ONE 1Tb
TV: Samsung 65RU7402
Tel 1: Huawei P10lite
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.06.07
Prihlásený: 06.05.13
Príspevky: 421
Témy: 4
Príspevok NapísalOffline : 28.11.2007 17:38

Kedysi som si robil pre zabavu program, ktory skusa "klasicku" ulohu:
Preskakat konom celu sachovnicu, pricom nesmies na ziadnu poziciu skocit 2x.
Ale vysvetlovat Ti to nebudem, bolo to asi pred 15 rokmi, tak si z toho uz prd pamatam
Kód:
:- public main/0.

/*
:- visible pocet/1.
:- visible pole/2.
:- visible suradnice/2.
*/

main :- abolish(pole/2), abolish(pocet/1), abolish(suradnice/2),
        asserta(pocet(1)), asserta(pole(1,1)),
     cls,
     time(Y), write(Y),
        tmove(17,42), put(`o),
        tmove(2,55), write(5678), write(901), write(234),
        tmove(3,1), write(1), tmove(4,1), write(1),
     go,
        tmove(1,0),time(X), write(X), write(ok),
     preusporiadaj,
     zobrazuj.
main :- tmove(1,0),
     time(X), write(X), write(nak).

go :- call(pocet(61)).
go :- posun,
   go.

posun :- [! call(pole(X,Y)) !] , p(X,Y,X1,Y1), dobre(X1,Y1).
posun :- retract(pole(X,Y)), retract(pocet(P)), dec(P,P1), asserta(pocet(P1)),
      R is 18-X, S is 40+2*Y, tmove(R,S), put(32),
         tmove(3,P), put(32), tmove(4,P), put(32),
         !, fail.

p(X,Y,X1,Y1) :- [! retract(pocet(P)), inc(P,P1), asserta(pocet(P1)),
                   X1 is X+1, Y1 is Y+2, asserta(pole(X1,Y1)) !].
p(X,Y,X1,Y1) :- [! retract(pocet(P)), inc(P,P1), asserta(pocet(P1)),
             X1 is X-1, Y1 is Y+2, asserta(pole(X1,Y1)) !].
p(X,Y,X1,Y1) :- [! retract(pocet(P)), inc(P,P1), asserta(pocet(P1)),
             X1 is X+1, Y1 is Y-2, asserta(pole(X1,Y1)) !].
p(X,Y,X1,Y1) :- [! retract(pocet(P)), inc(P,P1), asserta(pocet(P1)),
         X1 is X-1, Y1 is Y-2, asserta(pole(X1,Y1)) !].
p(X,Y,X1,Y1) :- [! retract(pocet(P)), inc(P,P1), asserta(pocet(P1)),
         X1 is X+2, Y1 is Y+1, asserta(pole(X1,Y1)) !].
p(X,Y,X1,Y1) :- [! retract(pocet(P)), inc(P,P1), asserta(pocet(P1)),
         X1 is X-2, Y1 is Y+1, asserta(pole(X1,Y1)) !].
p(X,Y,X1,Y1) :- [! retract(pocet(P)), inc(P,P1), asserta(pocet(P1)),
         X1 is X+2, Y1 is Y-1, asserta(pole(X1,Y1)) !].
p(X,Y,X1,Y1) :- [! retract(pocet(P)), inc(P,P1), asserta(pocet(P1)),
         X1 is X-2, Y1 is Y-1, asserta(pole(X1,Y1)) !].

dobre(X,Y) :- retract(pole(X,Y)),
              ( call(pole(X,Y)) ; X<1 ; X>8 ; Y<1 ; Y>8 ),
        retract(pocet(P)), dec(P,P1), asserta(pocet(P1)),
        !, fail.
dobre(X,Y) :- asserta(pole(X,Y)),
        R is 18-X, S is 40+2*Y, tmove(R,S), put(`o),
              call(pocet(P1)), tmove(3,P1), write(X), tmove(4,P1), write(Y),
              !.

preusporiadaj :- call(pole(X,Y)), asserta(suradnice(X,Y)), fail.
preusporiadaj :- !.

zobrazuj :- call(suradnice(X,Y)),
      R is 18-X, S is 40+2*Y,
      tmove(R,S), put(`x),
      keyb(_,_),
      fail.
zobrazuj.

e :- edit(kuon).
/*
l :- listing.
l(X) :- listing(X).

pole(0,0).
pocet(58).
*/


Offline

Užívateľ
Užívateľ
Prolog

Registrovaný: 25.05.07
Prihlásený: 14.04.23
Príspevky: 346
Témy: 58
Bydlisko: Partizanske
Príspevok Napísal autor témyOffline : 28.11.2007 17:42

no nieco take som si predstavoval :D zatial diki moc hadam to nejak pochopim :D







_________________
Ntbk 1: HP ProBook 640 Ntbk 2: HP EliteBook 840 G5
HTPC: Zotac Zbox BI320,120GB SSD, RAM 3Gb
Konzola: Xbox ONE 1Tb
TV: Samsung 65RU7402
Tel 1: Huawei P10lite
Odpovedať na tému [ Príspevkov: 5 ] 


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  
cron

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra