Diff for ''
| Deletions are marked like this. | Additions are marked like this. |
| Line 1: | Line 1: |
| # Prolog <{ForumPost(poster="osk", timestamp=2011-05-11 17:36:37)}> č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ý <{/ForumPost}> <{ForumPost(poster="PetrK", timestamp=2011-05-11 20:13:54)}> Tohle by mohlo fungovat, ale casova narocnost neni uplne nejlepsi. graf je reprezentovan seznamem sousedu: sousedi(Vrchol, \[seznam sousedu]). 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). <{/ForumPost}> <{ForumPost(poster="QZuzka", timestamp=2011-05-12 14:52:05)}> 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--- <{/ForumPost}> <{ForumPost(poster="Him", timestamp=2011-05-12 16:35:36)}> [http://forum.matfyz.info/viewtopic.php?f=169&t=7677](http://forum.matfyz.info/viewtopic.php?f=169&t=7677) [http://forum.matfyz.info/viewtopic.php?f=169&t=7672](http://forum.matfyz.info/viewtopic.php?f=169&t=7672) Hlavne tyto dve vlakna vypadaji, ze jsou od jedne osoby :) <{/ForumPost}> |