Klausurlösungen sammeln

Moderator: Moderatoren

phil
Beiträge: 3
Registriert: So 28. Feb 2010, 23:23

Re: Klausurlösungen sammeln

Beitrag von phil » Do 11. Mär 2010, 16:52

hm kann sein das ichs falsch sehe aber:

ws07_A aufgabe 6 c

die for schleife wird dir so nichts bringen wenn du sie bei i=0 starten lässt.
im ersten durchlauf wird dann res= res*i also res=1*0 gerechnet.
danach ist res dann 0 und wird sich durch erhöhen von i auch nicht mehr ändern.
also entweder i=1 setzen oder aber das ganze als while schleife schreiben
habs so gemacht:

int fak(int n)
{int res=1;
while(n>=1)
{
res*=n;
n--;
}
return res;
}

kommt sich im endeffekt bei nem i=1 aufs gleiche raus ;)

phil
Beiträge: 3
Registriert: So 28. Feb 2010, 23:23

Re: Klausurlösungen sammeln

Beitrag von phil » Do 11. Mär 2010, 17:04

ebenfalls in ws07_a
aufgabe 8 d
nach deiner if abfrage müsstest du noch
item->last = NULL
setzen da es ja an erster stelle ist.

bob10
Beiträge: 414
Registriert: So 1. Feb 2009, 19:34

Re: Klausurlösungen sammeln

Beitrag von bob10 » Do 11. Mär 2010, 18:26

elly hat geschrieben:vielleicht wird in diesem falle der stack quasi zweckentfremdet und nicht mehr per push und pop angesprochen ,sondern per eindeutiger addressierung wie man es auf den folien sieht?
Das ist richtig. Die Adressierung passiert intern mit dem EBP und einem Offset, um auf lokale Variablen in einer Funktion zuzugreifen.

sat1911
Beiträge: 24
Registriert: Do 15. Okt 2009, 21:52
Wohnort: Aachen
Kontaktdaten:

Re: Klausurlösungen sammeln

Beitrag von sat1911 » Do 11. Mär 2010, 18:38

WS07_B aufgabe 4)
sicher dass das b in zeile 9 über das argument (zeile 6) "deklariert" wurde ?
ich wage es zeile 11 vorzuschlagen :)
Dieser Post wurde vom user 'sat1911' 1545 mal geändert.
Zuletzt geändert: morgen um 13:37 Uhr.

Manuelito
Administrator
Beiträge: 157
Registriert: Mi 3. Mär 2010, 15:11

Re: Klausurlösungen sammeln

Beitrag von Manuelito » Do 11. Mär 2010, 20:45

Hey,

Da ich keine Lust mehr habe, die Sachen neu einzuscannen, kommentier ich es hier kurz:

WS07_A Aufg. 6c
Das ist natürlich richtig, *= 0 beim ersten Schleifendurchlauf würde den Algorithmas relativ wirksam zerstören.

WS07_A Aufg. 8d
Da ich davon ausgegangen bin, dass die beiden Zeiger von item schon bei der Erstellung mit 0 initialisiert werden, habe ich das hier weggelassen/vergessen. Aber du hast Recht, sicherer ist es, man schreibt das noch da rein.

WS07_B Aufg. 4
Bin mir ziemlich sicher, dass der hier das b aus Zeile 6 nimmt.
Wenn du zum Beispiel folgende Funktion schreibst:
int a(int b) {
return b;}
wird wohl kein Compiler auf die Idee kommen, irgendwo anders nach einem b zu suchen, er wird das Übergebene wieder zurückgeben. Und nicht anders verstehe ich auch die Aufgabe. Außerdem ist in Zeile 11 keine Deklaration sondern nur die Definition. Deklariert wird die Funktion b() (die in keinerlei Zusammenhang zu der Variable b steht, sie teilen sich nur unglücklicherweise den Namen) in Zeile 2.
Anders sieht es in Zeile 22 aus, da in der Funktion c nirgendwo eine Variable b deklariert wird (und es auch keine globale Variable b gibt). Hier fehlen jedoch für mein Verständnis die Klammern () hinter dem b, damit der Compiler die Funktion b zu Rate zieht und nicht irgendwo nach einer Variablen b sucht.

Edit: Ich habe gerade mal den Code so abgetippt und mit ein bisschen Leben gefüllt. Unter anderem habe ich in Zeile 22 "i = b;" geschrieben (also ohne Klammern hinter dem b). Da der Compiler keine Fehlermeldung gibt, er würde b nicht finden, scheint er sich doch der Funktion zu bedienen. Weiter habe ich das aber jetzt nicht ausgebaut, ich habe also nicht überprüft, ob wirklich alle Werte so benutzt werden, wie ich es vorgeschlagen hab, dazu fehlt mir gerade die Motivation.

sat1911
Beiträge: 24
Registriert: Do 15. Okt 2009, 21:52
Wohnort: Aachen
Kontaktdaten:

Re: Klausurlösungen sammeln

Beitrag von sat1911 » Do 11. Mär 2010, 22:52

ok danke für die erklärung und der dahintersteckenden arbeit ^^
Dieser Post wurde vom user 'sat1911' 1545 mal geändert.
Zuletzt geändert: morgen um 13:37 Uhr.

Benutzeravatar
beafraid88
Beiträge: 99
Registriert: Sa 25. Okt 2008, 17:34
Wohnort: Aachen/Düsseldorf/Mönchengladbach

Re: Klausurlösungen sammeln

Beitrag von beafraid88 » Di 16. Mär 2010, 20:01

besten dank D
auch wenns "nur" inoffizielle lösungen sind scheints zum größten teil richtig zu sein ^

Antworten

Zurück zu „Info I“