Klausur Lösung SS 06.09.2007

isot
Erstie
Erstie
Beiträge: 21
Registriert: 25. Dez 2009 13:13

Klausur Lösung SS 06.09.2007

Beitrag von isot » 3. Sep 2010 01:19

wahrscheinlich habt ihr einige klausuren schon gefunden. eine davon ist aber ohne musterlösung.
und zwar die Klausur von 06.09.2007 . ich habe die gelöst und habe gedacht es käme euch vielleicht gelegen, das zu teilen. ich habe mit bluej getestet, es funktioniert. aufgabe 5 habe ich nicht getippt(ist auch nicht schwer) und aufgabe sechs brauchen wir eh nicht, weil darin thema collection behandelt wird.

1) Java-Source-File wird sowohl kompiliert als auch interpretiert. Zum Kompilieren wird das Programm „javac“ verwendet. Zum Abarbeiten des Programm wird dann der Java-Bytecode interpretiert.
Java-Bytecode ist eine idealisierte und standardisierte Variation von Maschinencode.
Diese ist speziell für die Java-Virtual-Machine angepasst.
Die Java-Virtual-Machine ist ein virtuelles Rechnersystem, das auf dem Betriebssystems
des Computers läuft und innerhalb dessen der Java-Byte-Code ausgeführt wird.

2)a) i) Ausgabe: abc
Exception B
ii) Ausgabe: abc
xyz
iii)Ausgabe: Exception A

Bemerkung: In Zeile 16 steht catch (ExcA e) { , er fängt aber auch Exceptions die von ExcA abgeleitet sind.

2b) die methode f(int n) wirft eine Exception vom Typ ExcA. Wenn man in Zeile 16 ExcA durch ExcB ändert, so beschwert sich der Compiler, dass die Exception von der Methode nicht gefangen wird.

3a) b) zu einfach, deshalb kein bock das zu tippen.
c) public static int recSum(int m, int n) {
int sum = 0;
if(m <= n) {

sum = n + recSum(m, n-1);
}
return sum;
}


4) public DList(Object info) {
this.info = info;
next = this;
prev = this;
}

public void insert(Object o) {
DList n = new DList(o);
n.next = this.next;
this.next.prev = n;
this.next = n;
n.prev = this;
}

public Object delete() {
Object ob = next.info;
this.next = next.next;
next.next.prev = this;
return ob;
}

public void print_reverse() {
DList s = this;
while(s.next != this) {
System.out.print(s.info +" ");
s = s.next;
}
System.out.print(prev.info);
System.out.println();
}




Alle Angaben ohne Gewähr.

mrandres
Neuling
Neuling
Beiträge: 8
Registriert: 3. Sep 2010 08:59

Re: Klausur Lösung SS 06.09.2007

Beitrag von mrandres » 3. Sep 2010 09:08

3)c) ist nicht ganz richtig....
die summe von m bis n, wenn m = n ist, ist m und nicht null...

isot
Erstie
Erstie
Beiträge: 21
Registriert: 25. Dez 2009 13:13

Re: Klausur Lösung SS 06.09.2007

Beitrag von isot » 3. Sep 2010 13:30

ja es wird auch keine null erzeugt wenn m = n ist. der code arbeitet richtig. hab mit bluej getestet.

noobie06
Erstie
Erstie
Beiträge: 13
Registriert: 21. Dez 2009 15:54
Kontaktdaten:

Re: Klausur Lösung SS 06.09.2007

Beitrag von noobie06 » 3. Sep 2010 14:56

ich habs noch nich gerechnet aba wenn es falscch komme ich nach offfenbach :twisted: :evil: :twisted:

mrandres
Neuling
Neuling
Beiträge: 8
Registriert: 3. Sep 2010 08:59

Re: Klausur Lösung SS 06.09.2007

Beitrag von mrandres » 6. Sep 2010 12:12

isot hat geschrieben:ja es wird auch keine null erzeugt wenn m = n ist. der code arbeitet richtig. hab mit bluej getestet.
Stimmt, hab mich versehen...Sorry

mrandres
Neuling
Neuling
Beiträge: 8
Registriert: 3. Sep 2010 08:59

Re: Klausur Lösung SS 06.09.2007

Beitrag von mrandres » 6. Sep 2010 12:48

isot hat geschrieben: public Object delete() {
Object ob = next.info;
this.next = next.next;
next.next.prev = this;
return ob;
}
Frage 1: Ist

this.next = next.next;

das gleiche wie

this.next = this.next.next;

Frage 2: Sei A<-->B<-->C eine Liste.
Auf A wird delete ausgeführt. B wird gelöscht.
Mit this.next = next.next; wird C zum Nachfolger von A.
Wird dann mit next.next nicht der Nachfolger von C aufgerufen?

Meine Lösung wäre:

Code: Alles auswählen

public Object delete(){
    Object ob = this.next.info;
    this.next = this.next.next;
    this.next.prev = this;
    return ob;
}

Molt3n
Neuling
Neuling
Beiträge: 3
Registriert: 6. Sep 2010 14:40

Re: Klausur Lösung SS 06.09.2007

Beitrag von Molt3n » 6. Sep 2010 14:48

Ertsmal vielen Dank, dass du deine Lösungen eingestellt hast!
Leider verstehe ich folgende Zeilen in der Methode insert nicht:

public void insert(Object o) {
DList n = new DList(o);
n.next = this.next;
this.next.prev = n; <----a
this.next = n; <----b
n.prev = this;

in Zeile a werden doch die Elemente aktuellen Elemente für next und prev mit n initialisiert. Warum wird dann das aktuelle Elemnt next nochmals mit n initialisiert? Edit: ---> habs schon.. war ein kleiner denkfehler

Edit: komme auf das gleiche wie du mrandres

Danke im vorraus

Gruß
MolT3n

JinRo
Neuling
Neuling
Beiträge: 10
Registriert: 20. Aug 2010 13:39

Re: Klausur Lösung SS 06.09.2007

Beitrag von JinRo » 7. Sep 2010 11:34

mrandes hat geschrieben: Meine Lösung wäre:

Code: Alles auswählen

public Object delete(){
    Object ob = this.next.info;
    this.next = this.next.next;
    this.next.prev = this;
    return ob;
}
ich stimme dem hier zu ...
isot hat geschrieben:
public void print_reverse() {
DList s = this;
while(s.next != this) {
System.out.print(s.info +" ");
s = s.next;
}
System.out.print(prev.info);
System.out.println();
}
lautet die aufgabe nicht, die elemente rückwärts auszugeben?!? also statt s.next jeweils s.prev einfügen...
Zuletzt geändert von JinRo am 7. Sep 2010 11:39, insgesamt 3-mal geändert.

Molt3n
Neuling
Neuling
Beiträge: 3
Registriert: 6. Sep 2010 14:40

Re: Klausur Lösung SS 06.09.2007

Beitrag von Molt3n » 7. Sep 2010 11:35

Hat jemand schon eine Lösung für die Aufgabe 3 der Klausur vom 28.02.2008??
Komme da bei insert nicht weiter.

mrandres
Neuling
Neuling
Beiträge: 8
Registriert: 3. Sep 2010 08:59

Re: Klausur Lösung SS 06.09.2007

Beitrag von mrandres » 7. Sep 2010 14:19

So hier meine Lösung zu 4.d) der Klaussur SS07

Code: Alles auswählen

public void print_reverse(){
    DList current = this;                       
    while(current.prev != this){                       
        System.out.print(current.prev.info + ", ");
        current = current.prev;
    }
    System.out.print(this.info);
    System.out.println();
}
Zuletzt geändert von mrandres am 7. Sep 2010 15:05, insgesamt 1-mal geändert.

mrandres
Neuling
Neuling
Beiträge: 8
Registriert: 3. Sep 2010 08:59

Re: Klausur Lösung SS 06.09.2007

Beitrag von mrandres » 7. Sep 2010 14:56

Hier meine Lösung zu Aufgabe 3. bei Klausur WS07/08...

3.a)

Code: Alles auswählen

public NNList(int z){
    this.z = z;
    this.n1 = null;
    this.n2 = null;
}
3.b)

Code: Alles auswählen

public NNList(int[] z){
    this(z[0]);
    NNList current = this;
    for(int i = 1; i < z.length; i++){
         current.n1 = new NNList(z[i]);
         current = current.n1;
    }
    current = this;
    for(int i = 1; i < z.length - 1; i++){
         current.n2 = current.n1.n1;
         current = current.n1;
    }
}
3.c)

Code: Alles auswählen

public void insert(int i){
    NNList neu = new NNList(i);
    neu.n1 = this.n2;
    neu.n2 = this.n2.n1;
    this.n1.n1 = neu;
    this.n1.n2 = this.n2;
    this.n2 = neu;
}
3.d)

Code: Alles auswählen

public int add_ungerade(){
    int sum = this.z;
    NNList current = this;
    while(current.n2 != null){
        sum += current.n2.z;
        current = current.n2;
    }
    return sum;
}

Antworten

Zurück zu „Archiv“