Suchergebnisse

Suchergebnisse 21-26 von insgesamt 26.

  • Abruch nach erfüllten OAW Trippeln

    Siracusa - - Logische Sprachen

    Beitrag

    Eine Verzweigung kannst du realisieren, indem du für eine Funktion verschiedene Alternativen angibst. Diese werden nacheinander wie if-Bedingungen abgearbeitet. Schlägt eine fehl, wird zur nächsten gegangen. Beispiel: [code:1] % if-Zweig pruefe(O, A, W):- fire(O, A, W, nein), write('Nö, geht nicht!'). % else-Zweig pruefe(_, _, _):- write('Schon so gut wie entlassen ...'). [/code:1] Ausgaben: [code:1] 1 ?- pruefe(mitarbeiter, zustand, schwanger). Nö, geht nicht! Yes 2 ?- pruefe(mitarbeiter, zusta…

  • Abruch nach erfüllten OAW Trippeln

    Siracusa - - Logische Sprachen

    Beitrag

    Hi, kannst du bitte deine Fragestellung präzisieren, man kann ja nur erraten, was du wissen willst. Was soll bspw. der "Z teil" sein? Ansonsten eine allgemeine Sache: Grundsätzlich werden Parameter einer Funktion groß geschrieben, wenn sie variabel sein sollen. Nur spezielle (definierte) Parameter werden klein geschrieben, nämlich dann, wenn sie Teil eines Fakts sind: [code:1] frisst(Tier, Futter) :- ... // aber frisst(loewe, gazelle). [/code:1] Meiner Vermutung nach willst du eine Funktion fire…

  • Zahlenlogical

    Siracusa - - Logische Sprachen

    Beitrag

    Hi tailor, entschuldige bitte, daß ich jetzt erst antworte. Zwar hatte ich deinen Beitrag vor zwei Tagen schon gelesen, habe aber studienbedingt erst jetzt die Zeit gefunden eine Antwort zu schreiben. :oops: Deine Aufgabe finde ich als Einstiegsaufgabe recht schwierig und eine schnelle Lösung ist nicht einfach zu implementieren. Alle möglichen Zahlenkombinationen durchzutesten fällt bei ca. 7*10^23 Möglichkeiten wohl weg, bleibt bspw. ein Bachtracking-Algorithmus. Du könntest dir eine Liste mit …

  • Hallo, GNU-Prolog bietet die Möglichkeit Warnungen mittels Parametern --no-???-warn in der Kommandozeile zu unterdrücken. Bei SWI-Prolog hab ich nichts dergleichen gefunden. Auf das Laufzeitverhalten eines Programms dürften sich überflüssige Variablen nicht merklich auswirken. Aber ich behaupte jetzt mal, das Singleton Variable-Warnungen immer aufgelöst werden können. Viele Grüße, Siracusa

  • Hi, als Lösungsansatz würde ich folgenden Algorithmus empfehlen. Dies ist zwar nicht das effizienteste Vorgehen, aber relativ einfach umzusetzen. [code:1] countAllElements([]). countAllElements(List) :- % Gibt das erste Element der Liste List in Head zurück head(List, Head), % Zählt das Element Head in der Liste List und gibt es in Number zurück count(Head, List, Number), % Löscht das Element Head in der Liste List und gibt die modifizierte % Liste in NewList zurück deleteOne(Head, List, NewList…

  • Hi, wenn ich dich richtig verstanden habe, und du nur zwei unabhängige Zähler in einer Regel um 1 erhöhen willst, sollte dies funktionieren (ungetestet): [code:1] succ(N, SuccN) :- SuccN is N + 1. inc(X, Y, SuccX, SuccY) :- succ(X, SuccX), succ(Y, SuccY). [/code:1] Die Regel inc nimmt die beiden Zähler X und Y entgegen und gibt deren Nachfolger SuccX und SuccY zurück. Viele Grüße, Siracusa