FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Praktische Informatik

Nach der P1 Klausur . . .

Nach der P1 Klausur . . . 2004-02-15 13:46
steve
Wie war bei euch die Klausur?

Re: Nach der P1 Klausur . . . 2004-02-15 14:33
Anonymer User
mega schwer… total blöd..

Re: Nach der P1 Klausur . . . 2004-02-15 15:02
Anonymer User
Ich fand die Klausur ebenfalls nicht einfach ,trotzdem habe ich ein besseres Gefühl ,als nach der Matheklausur.

Re: Nach der P1 Klausur . . . 2004-02-15 15:14
korelstar
War eigentich okay. Aber ganz so ohne Debugging echt unangenehm. Sind bestimmt viele Fehler drin, die ich auf dem Papier nicht gesehen habe, da die Zeit wirklich sehr knapp bemessen war. Bin zum Glück trotzdem fertig geworden.

Habt ihr im Prolog-Teil auch so oft findall/3 benutzt?

Und bei der letzten Scheme-Aufgabe (wo Funktionen höherer Ordnung benutzt werden sollen): Bei a) habe ich mir echt was aus den Fingern gesaugt, weil man das eigentlich total easy ohne Funktion höherer Ordnung mit assoc machen konnte. Naja, mal sehen, was raus kommt…

Hat jemand gehört wie lange die vorraussichtlich zum Korrigieren brauchen?


Passend zum Thema: Aus dem Heise-Forum:

Warum mit Java und nicht mit Lisp

Weil ich programmiere in "Lisp" nicht klingt. Was ist das für ein
blöder Name? Klingt wie: "Ich male Wattebäusche rosa an". Uncool. Das
will doch keiner.

Und bei Konferenzen, wenn da über Lisp gesprochen wird, spuckt doch
jeder nen Liter Wasser. Und die mit dem Zungenpiersing sagen lieber
gar nichts. Daran scheitert Lisp schon in der Vorstandsetage.

Dagegen:

"Wir machen ein Projekt in Java".
"Das ist doch Kaffee"
"Ja da gibts auch eine Insel"
"Da war ich schon mal, ich habe ein Motorboot"
"Wie schön, ich habe da eine Yacht"
"Eine Yacht passt nicht in den Hafen meiner Villa"
"Ich fliege immer mit dem eigenen Jet hin"
"Meine Freundin muß beim Fliegen kotzen"
"Meine beim Blasen"
"Machen wir es also in Java"
"Deal"

Re: Nach der P1 Klausur . . . 2004-02-15 15:57
mole
Die Klausur fand ich auch recht schwer, besonders der Prolog Teil. Scheme fand ich ganz in Ordnung. Aber liegt auch daran, dass mir prolog nicht so sehr liegt.

Habt ihr im Prolog-Teil auch so oft findall/3 benutzt?

jo, habe ich. puhh dachte schon, ich waer der einzige…

btw: geiles zitat aus dem heise forum


Re: Nach der P1 Klausur . . . 2004-02-15 15:59
Anonymer User
und kann nich mal wer die aufgaben so hier her schreiben so ugnefähr???

Re: Nach der P1 Klausur . . . 2004-02-15 16:00
Tron
Ich kann mich dem Anonymen User

Ich fand die Klausur ebenfalls nicht einfach ,trotzdem habe ich ein besseres Gefühl ,als nach der Matheklausur.

bezüglich der Klausur nur anschließen … dem Zitat das korelstar gepostet hat, noch umso mehr :bounce:

Re: Nach der P1 Klausur . . . 2004-02-15 17:10
Joker
Die Klausur war doch schon ziemlich anspruchsvoll, bin aber trotzdem relativ gut durchgekommen. Im Prolog-Teil habe ich findall ebenfalls ständig benutzt, bei Scheme war assoc ganz nett.
So, jetzt sind erstmal Ferien. Prost! [img]http://www.fb18.de/gfx/22.gif[/img]

Re: Nach der P1 Klausur . . . 2004-02-15 17:59
Anonymer User
boa die klausur war echt nicht ohne, aber ich denke das ich es noch geschafft habe :)

Re: Nach der P1 Klausur . . . 2004-02-15 18:09
Anonymer User
Kann jemand denn mal schreiben, was drankam? Thx and greets!

Re: Nach der P1 Klausur . . . 2004-02-15 20:38
Anonymer User
Ich habe eine Frage an euch .Kann mir jemand sagen ,wie oft ihr "findall" in der Klausur benutzt habt? Ich dachte "findall" konnte man nur in der einen Aufgabe benutzen , wo er die Heimspiele der Mannschaft die mit mehr als 3 Toren Unterschied verloren hat, haben wollte ,oder?

Re: Nach der P1 Klausur . . . 2004-02-15 21:04
korelstar
Och, häufiger. Da war doch z.B. die Anzahl mehrmals gefragt (u.a. bei dem Punkte berechnen). Da habe ich immer findall gemacht und die Länge der resultierenden Liste berechnet. Mir ist da keine andere Möglichkeit eingefallen das zu machen.

Re: Nach der P1 Klausur . . . 2004-02-15 21:28
Anonymer User
Hätte man das mit dem Berechnen der Punkte nicht auch mit
Punkte(A,B,0) :- ergebnis(A,B,_,_,Y,Z), Y<X.
machen können?
A steht für Punkte ,B weiß ich nicht mehr ,wofür es steht ,Y für die Tore der Heimmannschaft und Z für die Gastmannschaft.Nun muss man es noch für Unentschieden und Sieg machen und das dann auch für Auswärtsspiele.
Man hört sich das kompliziert an .Hätte man das aber nicht auch so machen können?

Re: Nach der P1 Klausur . . . 2004-02-15 21:37
VideoSven
Also ich war von der Klausur sehr positiv ueberrascht (nicht dass ich was schlechtes von den profs denke): Sie war der probeklausur sehr aehnlich, und mit skript sehr gut zu loesen.
hmmm ich bekomme sie wohl nicht mehr ganz auf die reihe, koennt ihr mir helfen?
__ Unifizieren:
2 true not(not(False))
2 A [B, C,[D]] a [K|R] (kein plan)
2


__Es gibt eine datenbank mit fakten
spiel(Spieltag,MannschaftHeim,MannschaftGast,PunkteHeim,PunkteGast,HalbzeitPunkteHeim,HalbzeitPunkteGast).

Stellen Sie an die datenbasis folgende Anfragen:

Ann welchen Spieltagen hat Mannchaft blafasel zuhause verloren?

An welchen Spieltagen haben sie mit mindestens 3 toren ruckstand verloren,

An welchen tagen hat mannschaft blafasel in der halbzeit nicht gefuehrt, aber trotzdem gewonnen?

__Pradikate schreiben

punkte_am_tag(tag,mannschaft,PUNKTE).

punkte_complett(mannschaft,PUNKTE).

// btw: alles was ich auslasse habe ich durch mein 'memmory leak' verloren :) mtg rulez
// die anzahl der punkte fuer die aufgaben weiss ich auch nicht mehr…

__Textfragen:
Bewerten Sie folgende Aussagen mit Wahr oder Falsch. Begruenden Sie Ihre Antwort.
Jedes rekursives Praedikat ruft sich selbst auf // oder so aehnlich :)
Baumrekursion kann nicht endrekursiv sein.


Dann kam genausoviel scheme:
12? Wozu evaluieren folgende ausdruecke:

1 (* 3 (- 6 5)) // hier weiss ichs echt nicht :)
1 '(* 8 8)

// okay - scheme konnte ich mir wohl noch schlechter merken…

Waere echt interessant, wenn ihr das vervollstaendigen koenntet - was ist bei euch noch haengen geblieben - was habt ihr euch gemerkt?




Re: Nach der P1 Klausur . . . 2004-02-15 22:19
korelstar
Also ich kann mich leider an noch weniger Aufgaben erinnern. Irgendwie bin ich durch diese Klausur durchgerast und habe da gewisse Teile des Gehirns ausgeschaltet um andere Teile, die mir beim Lösen der Aufgaben helfen könnten, mit mehr Energie zu versorgen. Oder so ähnlich. [img]http://www.fb18.de/gfx/22.gif[/img]

Naja, um nochmal auf das Zählprobleme mit den Punkten zurückzukommen. Bei dem was du da angibst, anonymer User, werden ja nur alle Möglichkeiten der Reihe nach ausgegeben und man muss immer mit ; nach weiteren fragen. Um aber wirklich eine Zahl als Ergebnis zu erhalten, ist es IMHO nötig findall/3 zu benutzen und dann mittels length/2 die Länge der Ergebnis-Liste zu berechnen.

Ach, hier Teile von Aufgabe 5 aus Scheme-Teil:

Man stelle sich ein Schwimmbad vor. Ein verrücktes Schwimmbad, das Scheme-Software will [img]http://www.fb18.de/gfx/10.gif[/img]. Die Preise sind in einer Tabelle aus dotted-pairs gespeichert:

(define *preisliste-2003* ((erwachsener . 3) (student . 2) (rentner . 1) (kind . 1) ...))
a) Funktion basteln, die zu einem Menschen den Eintrittspreis raussucht. Also (preis-von 'Rentner) => 1.
b) vergessen
c) Eine Familie will ins Schwimmbad: ((erwachsener) (erwachsener) (kind) (kind) (rentner))
Es soll der Gesamtpreis anhand dieser Liste berechnet werden.
(preis xs) => 9

Die Werte stimmen natürlich nicht mit der Klausur überein. Alles ausgedacht. Aber es geht ja ums Prinzip.

Re: Nach der P1 Klausur . . . 2004-02-15 22:31
Dennis-
Ergänzungen…
————————–
__Prolog:
schreiben sie ein Prädikat, dass die Summe aller Element einer Liste bildet sum/2
sum([1,2,3],X) => X=6

verwenden sie sum um zu errechnen, wieviele Punkte der Verein marburg mit dem spieler sdfhjsf isngesamt erreicht hat.
————————–
schreiben sie eine Prädikat tabelle(X), welches die Tabelle sortiert (nur nach Punkten!) als eine Liste mit unterlisten als Elemente wiedergibt.
Verwenden sie dafür sort/2 und reverse/2, die sie nicht selbst implementieren müssen!
————————–
__Text-Fragen:
Jede Klausel eines rekursiven Prädikats ruft sicht selbst auf (Falsch? Die Terminierungs-Klausel ruft sich nicht auf)

Eine baumrekursion kann nicht endrekursiv programmiert werden (Falsch? Gegenbeispiel Fibonacci im Script)
————————–
__Scheme:

Gegeben ist eine Tabelle von Eintrittspreisen die aus Dottet-Pairs besteht

(define *Eintrittspreise*
'((Rentner . 2)
(Student . 1)
(Kleinkind-unter-2 . 0)
(Erwachsener . 5)))

schreiben sie eine Funktion 'preis_von_person' die den Eintrittspreis einer einzelnen Person ermittelt. Bsp:
> (preis_von_person 'Rentner)
2
————————–
schreiben sie eine Funktion, die den günstigsten Eintrittspreis ermittelt (nicht nur den Preis, sondern das Paar, in dem der cdr am kleinsten ist!)
> (billigster_eintritt *Eintrittspreise*)
(Kleinkind-unter-2 . 0)
————————–
schreiben sie eine Funktion, die von einer Gruppe (Liste) von Personen einen gesamt-Eintrittspreis berechnet. Bsp:
> (preis_von_gruppe '(Rentner Erwachsener, Kleinkind-unter-2, Student))


bitte korrigiert was euch einfällt :)

Re: Nach der P1 Klausur . . . 2004-02-15 22:42
VideoSven
__Text-Fragen:
Jede Klausel eines rekursiven Prädikats ruft sicht selbst auf (Falsch? Die Terminierungs-Klausel ruft sich nicht auf)

ist das echt so? dumm gelaufen - ich dachte die terminierungsklausel waere evtl. keine klausel….

Re: Nach der P1 Klausur . . . 2004-02-16 00:10
Anonymer User
Eine baumrekursion kann nicht endrekursiv programmiert werden (Falsch? Gegenbeispiel Fibonacci im Script)

stimmt das wirklich?Bei einer endrekursion erfolgt die Berechnung nur beim rekursiven abstieg , kann das bei einer baumrekursion nicht auch der fall sein?

Re: Nach der P1 Klausur . . . 2004-02-16 10:47
Spaceman
Eine baumrekursion kann nicht endrekursiv programmiert werden (Falsch? Gegenbeispiel Fibonacci im Script)

Also so ganz sicher bin ich mir auch nicht, aber meiner Meinung nach ist eine Baumrekursion niemals endrekursiv.
Definition aus Skript:
Rekursive Funktionen, bei denen das Ergebnis des rekursiven Abstiegs nicht mehr mit anderen Termen verknüpft werden muss, heißen endrekursiv.

Aber bei Baumrekursiv muss doch das Ergebnis des rekursiven Abstiegs noch mit dem Ergebnis eines anderen rekursiven Abstiegs Verknüpft werden!? So hab ich zumindest Argumentiert.

Ist gibt zwar eine endrekursive Definition der Fibonacci-Zahlen im Script (s. 181), aber dass ist meiner Meinung nach keine Baumrekursion mehr sondern linear:
Slide247:[…] Diese Formulierung ist endrekursiv und der Prozeß linear in n.

Re: Nach der P1 Klausur . . . 2004-02-16 13:29
Anonymer User
Aber das war eine Prologaufgabe mit der Endrekursion und ich glaube ,dass man da anders agrumentieren muss.
Ich glaube ,wenn es nicht geht ,dann aus fo,lgendem Grund:
Bei einer endrekursion erfolgt die Berechnung nur beim rekursiven abstieg und bei einer Baumrekuursion beim rekursiben aufstieg.
Beachtet wir sind in Prolog

Re: Nach der P1 Klausur . . . 2004-02-16 14:41
Spaceman
Beachtet wir sind in Prolog

Richtig aber die Art der Rekursion hat doch nichts mit der Programmiersprache zu tun! Die Definition für Baum und Endrekursion steht nun einmal im Skript für Scheme, aber das bedeutet ja nicht, dass diese Definition keine Bedeutung in Prolog hat.

Bei einer endrekursion erfolgt die Berechnung nur beim rekursiven abstieg und bei einer Baumrekuursion beim rekursiben aufstieg.

Richtig genau das meinte ich doch. Die Berechnung muss ja im rekursiven Aufstieg vollzogen werden, da du ja noch Werte aus einer anderen "Rekursionabzweigung" benötigst!
Hab nur versucht mich bei meiner Erklärung bisschen näher an die Definition zu halten.

Re: Nach der P1 Klausur . . . 2004-02-16 18:21
Joker
Ergänzungen zum Scheme-Teil
===============================

Vorgezogene Auswertung:
Programmbeispiel geben, bei dem sie günstiger ist als verzögerte Auswertung + Begründung

let/let*:
Unterschied erklären anhand eines in der Aufgabenstellung gegebenen Beispiels

Gültigkeitsbereich von Variablen:
Eine Variable x wurde mehrmals innerhalb eines Programms von verschiedenen Ausdrücken benutzt. Ein exemplarisches Beispiel:

(define x 3)

(define (blah x) (let ((x 3)) (* x 2)))

(* x 4)

Man sollte jeweils den Gültigkeitsbereich angeben und sagen, wo es zu Überschattungen kommt.

Specialform-Operators cond, if:
Was ist an der Auswertung dieser Ausdrücke anders? Warum ist dies notwendig? Zwei weitere nennen.


Ergänzungen zum Prolog-Teil
===============================

Textfrage:
Werden komplexe Ausdrücke immer von links nach rechts ausgewertet?

Re: Nach der P1 Klausur . . . 2004-02-16 22:42
Anonymer User
Mir dummen Studenten ist es erst nach der Klausur eingefallen ,dass Baumrekursion nur beim aufstieg erfolgt , ich kam aus irgendeinem rund darauf ,dass es bei einer Baumrekursion beies geht ,also aufstieg und abstieg ,so ein shit.

Re: Nach der P1 Klausur . . . 2004-03-11 11:37
Anonymer User
sinngemaesses Zitat von Menzel:
Ich habe wegen der Klausurbauchschmerzen, so eine leichte Klausur hattten wir seit Jahren nicht mehr.

Re: Nach der P1 Klausur . . . 2004-03-11 14:38
MoKrates
Also, wenn ich recht informiert bin (und das duerfte bei Rekursionen eigentlich der Fall sein), gibt es bei jeder Rekursionsform einen Abstieg und einen Aufstieg. Ausschliesslich bei Endrekursionen ist es moeglich, diese in eine Iteration zu uebersetzen, und damit dem Wiederaufstieg quasi wegzulassen (weil unnoetig).

Baumrekursion heisst einfach nur, dass eine Funktion sich selbst mehrmals aufruft, einer von diesen Aufrufen dabei kann gern ein einrekursiver sein, etcpp. Was ich sagen will, ist, dass sich die verschiedenen Arten der Rekursion beliebig kombinieren lassen…

MoKrates