Prolog

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ů.
osk
Matfyz(ák|ačka) level I
Příspěvky: 1
Registrován: 11. 5. 2011 17:31
Typ studia: Informatika Bc.

Prolog

Příspěvek od osk »

čau, nevěděl by někdo jak jednoduše udělat v prologu tohle zadání :

Na vstupu je zadán obecně nesouvislý graf. napište program v prologu, který na výstupu vytiskne výčtem všech uzlů jednotlivé komponenty tohoto grafu.

za jakoukoliv pomoc budu vděčný
PetrK
Matfyz(ák|ačka) level I
Příspěvky: 22
Registrován: 7. 2. 2011 22:41
Typ studia: Informatika Bc.

Re: Prolog

Příspěvek od PetrK »

Tohle by mohlo fungovat, ale casova narocnost neni uplne nejlepsi.

graf je reprezentovan seznamem sousedu:
sousedi(Vrchol, [seznam sousedu]).

Kód: Vybrat vše

komp(K):-sousedi(X, _), komponenty([X], [X], [], K).

komponenty([], A, A2, Vyst):-sousedi(X, _), not(obsahuje(X, [A|A2])), komponenty([X], [X], [A|A2], Vyst).
komponenty([], A, A2, [A|A2]).
komponenty([H|T], A, V, Vyst):-sousedi(H, S), naZasobnik(S, T, A, T2, A2), komponenty(T2, A2, V, Vyst).

naZasobnik([], T, A, T, A).
naZasobnik([X|Xs], T, A, T2, A2):-not(member(X, A)), naZasobnik(Xs,[X|T], [X|A], T2, A2).
naZasobnik([_|Xs], T, A, T2, A2):-naZasobnik(Xs, T, A, T2, A2).

obsahuje(X, [H|_]):-member(X, H).
obsahuje(X, [_|T]):-obsahuje(X, T).
QZuzka
Matfyz(ák|ačka) level III
Příspěvky: 209
Registrován: 2. 12. 2007 19:51
Typ studia: Informatika Mgr.
Bydliště: Praha 4

Re: Prolog

Příspěvek od QZuzka »

Nějak se nám tu rozmáhají lidi, kdo napíšou zadání a čekaj řešení - občas mi fórum taky hodně pomohlo, ale jak se to teď nahromadilo u prologu, tak to fakt nevypadá dobře. Už proto, že třeba někteří cvičící tu to čtou :)

spíš pro příští, lépe by působilo (alespoň na mě), kdybyste napsali aspoň trochu víc, třeba jak jste to zkusili nebo o jaké reprezentaci uvažujete...

---můj pohled, možná to ostatní vidí jinak---
Him
Supermatfyz(ák|ačka)
Příspěvky: 400
Registrován: 25. 1. 2008 19:59
Typ studia: Informatika Bc.

Re: Prolog

Příspěvek od Him »

Pracoval jsem na poměrně hodně materiálech pro různé předměty. Pokud Ti něco z toho ušetřilo čas, vyjádři svůj dík v podobě pár satoshi: 1H5JPTrsXie7epAQXbXhMjdgwyLbJ5NHBW ;)
Odpovědět

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