uloha v prologu

Přednáška je věnována neprocedurálnímu programování. Většina semestru je věnována programování v jazyku Prolog, ve kterém studenti i ladí zápočtové programy. Informativně se studenti seznámí i s jazykem LISP a neprocedurálními částmi programovacích systémů.
msokol3
Matfyz(ák|ačka) level I
Příspěvky: 3
Registrován: 14. 6. 2010 19:57
Typ studia: Informatika Mgr.

uloha v prologu

Příspěvek od msokol3 »

Ahoj. potreboval by som trochu helfnut s ulohou v prologu. potrebujem overit konecnu binarnu mnozinu, ci je antisymetricka a tranzitivna. ak mi niekto mozete pomoct, budem velmi rad. dakujem.
venca
Matfyz(ák|ačka) level I
Příspěvky: 6
Registrován: 17. 10. 2008 07:25
Typ studia: Informatika Bc.

Re: uloha v prologu

Příspěvek od venca »

co je binární množina?
msokol3
Matfyz(ák|ačka) level I
Příspěvky: 3
Registrován: 14. 6. 2010 19:57
Typ studia: Informatika Mgr.

Re: uloha v prologu

Příspěvek od msokol3 »

G([1,2],[1,3]) napr.

pre antisymetriu mam spracovany kod:

antisym([]).
antisym([[X,Y]|R]):-
najdi([Y,X],R, [Y,X]),!,fail.
antisym([[X,Y]|R]):-
antisym(R)

najdi(A,[A|_],A).
najdi(A,[B|S],Out):-
najdi(A,S,Out).

malo by to fungovat. akurat mam problem s tranzitivitou.
thc

Re: uloha v prologu

Příspěvek od thc »

msokol3 píše:G([1,2],[1,3]) napr.

pre antisymetriu mam spracovany kod:

antisym([]).
antisym([[X,Y]|R]):-
najdi([Y,X],R, [Y,X]),!,fail.
antisym([[X,Y]|R]):-
antisym(R)

najdi(A,[A|_],A).
najdi(A,[B|S],Out):-
najdi(A,S,Out).

malo by to fungovat. akurat mam problem s tranzitivitou.
V ramci pripravy na zkousku (samozrejme bez zaruky):

Kód: Vybrat vše

binary_set( [(1,1),(1,2),(3,3),(2,3)] ).

non_member(X,[Y|T]) :- X \== Y, non_member(X,T).
non_member(X,[]).

antisymetrie([]).
antisymetrie([(A,B)|XS]) :- A == B, antisymetrie(XS).
antisymetrie([(A,B)|XS]) :- A \== B, non_member((B,A), XS), antisymetrie(XS).

% binary_set(A),tranzitivita(A).
tranzitivita([]).
tranzitivita(XS) :- tranzitivita(XS, XS).

tranzitivita([], _).
tranzitivita([(A,B)|XS], YS) :- (member((B,C), YS) -> member((A,C), YS)), tranzitivita(XS, YS).
msokol3
Matfyz(ák|ačka) level I
Příspěvky: 3
Registrován: 14. 6. 2010 19:57
Typ studia: Informatika Mgr.

Re: uloha v prologu

Příspěvek od msokol3 »

diky moc za pomoc:)
Odpovědět

Zpět na „PRG005 Neprocedurální programování“