peano_int(s(PeanoZahl),Zahl):-peano_int(PeanoZahl,Z),Z =:= Zahl - 1
kann mir wer sagen was daran falsch ist? wie soll ich sonst Zahl um ein kleiner machen ich probier seit gestern die ganze Zeit da irgendwas hinzukriegen was einfach nie gehen will.
achso ja auch wenn ich die Z=:=Zahl-1,peano_int… schreibe gehts nicht
Also entweder bin ich blind oder es gibt keinen Fehler…
Hast du an den Punkt am Ende beachtet ?
peano_int(s(PeanoZahl),Zahl):-peano_int(PeanoZahl,Z),Z =:= Zahl - 1 [b].[/b]
Edit :
Und wie sieht denn deine Abbruchbedingung aus ? [img]
http://www.fb18.de/gfx/25.gif[/img]
peano_int(s(PeanoZahl),Zahl):-peano_int(PeanoZahl,Z),Z =:= Zahl - 1 [b].[/b]
das "Zeichen" =:= dient dem Vergleich von Ausdrücken. Was du machen willst ist vermutlich eher eine Zuweisung.
Merkwürdig, in meiner alten Aufgabe zu den Peanozahlen hab ichs genauso gemacht…
Aber du hast recht, ne Zuweisung wird nicht mit =:= gemacht. Prolog ist einfach schon zu lange her [img]
http://www.fb18.de/gfx/28.gif[/img]
Versuchs mal mit "is", aber wieso überhaupt -1 ?
-1 weil er ja die Zahl kleiner machen soll wen ich eine s() von einer peanozahl wegnehme damit ich die hat 1:1 übersetzen kann.
davor steht natürlich peano_int(0,0).
-1 weil er ja die Zahl kleiner machen soll wen ich eine s() von einer peanozahl wegnehme damit ich die hat 1:1 übersetzen kann.
davor steht natürlich peano_int(0,0).
klingt logisch
einfach mal das andere Problem lösen, und schauen was dann passiert würde ich sagen
lol ey
ich hab das jetzt mal dank eurer hilfe so umgebastelt und dann halt mit hilfesystem gemacht und was passiert
peano_int(0,0).
peano_int(s(PeanoZahl),Z):-peano_int(PeanoZahl,Z),Z is Z+1.
Hinweis: Ihre Lösung ist richtig. Gratuliere !!!
also probier ich mal aus an
8 ?- peano_int(s(0),1).
No
Gut das die Lösung angeblich richtig ist. Is mein Prolog vieleicht falsch?
tja, der fehler im hilfesystem ist mir auch schon aufgefallen
Z is Z+1.
Geht das wirklich so? Muss es nicht heissen Y ist Z+1 und dann verwendet man das Y? Wie soll sonst zwischen dem höheren und dem niedrigeren Z unterschieden werden? Ist aber nur ne Vermutung, P1 ist schon zu lange her.
Deine Vermutung ist richtig Fred…
Z is Z+1.
8 ?- peano_int(s(0),1).
No
Hattest du vorhin nicht noch Z - 1 da stehen ? Warum hast daraus ein Z + 1 gemacht ?
weil das hilfesystem nen fehler hat…
bei mir klappt jetzt zumindest die zahl in peano umwandlung, man sollte auf die reihenfolge der befehle achten
Z is Z+1.
8 ?- peano_int(s(0),1).
No
Hattest du vorhin nicht noch Z - 1 da stehen ? Warum hast daraus ein Z + 1 gemacht ?
Vielleicht weil er jetzt sinnvollerweise die beiden verschiedenen Z vertauscht hat. (Wenn Z2 = Z1 - 1 ist, dann ist Z1 = Z2 + 1 ) [img]
http://www.fb18.de/gfx/23.gif[/img]
Z is Z+1.
8 ?- peano_int(s(0),1).
No
Hattest du vorhin nicht noch Z - 1 da stehen ? Warum hast daraus ein Z + 1 gemacht ?
Vielleicht weil er jetzt sinnvollerweise die beiden verschiedenen Z vertauscht hat. (Wenn Z2 = Z1 - 1 ist, dann ist Z1 = Z2 + 1 ) [img]http://www.fb18.de/gfx/23.gif[/img]
Aso, dann ist klar… War nicht gerade offensichtlich, weil Z1 und Z2 da ja nur Z heissen [img]
http://www.fb18.de/gfx/28.gif[/img]
Dieser Fehler ist erkannt und behoben.
Teste noch mal das tolle P1-Hilfesystem