tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
530
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von sabrina21
    sabrina21 sabrina21 ist offline Mitglied
    Registriert seit
    Dec 2008
    Ort
    Bonn (NRW)
    Beiträge
    16
    Hallo zusammen,
    ich habe ein kleines Problem mit Prolog, ich möchte den folgendem Code mit einem Prädikat ergänzen, "laengeDesKuerzestenWegs/2" das dann in der Liste mit Ergebnisses die kleinste Längenangabe ermittelt. Aber ich stecke an der Stelle ganz schön fest und weiss nicht, wie ich dieses Prädikat in meinen Code sinnigerweise einbinden kann, vielleicht ist jemadem hier so ein Problem schonmal begegnet!? Ich bin für jede Hilfe dankbar.

    Gruß
    Sabrina

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    weg(ort(bahnhof), ort(krieg,friedrich)).    wegsuche2(X, Y, [Y], 1) :-
    weg(ort(bahnhof),                             weg(X, Y).
        ort(lautenschlager,kronen)).            wegsuche2(X, Y, [Z|Weg1], L) :-
    weg(ort(krieg,friedrich),                     weg(X, Z),
        ort(friedrich,kronen)).                   wegsuche2(Z, Y, Weg1, L1),
    weg(ort(lautenschlager,kronen),               L is L1 + 1.
        ort(friedrich,kronen)).                 wegsuche(X, Y, [L, X|Weg]) :-
    weg(ort(friedrich,kronen),                    wegsuche2(X, Y, Weg, L1),
        ort(krieg,kronen)).                       L is L1 + 1.
    weg(ort(friedrich,kronen), ort(uni)).
    weg(ort(krieg,kronen), ort(krieg,keppler)). findeWeg(X, Y) :-
    weg(ort(krieg,keppler), ort(uni)).            bagof(Weg1, wegsuche(X, Y, Weg1), Wege),
                                                  write(Wege).
     findeWeg(X, Y) :-
                   bagof(Weg1, wegsuche(X, Y, Weg1), Wege),
                                                  laengeDesKuerzestenWegs(Wege, Laenge),
                                                  nl, nl,
                                                  write('Der kürzeste Weg ist '),
                                                  write(Laenge), write(' Stationen lang.'),
                                                  nl.
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Hi.

    Probier's mal hiermit:
    Code :
    1
    2
    
    laengeDesKuerzestenWegs([[L | _]], L).
    laengeDesKuerzestenWegs([[L | _] | R], Laenge) :- laengeDesKuerzestenWegs(R, LR), min(L, LR, Laenge).
    Das Prädikat min/3 ist einfach, das lass ich jetzt mal weg.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. Prolog: Problem mit Listen
    Von Pazuzu12 im Forum Sonstige Sprachen
    Antworten: 1
    Letzter Beitrag: 15.11.10, 09:06
  2. Problem bei Prolog. Dateiladen
    Von Mav3ric im Forum Sonstige Sprachen
    Antworten: 1
    Letzter Beitrag: 19.03.10, 13:53
  3. Problem mit Prolog
    Von sabrina21 im Forum Sonstige Sprachen
    Antworten: 19
    Letzter Beitrag: 22.04.09, 20:24
  4. Prolog-Interpreter geschrieben in Prolog
    Von mohi01 im Forum Sonstige Sprachen
    Antworten: 0
    Letzter Beitrag: 13.01.08, 14:51
  5. Prolog Problem
    Von Razorhawk im Forum Sonstige Sprachen
    Antworten: 0
    Letzter Beitrag: 12.06.05, 02:32