FB18 - Das Forum für Informatik

fb18.de / Bachelorstudieng / PM Praktische Informatik

Alte SE1-Probeklausuren ???

Alte SE1-Probeklausuren ??? 2009-02-17 12:20
Anonymer User
Moin!

Gibt es eigentlich jedes Jahr neue Testklausuren für SE1 ?
Und wenn ja, weiß jemand wie man an die alten Testklausuren rankommt?
(In die entsprechenden Gruppen im mincommsy kommt man ja nicht rein.)
Wäre sicherlich hilfreich im Hinblick auf die Vorbereitung zur kommenden Klausur!

MfG

Freddy

RE: Alte SE1-Probeklausuren ??? 2009-02-17 12:20
Fred
Gibt es eigentlich jedes Jahr neue Testklausuren für SE1 ?
Soweit ich mich erinnern kann, ist das jedes Jahr dieselbe Testklausur.

RE: Alte SE1-Probeklausuren ??? 2009-02-17 13:11
Anonymer User
Danke Fred!

Dann brauch ich ja nicht mehr weiter danach zu suchen.
Die Fragen zu den alten Klausuren (und insbesondere die Antworten, die ja zu einem Großen Teil von dir verfasst waren - nochmals Danke!) durchzulesen war ja auch schon hinreichend hilfreich!

Eine weiter Frage habe ich noch:
Gibt es eigentlich irgendwo Gedächtnis-Protokolle/Abschiften/Photos etc. der vergangenen SE1 - Klausuren? (Ich weiß, dass es solche in anderen Fachschaften gibt und das diese bisher häufig sehr hilfreich waren.)

MfG
Freddy

RE: Alte SE1-Probeklausuren ??? 2009-02-17 16:16
Julian F.
Im Fachschafts-Wiki gibt es ein kurzes vom letzten Jahr, allgemein ist die Klausur von den Fragestellungen her allerdings wirklich recht nah an der Probeklausur (wie man an dem Protokoll ja auch sieht).

RE: Alte SE1-Probeklausuren ??? 2009-02-17 17:02
Anonymer User
Danke!

Bin ja ein eifriger Aufgaben-Sammler, da ich denke, dass jeder Gedanke den ich Zuhause machen (und nachprüfen) kann, ein Gedanke ist, der mich bei der Klausur nicht mehr ins Stolpern bringen kann.
Insofern sind auch ein paar Aufgaben besser als keine!

Gruß
Freddy

RE: Alte SE1-Probeklausuren ??? 2009-02-18 10:50
Roberto
Danke Fred!

Dann brauch ich ja nicht mehr weiter danach zu suchen.
Die Fragen zu den alten Klausuren (und insbesondere die Antworten, die ja zu einem Großen Teil von dir verfasst waren - nochmals Danke!) durchzulesen war ja auch schon hinreichend hilfreich!

Eine weiter Frage habe ich noch:
Gibt es eigentlich irgendwo Gedächtnis-Protokolle/Abschiften/Photos etc. der vergangenen SE1 - Klausuren? (Ich weiß, dass es solche in anderen Fachschaften gibt und das diese bisher häufig sehr hilfreich waren.)

MfG
Freddy

Hey Leute,

wo befinden sich die Fragen zu den alten Klausuren und die von Fred gegebenen Antworten? :) Danke…

RE: Alte SE1-Probeklausuren ??? 2009-02-18 10:55
Fred
wo befinden sich die Fragen zu den alten Klausuren
In diesem Board, "PM Praktische Informatik", einfach mal in Threads vom letzten Jahr wühlen, z.B. dieser hier.

RE: Alte SE1-Probeklausuren ??? 2009-02-18 10:57
Roberto
Super dankeschön Fred!

RE: Alte SE1-Probeklausuren ??? 2009-02-18 11:00
Roberto
Im Fachschafts-Wiki gibt es ein kurzes vom letzten Jahr, allgemein ist die Klausur von den Fragestellungen her allerdings wirklich recht nah an der Probeklausur (wie man an dem Protokoll ja auch sieht).

Was haltet ihr von folgenden Antworten für das oben genannte Protokoll:

Aufgabe 34: 18

Aufgabe 35: 18

Nächste: Punkt 1 ankreuzen

Nächste: 12

Nächste: 7.5

Nächste: 0

Nächste: Punkt 2 ankreuzen


????? :)

RE: Alte SE1-Probeklausuren ??? 2009-02-18 11:05
Fred
Tipp: Java-Code kann man auf einem Computer ausführen.

Und bei der letzten Aufgabe ist die korrekte Antwort gar nicht dabei, das hat letztes Jahr ein Oliver B. gemerkt, wenn micht nicht alles täuscht.

RE: Alte SE1-Probeklausuren ??? 2009-02-18 11:06
Roberto
Okay…

RE: Alte SE1-Probeklausuren ??? 2009-02-18 16:16
RaG
Bei der Aufgabe
Frage

Berechne den folgenden Ausdruck:

(int)( 13.0 / 3 * 3 )

    * 4
    * 12
    * 13
    * bla
kommt 13 und nicht 12 raus. Erst wird die Fließkommadivision dann -multiplikation ausgeführt und dann der Typecast von 13.0 auf 13 durchgeführt.

Bei der folgenden Aufgabe hab ich Fragen:
Frage

Welche Aussagen stimmen?

class Schalter {       private int _aktuellerZustand;    static public int _ANZAHL;       public void umschalten() {        _aktuellerZustand = !_aktuellerZustand;        _ANZAHL++;    }       static private int gibAnzahl() {        return _ANZAHL;    }    }
    * _ANZAHL ist eine Klassenvariable
    * gibAnzahl ist eine Exemplarmethode
    * _aktuellerZustand kann nicht aus gibAnzahl abgefragt werden
    * in _ANZAHL zählt für jedes Objekt getrennt das umschalten.
Ich verstehe die letzten beiden Antwortmöglichkeiten nicht.

Soll die dritte bedeuten, dass gibAnzahl() _aktuellerZustand nicht ausgibt (was zutrifft), oder dass _aktuellerZustand nicht im Sichtbarkeitsbereich der Methode liegt (was nicht zutrifft)? Und bei der letzten Antwort weiß ich gar nicht, was das bedeuten soll.

Außerdem ist doch        _aktuellerZustand = !_aktuellerZustand; völliger Unsinn oder nicht?


Bei der letzten Frage aus dem Gprot hätt ich gedacht, dass "Der Code wirft eine Exception" richtig wär, weil das Array nie erzeugt wird. In dem Zusammenhang ist dann auch unschlüssig, ob "intArray hat 0 Elemente" als richtig oder falsch zu werten ist, weil das Array ja gar nicht existiert (wurd nur deklariert).

RE: Alte SE1-Probeklausuren ??? 2009-02-18 16:31
Julian F.
Soll die dritte bedeuten, dass gibAnzahl() _aktuellerZustand nicht ausgibt (was zutrifft), oder dass _aktuellerZustand nicht im Sichtbarkeitsbereich der Methode liegt (was nicht zutrifft)?
_aktuellerZustand ist eine Exemplarvariable, gibAnzahl() ist jedoch eine Klassenmethode (static) und kann somit nicht auf Exemplarvariablen zugreifen. Der Compiler sagt einem das auch recht klar, wenn man versucht, _aktuellerZustand innerhalb von gibAnzahl() zu benutzen:
non-static variable _aktuellerZustand cannot be referenced from a static context
Und bei der letzten Antwort weiß ich gar nicht, was das bedeuten soll.
Mein Versuch einer Paraphrasierung: Jeder Schalter protokolliert für sich in seiner Variable _ANZAHL die Anzahl seiner Umschaltvorgänge.
Außerdem ist doch        _aktuellerZustand = !_aktuellerZustand; völliger Unsinn oder nicht?
In diesem Fall ja, der Code lässt sich ebenfalls nicht kompilieren. Ich vermute allerdings, dass _aktuellerZustand im Original vom Typ boolean war, dann funktioniert das wieder. (Man mache sich die Semantik eines Schalters klar. Gute Aufgabe, um die Auswertung von Ausdrücken und den Ablauf bei einer Zuweisung zu wiederholen.)
Bei der letzten Frage aus dem Gprot hätt ich gedacht, dass "Der Code wirft eine Exception" richtig wär, weil das Array nie initialisiert wird. In dem Zusammenhang ist dann auch unschlüssig, ob "intArray hat 0 Elemente" als richtig oder falsch zu werten ist, weil das Array ja gar nicht existiert (wurd nur deklariert).
Den Code kann man überhaupt nicht ausführen, da er sich gar nicht erst kompilieren lässt:
variable intArray might not have been initializedAllgemein gilt, was Fred schon sagte: Solange ihr noch zuhause am PC sitzt, könnt ihr solche Fragen relativ komfortabel durch Ausführen überprüfen. :)

RE: Alte SE1-Probeklausuren ??? 2009-02-18 17:18
Fred
Bei der Aufgabe
Frage
Berechne den folgenden Ausdruck:

(int)( 13.0 / 3 * 3 )

    * 4
    * 12
    * 13
    * bla
kommt 13 und nicht 12 raus. Erst wird die Fließkommadivision dann -multiplikation ausgeführt und dann der Typecast von 13.0 auf 13 durchgeführt.
Das Ergebnis 13 ist korrekt (kann man ja einfach ausprobieren), aber kann man das wirklich durch reines Nachdenken wissen? Bei Gleitkommaoperationen muss man ja immer sehr vorsichtig sein. Die Zahl 13.0 / 3 kann man als double ja gar nicht exakt darstellen.

Probier z.B. mal folgendes Gegenbeispiel in der Direkteingabe von BlueJ:
(int)(61.0 / 7 * 7)

Außerdem ist doch        _aktuellerZustand = !_aktuellerZustand; völliger Unsinn oder nicht?
Wie gesagt ist _aktuellerZustand ziemlich sicher ein boolean.

!_aktuellerZustand macht einfach aus true ein false und umgekehrt. Ganz simpel.

RE: Alte SE1-Probeklausuren ??? 2009-02-18 17:20
UncleOwen
Bei der Aufgabe
Frage

Berechne den folgenden Ausdruck:

(int)( 13.0 / 3 * 3 )

    * 4
    * 12
    * 13
    * bla
kommt 13 und nicht 12 raus. Erst wird die Fließkommadivision dann -multiplikation ausgeführt und dann der Typecast von 13.0 auf 13 durchgeführt.

Sicher? Durch das rechnen mit Fliesskommazahlen treten hier Rundungsfehler auf, das heisst, ( 13.0 / 3 * 3 ) ist UNGEFÄHR 13, aber nicht zwingend genau 13. Und falls es weniger als 13 ist, wird auf 12 abgerundet.

edit: Fred war schneller…

RE: Alte SE1-Probeklausuren ??? 2009-02-18 22:38
RaG
Erstmal Danke an Fred und Julian. :)

Das Ergebnis 13 ist korrekt (kann man ja einfach ausprobieren), aber kann man das wirklich durch reines Nachdenken wissen? Bei Gleitkommaoperationen muss man ja immer sehr vorsichtig sein. Die Zahl 13.0 / 3 kann man als double ja gar nicht exakt darstellen.

Probier z.B. mal folgendes Gegenbeispiel in der Direkteingabe von BlueJ:
(int)(61.0 / 7 * 7)
Okay, das macht natürlich Sinn. Aber wie soll man denn dann so eine Aufgabe in der Klausur beantworten? Setzt man in dem Beispiel z.b. 60.0 ein, ist das Ergebnis wieder korrekt. Gibt es da irgendeine Regelmäßigkeit?

Mein Versuch einer Paraphrasierung: Jeder Schalter protokolliert für sich in seiner Variable _ANZAHL die Anzahl seiner Umschaltvorgänge.
Dann ist die Antwort falsch, oder? _ANZAHL ist ja eine statische Variable, wird also afaik nicht für jedes Exemplar einzeln erzeugt.

Den Code kann man überhaupt nicht ausführen, da er sich gar nicht erst kompilieren lässt:
variable intArray might not have been initialized
Da schein ich die Begrifflichkeit noch nicht drauf gehabt zu haben. Ich dachte jegliche Fehlermeldung, die die Ausführung des Programms verhindert, egal ob bei der Übersetzung oder zur Laufzeit, würde als Exception bezeichnet…

RE: Alte SE1-Probeklausuren ??? 2009-02-18 23:59
Fred
Aber wie soll man denn dann so eine Aufgabe in der Klausur beantworten? […] Gibt es da irgendeine Regelmäßigkeit?
Die gibt es bestimmt, IEEE754 ist ja deterministisch. Aber für eine Klausuraufgabe ist das natürlich zu hoch gegriffen. Das Problem ist bisher einfach niemandem aufgefallen (und plötzlich fällt es zwei Leuten im Abstand von zwei Minuten auf - Wahnsinn, oder?).

Der Grundgedanke war bisher immer "x.0 / n * n == x.0", und in der Klausur solltet ihr das auch so handhaben (falls eine solche Aufgabe drankommt).

Dann ist die Antwort falsch, oder? _ANZAHL ist ja eine statische Variable, wird also afaik nicht für jedes Exemplar einzeln erzeugt.
Da liegst Du richtig. (Wobei man aufpassen muss, was in der Aufgabe steht, steht da Objekt oder Exemplar?) Es ist aber definitiv so gemeint, wie Du es interpretiert hast.

Ich dachte jegliche Fehlermeldung, die die Ausführung des Programms verhindert, egal ob bei der Übersetzung oder zur Laufzeit, würde als Exception bezeichnet…
Nein. Exceptions treten nur zur Laufzeit auf, setzen also voraus, dass das Programm übersetzbar ist, d.h. syntaktisch und semantisch korrekt.

RE: Alte SE1-Probeklausuren ??? 2009-02-19 00:42
UncleOwen
Ich dachte jegliche Fehlermeldung, die die Ausführung des Programms verhindert, egal ob bei der Übersetzung oder zur Laufzeit, würde als Exception bezeichnet…
Nein. Exceptions treten nur zur Laufzeit auf, setzen also voraus, dass das Programm übersetzbar ist, d.h. syntaktisch und semantisch korrekt.
Wieso semantisch korrekt? Logikfehler kann der Compiler doch gerade nicht erkennen.

RE: Alte SE1-Probeklausuren ??? 2009-02-19 00:45
RaG
So spät noch hier im Forum unterwegs? :D

Nein. Exceptions treten nur zur Laufzeit auf, setzen also voraus, dass das Programm übersetzbar ist, d.h. syntaktisch und semantisch korrekt.
Okay, wie nennt man solche Fehlermeldungen / Abbrüche zur Übersetzungszeit?

RE: Alte SE1-Probeklausuren ??? 2009-02-19 00:50
Fred
Wieso semantisch korrekt? Logikfehler kann der Compiler doch gerade nicht erkennen.
Semantik ist nicht dasselbe wie Logik. Ein Compiler durchläuft nach der Syntaxphase viele Semantikphasen, in denen das Programm auf statisch erkennbare Fehler überprüft wird. Gibt es die Methode, die hier aufgerufen wird? Darf ich diese Zuweisung durchführen? Wurde die Variable vor der ersten Benutzung initialisiert?

Siehe Wikipedia. Oh, die benutzen da ja sehr ähnliche Beispiele [28]

Logikfehler (das Programm berechnet Quatsch) sind eine andere Schiene.

Okay, wie nennt man solche Fehlermeldungen / Abbrüche zur Übersetzungszeit?
Syntaxfehler nennt man Syntaxfehler, Semantikfehler nennt man Semantikfehler. Der Oberbegriff lautet dann wohl Übersetzungsfehler oder so.

RE: Alte SE1-Probeklausuren ??? 2009-02-19 01:00
UncleOwen
Wieso semantisch korrekt? Logikfehler kann der Compiler doch gerade nicht erkennen.
Semantik ist nicht dasselbe wie Logik. Ein Compiler durchläuft nach der Syntaxphase viele Semantikphasen, in denen das Programm auf statisch erkennbare Fehler überprüft wird. Gibt es die Methode, die hier aufgerufen wird? Darf ich diese Zuweisung durchführen? Wurde die Variable vor der ersten Benutzung initialisiert?

Siehe Wikipedia. Oh, die benutzen da ja sehr ähnliche Beispiele [28]

Danke.

RE: Alte SE1-Probeklausuren ??? 2009-02-19 01:04
RaG
Von mir auch ein Danke!

RE: Alte SE1-Probeklausuren ??? 2009-02-19 01:07
Fred
Dann gibt's von mir ein… Bitte [23] Jetzt aber ins Bett.

RE: Alte SE1-Probeklausuren ??? 2009-02-19 06:32
Julian F.
Für die Aufgabensucher unter euch ist vielleicht ein Beitrag von Henning Pridöhl aus dem CommSy interessant:
Ich hab mir mal die Mühe gemacht und 23 Übungsaufgaben ausgedacht. Zu finden sind sie unter http://se1fragen.hprid.de/

Keine Garantie, dass Fragen und dazugehörige Antwortmöglichkeiten richtig sind, aber wer Fehler oder unklare/missverständliche Formulierungen findet, möge doch bitte Bescheid geben.

Viel Spaß damit.
Ich hab sie selbst noch nicht vollständig kontrolliert, die ersten paar sehen aber zum Lernen ganz geeignet aus.

(Crossposting mit Genehmigung des Autors)