Sie sind auf Seite 1von 12

PSE Sommersemester 2013

S. Wagner, Universit at Stuttgart

September 2013

Klausur Programmierung und Software-Entwicklung (PSE)


Punkte: Note:

Die Pr ufung dauert 90 Min. Diese Klausur besteht aus 7 Aufgaben und 26 Teilaufgaben, mit denen Sie insgesamt 90 Punkte erreichen k onnen. Vor jeder Aufgabe und Teilaufgabe ist die erreichbare Punktzahl angegeben. In dieser Klausur sind keine Hilfsmittel zugelassen (Schriften, Rechner oder andere Elektronik)! Kennzeichnen Sie alle Bl atter, die Sie abgeben, mit Name und Matrikelnummer.

Name und Vorname

Matrikel-Nr.

PSE 1: Wahr oder Falsch 7 Punkte Entscheiden Sie, welche der folgenden Aussagen wahr oder falsch sind. Bitte kreuzen Sie die Antworten in dem daf ur vorgesehenen K astchen an . 1. 2. 3. 4. 5. 6. 7. In einer Klasse als private deklarierte Methoden k onnen von der Klasse selbst und deren Subklassen aufgerufen werden. In jeder Klasse muss mindestens ein Konstruktor explizit deniert werden. Eine Variable vom Typ int kann verlustfrei in den Typ oat umgewandelt werden. 1stRow ist ein g ultiger Name f ur eine Klasse Eine switch-Anweisung muss immer auch einen default Zweig haben Mit einem try und einem darauolgenden catch -Block kann man gezielt Exceptions behandeln. Die Vererbung von Attributen und Methoden kann durch Zugrisrechte eingeschrankt werden. 2 Wahr 2 Wahr 2 Wahr 2 Wahr 2 Wahr 2 Wahr 2 Wahr 2 Falsch 2 Falsch 2 Falsch 2 Falsch 2 Falsch 2 Falsch 2 Falsch

PSE Sommersemester 2013

Seite 2 von 12

September 2013 16 Punkte

PSE 2: Objektorientierte Programmierung

(a) (4 Punkte) Der Einstiegspunkt in ein Java-Programm ist u blicherweise die folgende Methode: public static void main(String[] args). Erkl aren Sie kurz die Bestandteile public, static und void des Methodenkopfes!

(b) (4 Punkte) Beschreiben Sie kurz die zwei verschiedene Typen von Methoden in der objektorientierten Programmierung: Kommandos und Abfragen!

(c) (4 Punkte) Aus welchen Teilen bestehen Objekt-Kontrakte? Beschreiben Sie kurz die Bestandteile!

PSE Sommersemester 2013

Seite 3 von 12

September 2013

(d) (4 Punkte) Erkl aren Sie, was statische Methoden und statische Attributen in Java sind!

PSE 3: Computer, Hardware, Syntaxdarstellung (a) (4 Punkte) Nennen Sie vier Von-Neumann-Prinzipien!

12 Punkte

(b) (4 Punkte) Erkl aren Sie kurz was die Aufgaben des Rechenwerks sind?

PSE Sommersemester 2013

Seite 4 von 12

September 2013

(c) (4 Punkte) Geben Sie f ur die im Zehnersystem dargestellten nat urlichen Zahlen x=132 und y= 624 Repr asentationen im Bin arsystem an. Wie viele Bytes werden ben otigt, um diese Zahlen jeweils zu speichern?

PSE 4: Syntax, Grammatik, Turing-Maschine, Semantik, Bin arb aume

12 Punkte

(a) (3 Punkte) Beschreiben Sie, woraus ein Arbeitsschritt der Berechnung einer Turingmaschine besteht!

(b) (3 Punkte) Erkl aren Sie kurz, was bin are Suchb aume sind!

PSE Sommersemester 2013

Seite 5 von 12

September 2013

(c) (6 Punkte) Gegeben sei folgende Chomsky-Grammatik G1 =(T, V, P, S) mit: T = {a,b,c}, V = {S,A,B} P = {S abc, S aAbc, Ab bA, Ac Bbcc, bB Bb, aB aaA, aB aa } S=S Zeigen Sie, dass w=aabbcc L(G1 ), indem Sie eine Ableitung f ur w angeben.

PSE Sommersemester 2013

Seite 6 von 12

September 2013 29 Punkte

PSE 5: Programmieraufgaben, Verikation

(a) (12 Punkte) Ein Postunternehmen hat ein neues Versandkostenangebot. Jetzt kann man Standard-, Kompakt-, Gro- und Maxibriefe sowie Postkarten versenden. Die Preise f ur Briefe und Einschreiben sind wie folgt: Art der Sendung Postkarte Standardbrief Kompaktbrief Grobrief Maxibrief Einschreiben Gewicht Porto-National bis 10 Gramm 0,45 Euro bis 20 Gramm 0,58 Euro bis 50 Gramm 0,90 Euro bis 500 Gramm 1,45 Euro bis 1.000 Gramm 2,40 Euro zus atzlich 2,05 Euro/St uck

Schreiben Sie eine statische Methode, die fu r eine Anzahl von Sendungen von gleichem Gewicht unter Beru cksichtigung, ob Einschreiben gewu nscht ist, einen String mit Gesamtpreis und dessen Zusammensetzung zuru ckgibt, etwa so: 4 Standardbrief(e) (ohne Einschreiben) zu je 0,58 Euro: 2,32 Euro Hinweise: - Die Werte der Variablen (z.B. Anzahl, Art der Sendung, ...) werden als Parameter u bergeben. - Der Preis f ur den Einschreiben-Service f ur jedes St uck ist 2,05 Euro. - Wenn das maximale Gewicht f ur die jeweilige Art der Sendung u berschritten wird, soll die Methode eine IIllegalArgumentException werfen.

PSE Sommersemester 2013

Seite 7 von 12

September 2013

PSE Sommersemester 2013

Seite 8 von 12

September 2013

(b) (3 Punkte) Was ist eine Ausnahme? Wie k onnen Sie Programmabst urze durch Ausnahmebehandlung in Ihrem Code vermeiden?

(c) (4 Punkte) Welche Ausgabe bewirkt ein Aufruf von methode1 (num) im untenstehenden Code? [Hinweis: num > 0]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

public s t a t i c void methode1 ( int num) { / num > 0 / int t = 0 ; try { do { num = num / t ; i f ( t == 0 ) { throw new Ex cep ti on ( F e h l e r ) ; } } while (num == 0 ) ; } catch ( A r i t h m e t i c E x c e p t i o n e ) { System . out . p r i n t l n ( T e i l e r g l e i c h 0 ) ; } catch ( Exc ep tio n e ) { System . out . p r i n t l n ( Ausnahme ) ; } finally { System . out . p r i n t l n ( Das Ende . . . ) ; } }

PSE Sommersemester 2013

Seite 9 von 12

September 2013

(d) (5 Punkte) Gegeben sei folgende Funktion f : Z Z: falls n <= 4 1, f (n) = 2, falls n=5 10f(n-1) + 4f(n-2), falls n > 5

(1)

Schreiben Sie eine rekursive Java-Funktion, die den Wert dieser Funktion f(n) zur uckliefert. Die Variable n wird hierbei als Parameter der Methode u bergeben.

(e) (5 Punkte) Gegeben sei die folgende Anweisung S: IF x > y 5 THEN x := y 4; y := y + 1 END mit der Nachbedingung Q x = y 5. Bestimmen Sie die schw achste Vorbedingung (wp), so dass die Anweisung korrekt ist.

PSE Sommersemester 2013

Seite 10 von 12

September 2013 8 Punkte

PSE 6: EBNF und Syntaxdiagramm (a) (3 Punkte) Geben Sie die EBNF f ur folgendes Syntaxdiagramm an:

(b) (5 Punkte) Skizzieren Sie das Syntaxdiagramm f ur die folgende EBNF-Grammatik: Raumadresse = Gebaude /Raumnummer; Raumnummer= Etage .Nummer Nummer Nummer; Gebaude= (Pfaenwaldring | Universit atsstrae) [Nummer] Nummer; Etage= [Nummer] Nummer; Nummer= ( 0| 1| 2| 3| 4 | 5 | 6| 7| 8| 9);

PSE Sommersemester 2013

Seite 11 von 12

September 2013

PSE Sommersemester 2013

Seite 12 von 12

September 2013 8 Punkte

PSE 7:Ezienz und Laufzeitkomplexit at von Algorithmen

(a) (8 Punkte) Betrachten Sie die zwei folgenden Codeabschnitte und ermitteln Sie jeweils T(n) und O(n).
1 2 3 4 5 6

for ( int j = n 1; j > 1 ; j ) { for ( int i = 1 ; i < n ; i ++) { array [ j ] = array [ j ] 1; } }

1 2 3 4 5 6 7

i f ( x < 100) { y = x; } else for ( int i = 1 ; i < n ; i ++) { if (a [ i ] > y) y = a[ i ]; }

Wir wu nschen Ihnen viel Spass und viel Erfolg beim Bearbeiten der Klausur!