Hilfe in Programmiersprache Prolog gesucht

vom 15.06.2011, 13:43 Uhr

Ich bin gerade dabei mir eine kleine Datenbank für die bevorstehende Frauen-Fussball-Weltmeisterschaft zu basteln. Dazu möchte ich Prolog verwenden, um eine weitere Programmiersprache zumindest ansatzweise kennenzulernen. Ich habe dazu bislang eine Gruppe der Weltmeisterschaft angelegt und als Ergebnisse schon einmal Testdaten eingetragen. Meine Daten haben folgende Form:

Code: Alles auswählen
begegnung(spiel(<nameMannschaft1>,<nameMannschaft2>),endstand(<tore1>,<tore2>))

Als einen ersten Schritt möchte ich nun zwei Prädikate schreiben. Das eine soll lediglich eine Liste aller Spiele ausgeben, sodass also nur die beiden am dem Spiel teilnehmenden Mannschaften gespeichert und gegebenenfalls ausgegeben wird. Das andere Prädikat soll dafür sorgen, dass zu einer Mannschaft die in einem Spiel erreichten Punkte zurück gegeben werden. Dazu habe ich mir folgende Schreibweise überlegt:
Code: Alles auswählen
punkteProSpiel(A,spiel(A,B),P)

Hier soll A eine Mannschaft sein, für die die Punkte P in der Partie A gegen B geliefert werden. Bei dem ersten Prädikat habe ich schon einen konkreten Lösungsansatz gefunden. Jedoch liegt mein Problem darin, dass ich nicht genau weiß wie ich das Ergebnis in einer Liste speichern soll. Bei dem zweiten Prädikat hänge ich derzeit noch etwas in der Luft und weiß nicht so genau ich am besten anfangen soll.

Kennt sich eventuell jemand etwas besser mit Prolog aus und kann mir hierbei etwas auf die Sprünge helfen? Ich hab leider noch nicht viel Erfahrung mit dieser Sprache und tue mir dann hier und da teilweise noch sehr schwer. Aber ich hoffe, dass sich dies mit der Zeit dann auch wieder gibt.

» BrilleWilli » Beiträge: 1810 » Talkpoints: 14,07 » Auszeichnung für 1000 Beiträge



Also generell kann ich dir von Prolog als Programmiersprache nur abraten. Es ist langsam, es ist alt, es ist unübersichtlich, es ist in seinen Möglichkeiten sehr begrenzt und die Syntax finde ich auch grauenhaft. Kennst du dich ein wenig mit Listen in Prolog aus? Außerdem verstehe ich nicht, weshalb du das Ergebnis überhaupt in einer Liste speichern willst. (Lass dich aber von mir nicht verunsichern, so gut kenne ich mich auch nicht aus mit Prolog ) :D

» rumkugeln » Beiträge: 146 » Talkpoints: 0,11 » Auszeichnung für 100 Beiträge


rumkugeln hat geschrieben:Also generell kann ich dir von Prolog als Programmiersprache nur abraten. Es ist langsam, es ist alt, es ist unübersichtlich, es ist in seinen Möglichkeiten sehr begrenzt und die Syntax finde ich auch grauenhaft. Kennst du dich ein wenig mit Listen in Prolog aus? Außerdem verstehe ich nicht, weshalb du das Ergebnis überhaupt in einer Liste speichern willst. (Lass dich aber von mir nicht verunsichern, so gut kenne ich mich auch nicht aus mit Prolog ) :D


Ich weiß, dass es sicherlich bessere Alternativen geben wird, aber ich möchte es zumindest einmal versuchen und das angefangene Projekt nun zumindest soweit weiter entwickeln, dass ein paar Grundbausteine wirklich funktionieren. Die Ergebnisse will ich ja auch gar nicht in einer Liste speichern. In die Liste sollen lediglich die Begegnungen, also jeweils die zwei Mannschaften, die an der Begegnung teilgenommen haben.

» BrilleWilli » Beiträge: 1810 » Talkpoints: 14,07 » Auszeichnung für 1000 Beiträge



Meiner Meinung nach macht es gar keinen Sinn, wenn du die beiden Mannschaften, die an einem Spiel teilgenommen haben in einer Liste speicherst und diese dann dem Prädikat übergibst. Das ist doch viel zu aufwendig, wo es sich doch immer nur um zwei Mannschaften handelt. Probiere es doch einmal die beiden Mannschaften einzeln, als festgesetzte Werte, dem Prädikat zu übergeben. Ich hoffe dies ist dir zumindest ein Denkanstoß.

» rumkugeln » Beiträge: 146 » Talkpoints: 0,11 » Auszeichnung für 100 Beiträge



Der Sinn liegt einfach daran, dass du dann eine Liste mit allen Paarungen bekommst. Dann sieht man eben wer gegen wen spielen wird oder eventuell dann schon gespielt hat. Mein Problem liegt auch weniger darin, dass ich die Mannschaften nicht bekomme, sondern darin, dass ich nicht weiß oder nicht verstehe wie ich mit der Liste arbeiten kann. Das Aufrufen der Mannschaften habe ich, zumindest so wie ich das sehe, bereits richtig geschrieben.

» BrilleWilli » Beiträge: 1810 » Talkpoints: 14,07 » Auszeichnung für 1000 Beiträge


Ehrlich gesagt kenne ich mich mit Listen auch nicht gut aus und daher würde ich in jedem Fall versuchen sie zu vermeiden. Ich weiß nicht wie weit du mit deinem Wissen über Listen in Prolog bist, aber weißt du schon das Listen in Prolog immer aus Listenkopf und Listen Rumpf bestehen? Du kannst Listen also recht leicht ergänzen, indem du einer Liste vorne einfach etwas ranhängst. Eine genaue Erklärung zu Listen in Prolog findest du hier

» rumkugeln » Beiträge: 146 » Talkpoints: 0,11 » Auszeichnung für 100 Beiträge


Ähnliche Themen

Weitere interessante Themen

^