[ Príspevkov: 5 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Prolog

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

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 | 9
NapísalOffline : 28.11.2007 17:15 | Prolog

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ý: 10.03.25
Príspevky: 346
Témy: 58 | 58
Bydlisko: Partizanske
Napísal autor témyOffline : 28.11.2007 17:32 | Prolog

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 | 4
NapísalOffline : 28.11.2007 17:38 | Prolog

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ý: 10.03.25
Príspevky: 346
Témy: 58 | 58
Bydlisko: Partizanske
Napísal autor témyOffline : 28.11.2007 17:42 | Prolog

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
 [ Príspevkov: 5 ] 


Prolog




© 2005 - 2026 PCforum, edited by JanoF