Musterlösung 12. Übung AI1

Catcher
Erstie
Erstie
Beiträge: 18
Registriert: 23. Dez 2010 15:14

Musterlösung 12. Übung AI1

Beitrag von Catcher »

Hi Leute,

ist die Musterlösung zur 12. Übung schon irgendwo online? Sie sollte ja bis 18.02. online gestellt sein...

MfG
Catcher

Benutzeravatar
m_stoica
Kernelcompilierer
Kernelcompilierer
Beiträge: 473
Registriert: 5. Dez 2008 20:19
Wohnort: Zuhause

Re: Musterlösung 12. Übung AI1

Beitrag von m_stoica »

Die Lösung für die 4 kann ich dir schon mal geben:

Code: Alles auswählen

Achtung:
Im Konstruktor wir dem PARAMETER z ein Wert zugewiesen,
und NICHT der Objektvariablen, da man sonst
"this.z = x+ y;" hätte schreiben müssen.
z bekommt im Konstruktor also keinen Wert zugewiesen und ist folglich 0.

Nach dem Konstruktoraufruf haben die Objektvariablen also folgende Werte:
x=42
y=23
z=0

Nun Arbeiten wir die Methode m von oben nach unten ab:
v=19
w=19
x=19
v=0
w= 1 - 19 = -18
x = 19 + 23 = 42          //hier wird der LOKALEN Variable x ein Wert zugewiesen und nicht der Objektvariable
y = 42 - 0 = 42
z = 0 - (-18) + 0 = 18

=> Endergebnis:
x=42
y=42
z=18

Bemerkung: Da z bis auf die letzte Zeile von m() 0 ist,
gilt das f die Identität ist (d.h f(x)=x), da ja z/y = 0/y =0 ist


Benutzeravatar
Owyn
BSc Spammer
BSc Spammer
Beiträge: 1012
Registriert: 5. Sep 2005 21:53
Wohnort: Rheingau

Re: Musterlösung 12. Übung AI1

Beitrag von Owyn »

Der Rest der Musterlösung ist jetzt online. Sorry für die Verzögerung!

Gruß,
Christian Heinig
All those who believe in psycho-kinesis, raise my hand.
(Steven Wright)

noname
Gast

Re: Musterlösung 12. Übung AI1

Beitrag von noname »

x = 65 //hier wird der LOKALEN Variable x ein Wert zugewiesen und nicht der Objektvariable
y = 65 -23 = 42


stimmen die beiden Zeilen und wenn ja warum? Ich käme ja auf:
x= 42
y= 42 -0 = 42

Benutzeravatar
Owyn
BSc Spammer
BSc Spammer
Beiträge: 1012
Registriert: 5. Sep 2005 21:53
Wohnort: Rheingau

Re: Musterlösung 12. Übung AI1

Beitrag von Owyn »

noname hat geschrieben:x = 65 //hier wird der LOKALEN Variable x ein Wert zugewiesen und nicht der Objektvariable
y = 65 -23 = 42

stimmen die beiden Zeilen und wenn ja warum? Ich käme ja auf:
x= 42
y= 42 -0 = 42
Und da haben Sie völlig recht! Gut aufgepasst.
Ich habe Michaels Posting oben mal entsprechend geändert.

Vielen Dank für den Hinweis!

Gruß,
Christian Heinig
All those who believe in psycho-kinesis, raise my hand.
(Steven Wright)

l_steinmetz
Gast

Re: Musterlösung 12. Übung AI1

Beitrag von l_steinmetz »

Hallo,

kann mir vielleicht noch jemand erklären was es mit diesem f(irgendwas) auf sich hat? Unabhängig davon, dass die konkrete Zeile 0 wird, wurmt es mich z.B. nicht zu wissen was f(3) ist. Ich müsste das vermutlich aus der Schule wissen, aber das ist alles fürchterlich lange her bei mir. Ich kann mich an solche Dinge leider kaum noch erinnern, da sie in den letzten Jahren keinerlei Relevanz für mich hatten und so nie aufgefrischt wurden.

Ist denn generell in der Klausur viel mathematisches Vorwissen (außer + - * / ;) ) von nöten? :shock:

LG,
Lisa

Benutzeravatar
Owyn
BSc Spammer
BSc Spammer
Beiträge: 1012
Registriert: 5. Sep 2005 21:53
Wohnort: Rheingau

Re: Musterlösung 12. Übung AI1

Beitrag von Owyn »

f(3) ist ein Methodenaufruf. f ist eine Methode bzw. Funktion, die einen int-Wert als Ergebnis zurückgibt ("int f") und beim Aufruf einen int-Parameter erwartet ("(int x)"). Den Ausdruck "f(3)" liefert also den int-Wert, den die Methode f aus dem Wert x == 3 errechnet, in diesem Fall also auch 3.

Eine Methode "int quadrat(int x) { return x*x; }" würde für quadrat(5) entsprechend 25 zurückgeben. "loop(quadrat(3)) move();" hätte also dieselbe Bedeutung wie "loop(9) move();".
Eigentlich sollte das alles aber wirklich längst bekannt sein...

Gruß,
Christian Heinig
All those who believe in psycho-kinesis, raise my hand.
(Steven Wright)

l_steinmetz
Gast

Re: Musterlösung 12. Übung AI1

Beitrag von l_steinmetz »

Danke für die schnelle Antwort.
Ich habe da total in die falsche Richtung gedacht. Klar, sollte das bekannt sein. Ist es auch, wenn man nicht so daneben denkt.

Das kommt davon, wenn man mitten im Code, wenn das f das erste mal auftaucht das Handtuch wirft und deswegen nicht sieht, dass es unten noch eine Methode definiert wird. Mein Kopf hat sich schlagartig mit Kurvendiskussionsgedanken gefüllt ... :oops:

Danke für die Hilfe.

jonnyfd
Gast

Re: Musterlösung 12. Übung AI1

Beitrag von jonnyfd »

Abend,
was ich aber nicht verstehe, ist warum die Operation

z = x+ y;

im Konstruktor nicht ausgeführt wird?
weil auf der rechten Seite keine Parameter aus dem Konstruktor sondern Objektvariablen stehen?
Heisst das, dass im Konstruktor der Objektvariable z keine Werte von anderen Objektvariablen (in diesem fall x+y) zugewiesen werden können? Oder geht das und man mus nur this.z hinschreiben? Und würde dann z=a+z; funktionieren?
sonst alles gechekt :?

mfG
jonny

Antworten

Zurück zu „Archiv“