• Keine Ergebnisse gefunden

Ludwig-Maximilians-Universit¨ at M¨ unchen WS 2012/13 Institut f¨ ur Informatik 19.04.2013, 12:00–14:00 Uhr Prof. Dr. R. Hennicker, A. Klarl

N/A
N/A
Protected

Academic year: 2021

Aktie "Ludwig-Maximilians-Universit¨ at M¨ unchen WS 2012/13 Institut f¨ ur Informatik 19.04.2013, 12:00–14:00 Uhr Prof. Dr. R. Hennicker, A. Klarl"

Copied!
11
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Ludwig-Maximilians-Universit¨ at M¨ unchen WS 2012/13 Institut f¨ ur Informatik 19.04.2013, 12:00–14:00 Uhr Prof. Dr. R. Hennicker, A. Klarl

Nachholklausur (6 ECTS): L¨ osungsvorschlag Einf¨ uhrung in die Informatik:

Programmierung und Software-Entwicklung

Nachname . . . . Vorname . . . . Matrikelnummer . . . . Studienfach . . . . Angestrebter Abschluss . . . . Fachsemester . . . .

Hilfsmittel jeder Art sind nicht zugelassen. Schreiben Sie Ihren Namen und Ihre Matrikelnum- mer auf jedes Blatt. Die Klausurangabe mit allen L¨ osungen und alle verwendeten Bl¨ atter sind in jedem Fall nach der Klausur wieder abzugeben.

Diese Klausur soll gewertet werden: JA NEIN

Hinweis:Wenn keines der beiden Felder angekreuzt ist, wird JA angenommen.

Mit meiner Unterschrift erkl¨ are ich die Richtigkeit und Vollst¨ andigkeit der obigen Angaben.

. . . .

Nicht von dem/der Studierenden auszuf¨ ullen

1 2 3 4 5 6 Σ Note

(2)

Aufgabe 1 EBNF-Grammatik und Syntaxdiagramm 3 + 6 = 9 Punkte Gegeben sei folgende EBNF-Grammatik, die Namen mit voran gestelltem akademischen Grad im deutschen Sprachraum beschreibt.

Name = [ Titel ] Vorname Nachname Titel = [ "Prof." ] "Dr." { "Dr." } Vorname = Nachname

Nachname = Großbuchstabe { Kleinbuchstabe } Großbuchstabe = "A" | "B" | ... | "Z"

Kleinbuchstabe = "a" | "b" | ... | "z"

a) Welche der folgenden Zeichenketten sind g¨ ultige Worte der oben definierten Sprache? Im Fall von nicht-g¨ ultigen Worten ist eine Begr¨ undung anzugeben.

L¨ osung:

Prof. Toni Maurer: nicht g¨ ultig, da man keinen Prof.-Titel ohne Dr.-Titel haben kann (1 Punkt)

Genoveva Bauer: g¨ ultig (0.5 Punkte)

Prof. Dr. Dr. Abcde Zxhast: g¨ ultig (0.5 Punkte)

Lisa m¨ uller: nicht g¨ ultig, da der Nachname mit einem Kleinbuchstaben beginnt (1 Punkt)

b) Erstellen Sie zu der oben definierten EBNF-Grammatik ein ¨ aquivalentes Syntaxdiagramm.

Diagramme f¨ ur die Nichtterminale Großbuchstabe und Kleinbuchstabe brauchen nicht angegeben zu werden.

L¨ osung:

Name :

-

-

Titel

-

Vorname

-

Nachname

-

Titel :

-

-

Prof.

-

Dr.

6 -

Dr.

-

Vorname :

-

Nachname

-

Nachname :

-

Großbuchstabe

6

-

-

Kleinbuchstabe

-

(nach Regeln: 1.5 Punkte, 2 Punkte, 1 Punkt, 1.5 Punkte)

(3)

Aufgabe 2 Ausdr¨ ucke in Java 7 Punkte Wir verwenden die Klassen Bank und BankKonto aus der Vorlesung, die hier in UML-Notation angegeben sind.

Seien Bank bank; und BankKonto konto; lokale Variablendeklarationen (z.B. in einer main- Methode). Geben Sie f¨ ur die folgenden Ausdr¨ ucke an, ob sie vom Java-Compiler akzeptiert werden oder nicht. Im positiven Fall ist der Typ des Ausdrucks anzugeben, im negativen Fall ist zu begr¨ unden, warum der Ausdruck zu einem ¨ Ubersetzungsfehler f¨ uhrt.

a) new Bank("MeineBank") == bank

L¨ osung:

new Bank("MeineBank") == bank ist nicht korrekt, da der Konstruktor zwei Parameter erwartet. (1 Punkt)

b) konto.kontoStand(5)

L¨ osung:

konto.kontoStand(5) ist nicht korrekt, da das Attribut kontoStand nicht mit einem Para- meter aufgerufen werden kann bzw. die Methode kontoStand nicht f¨ ur die Klasse BankKonto definiert ist. (1 Punkt)

c) bank.kontoStand(123) < konto.getKontoStand()

L¨ osung:

bank.kontoStand(123) < konto.getKontoStand() ist korrekt und vom Typ boolean.

(2 Punkte)

d) new BankKonto(konto.getKontoStand())

L¨ osung:

new BankKonto(konto.getKontoStand()) ist korrekt und vom Typ BankKonto. (2 Punkte)

e) bank.einzahlen(11, 300)

L¨ osung:

bank.einzahlen(11, 300) ist korrekt und vom Typ boolean. (1 Punkt)

(4)

Aufgabe 3 Wiederholungsanweisungen 12 Punkte Der Igel m¨ ochte in einem Wettlauf gegen den Hasen antreten. Naturgem¨ aß hat der Igel eine k¨ urzere Schrittl¨ ange als der Hase: der Igel hat eine Schrittl¨ ange von 5.3 cm, der Hase hat eine Schrittl¨ ange von 10.8 cm. Um diesen Vorteil des Hasens auszugleichen, bekommt der Igel einen Vorsprung von 270 cm.

Schreiben Sie eine main-Methode, die berechnet, nach wie vielen Schritten der Hase den Igel trotz des Vorsprungs ¨ uberholt hat. Ihr Programm soll f¨ ur jeden Schritt in einer neuen Zeile ausgeben, (1) wie weit der Hase insgesamt vorw¨ arts gekommen ist und (2) wie weit der Igel zuz¨ uglich seines Vorsprungs vorw¨ arts gekommen ist. Diese Ausgabe soll letztmals erfolgen, wenn der Hase den Igel ¨ uberholt hat.

F¨ ur die obigen Werte soll folgender Text auf der Kommandozeile ausgegeben werden:

Nach 1 Schritten: Hase 10.8cm, Igel 275.3cm Nach 2 Schritten: Hase 21.6cm, Igel 280.6cm Nach 3 Schritten: Hase 32.4cm, Igel 285.9cm ...

Nach 50 Schritten: Hase 540.0cm, Igel 535.0cm

Vervollst¨ andigen Sie die unten stehende main-Methode. Zun¨ achst sind geeignete Variablen zu deklarieren und zu initialisieren.

L¨ osung:

Alternative 1:

1 p u b l i c c l a s s H a s e U n d I g e l {

2 p u b l i c s t a t i c void m a i n ( S t r i n g [] a r g s ) {

3

4 // 1.5 P u n k t e : k o r r e k t e I n i t . a l l e r V a r i a b l e n

5 double s c h r i t t l a e n g e H a s e = 1 0 . 8 ;

6 double s c h r i t t l a e n g e I g e l = 5 . 3 ;

7 double v o r s p r u n g = 2 7 0 . 0 ;

8

9 double s t r e c k e H a s e = 0 . 0 ; // 1 P u n k t

10 double s t r e c k e I g e l = v o r s p r u n g ; // 1 P u n k t

11

12 i n t s c h r i t t e = 0; // 1 P u n k t

13

14 while ( s t r e c k e I g e l >= s t r e c k e H a s e ) {

15 // 0.5 P u n k t : while mit r i c h t i g e r K l a m m e r u n g

16 // 1.5 P u n k t e : k o r r e k t e r A b b r u c h

17 // 1.5 P u n k t e

18 s t r e c k e H a s e = s t r e c k e H a s e + s c h r i t t l a e n g e H a s e ;

19 // 1.5 P u n k t e

20 s t r e c k e I g e l = s t r e c k e I g e l + s c h r i t t l a e n g e I g e l ;

21

22 s c h r i t t e ++; // 1.5 P u n k t e

23

24 // 1 P u n k t

25 S y s t e m . out . p r i n t l n ( " N a c h " + s c h r i t t e + " S c h r i t t e n : H a s e "

26 + s t r e c k e H a s e + " cm , I g e l " + s t r e c k e I g e l + " cm " );

27 }

28 }

29 }

−1 Punkt bei falscher Syntax

(5)

Alternative 2:

1 p u b l i c c l a s s H a s e U n d I g e l {

2 p u b l i c s t a t i c void m a i n ( S t r i n g [] a r g s ) {

3

4 // 1.5 P u n k t e : k o r r e k t e I n i t . a l l e r V a r i a b l e n

5 double s c h r i t t l a e n g e H a s e = 1 0 . 8 ;

6 double s c h r i t t l a e n g e I g e l = 5 . 3 ;

7 double v o r s p r u n g = 2 7 0 . 0 ;

8

9 i n t s c h r i t t e = 0; // 0.5 P u n k t e

10 boolean i g e l N o c h V o r n e = true;

11

12 while ( i g e l N o c h V o r n e ) {

13 // 0.5 P u n k t : while mit r i c h t i g e r K l a m m e r u n g

14 // 1.5 P u n k t e : k o r r e k t e r A b b r u c h

15 // 2.5 P u n k t e

16 double s t r e c k e H a s e = s c h r i t t e * s c h r i t t l a e n g e H a s e ;

17 // 2.5 P u n k t e

18 double s t r e c k e I g e l = v o r s p r u n g + s c h r i t t e * s c h r i t t l a e n g e I g e l ;

19

20 s c h r i t t e ++; // 1 P u n k t

21

22 // 1 P u n k t

23 i g e l N o c h V o r n e = s t r e c k e H a s e <= s t r e c k e I g e l ;

24

25 // 1 P u n k t

26 S y s t e m . out . p r i n t l n ( " N a c h " + s c h r i t t e + " S c h r i t t e n : H a s e "

27 + s t r e c k e H a s e + " cm , I g e l " + s t r e c k e I g e l + " cm " );

28 }

29 }

30 }

−1 Punkt bei falscher Syntax

(6)

Aufgabe 4 Arrays 7 + 4 = 11 Punkte a) Eine Wetterstation misst jeden Tag um die gleiche Uhrzeit die Temperatur. Diese Daten werden der Reihe nach in einem Array vom Typ double gespeichert. Schreiben Sie eine Methode mit folgendem Kopf:

public static double groessterTemperaturSprung(double[] array)

Die Methode soll den gr¨ oßten Temperatursprung zwischen zwei aufeinander folgenden Tagen berechnen. Beispielweise soll f¨ ur das Array [−5.0, 1.7, 19.0, 16.9] der Wert 17.3 ausgegeben werden und f¨ ur das Array [13.3, 12.0, 12.5] der Wert 1.3. Es kann davon ausgegangen werden, dass das Array mindestens zwei Elemente enth¨ alt.

Hinweis: Mit Hilfe der Methode

Math.abs

k¨onnen Sie den Absolutbetrag einer Zahl berech- nen. Beispielsweise ergibt

Math.abs(-1.3)

den Wert

1.3.

L¨ osung:

1 p u b l i c s t a t i c double g r o e s s t e r T e m p e r a t u r S p r u n g (double[] a r r a y ) {

2 double g r o e s s t e r S p r u n g = 0 . 0; // 0.5 P u n k t e

3 f o r (i n t i = 1; i < a r r a y . l e n g t h ; i ++) {

4 // 1 P u n k t f¨ur k o r r e k t e V e r w e n d u n g der f o r- S c h l e i f e

5 // 1 P u n k t e f¨ur I n i t i a l i s i e r u n g mit i =1

6 ( o d e r nur bis a r r a y . lenght -1)

7 double d i f f e r e n z = M a t h . abs ( a r r a y [ i - 1] - a r r a y [ i ]);

8 // 1 P u n k t f¨ur D i f f e r e n z b e r e c h n u n g

9 // 1 P u n k t f¨ur A b s o l u t b e t r a g

10 i f ( d i f f e r e n z > g r o e s s t e r S p r u n g ) {

11 // 2 P u n k t e f¨ur g e s a m t e s i f- K o n s t r u k t

12 g r o e s s t e r S p r u n g = d i f f e r e n z ;

13 }

14 }

15 return g r o e s s t e r S p r u n g ; // 0.5 P u n k t e

16 }

b) Schreiben Sie eine main-Methode, in der f¨ ur das Array [−5.0, 1.7, 19.0, 16.9] die Methode groessterTemperaturSprung aus Teilaufgabe a) aufgerufen wird und das Ergebnis auf der Kommandozeile ausgegeben wird.

Hinweis: Sie k¨onnen davon ausgehen, dass die

main-Methode zur selben Klasse geh¨ ort wie die Methode groessterTemperaturSprung.

L¨ osung:

1 p u b l i c s t a t i c void m a i n ( S t r i n g [] a r g s ) {

2 double[] a r r a y = { -5.0 , 1.7 , 19.0 , 1 6 . 9 }; // 1.5 P u n k t e

3 double w e r t = g r o e s s t e r T e m p e r a t u r S p r u n g ( a r r a y ); // 1.5 P u n k t e

4 S y s t e m . out . p r i n t l n ( w e r t ); // 1 P u n k t

5 }

(7)

Aufgabe 5 Klassen und Vererbung 6 + 6 + 2 = 14 Punkte Eine Bank braucht ein neues Verwaltungsprogramm f¨ ur ¨ Uberweisungen. Zusammen mit dem Bankmanager entwickeln Sie folgendes Programm.

a) F¨ ur Ihr Programm wollen Sie die Klasse BankKonto aus der Vorlesung verwenden. Zus¨ atzlich haben Sie eine Klasse ¨ Uberweisung entworfen, die hier zusammen mit der Klasse BankKonto in UML-Notation angegeben ist.

Mit einer ¨ Uberweisung kann ein Geldbetrag von einem Konto auf ein anderes Konto verscho- ben werden. In der Klasse ¨ Uberweisung wird das Quellkonto in dem ¨ offentlichen Attribut quellkonto und das Zielkonto in dem ¨ offentlichen Attribut zielkonto gespeichert. Beide Attribute werden mit dem angegebenen Konstruktor initialisiert. F¨ ur beide Attribute gibt es außerdem jeweils eine “Getter”-Methode. Die ¨ Uberweisung von einem Geldbetrag betrag vom Quellkonto auf das Zielkonto wird durch die Methode ¨ uberweisen ausgef¨ uhrt. Dabei wird der Geldbetrag betrag vom Quellkonto abgehoben und auf das Zielkonto eingezahlt.

Implementieren Sie nur die Klasse ¨ Uberweisung mit Konstruktor und allen Methoden in Java. Sie k¨ onnen davon ausgehen, dass die Klasse BankKonto in Java implementiert ist und k¨ onnen diese verwenden.

L¨ osung:

1 // 0.5 P u n k t e f¨ur p r i v a t e und p u b l i c bei den A t t r i b u t e n und M e t h o d e n

2 p u b l i c c l a s s ¨U b e r w e i s u n g {

3

4 // 1 P u n k t f¨ur a l l e A t t r i b u t e

5 p u b l i c B a n k K o n t o q u e l l k o n t o ;

6 p u b l i c B a n k K o n t o z i e l k o n t o ;

7

8 // 1 P u n k t

9 p u b l i c ¨U b e r w e i s u n g ( B a n k K o n t o q u e l l k o n t o , B a n k K o n t o z i e l k o n t o ) {

10 t h i s. q u e l l k o n t o = q u e l l k o n t o ;

11 t h i s. z i e l k o n t o = z i e l k o n t o ;

12 }

13

14 // 1.5 P u n k t e f¨ur b e i d e G e t t e r

15 p u b l i c B a n k K o n t o g e t Q u e l l k o n t o () {

16 return t h i s. q u e l l k o n t o ;

17 }

18

19 p u b l i c B a n k K o n t o g e t Z i e l k o n t o () {

20 return t h i s. z i e l k o n t o ;

21 }

22

23 // 2 P u n k t e

24 p u b l i c void ¨u b e r w e i s e n (double b e t r a g ) {

25 t h i s. q u e l l k o n t o . a b h e b e n ( b e t r a g );

26 t h i s. z i e l k o n t o . e i n z a h l e n ( b e t r a g );

27 }

(8)

b) Die Bank m¨ ochte nun auch Uberweisungen ins Ausland vornehmen k¨ ¨ onnen. Zur Uberweisung zwischen zwei Konten unterschiedlicher L¨ ¨ ander verwenden wir eine Subklasse Auslands¨ uberweisung der Klasse ¨ Uberweisung aus Teilaufgabe a), die wie folgt in UML- Notation angegeben ist.

F¨ ur Auslands¨ uberweisungen wird eine Geb¨ uhr erhoben. Das Attribut gebuehr gibt an, wie hoch die Geb¨ uhr bei einer ¨ Uberweisung ist. Im angegebenen Konstruktor werden alle geerb- ten und eigenen Attribute der Klasse Auslands¨ uberweisung initialisiert. Eine ¨ Uberweisung wird durch die Methode ¨ uberweisen der Klasse Auslands¨ uberweisung ausgef¨ uhrt, wobei die Geb¨ uhr vom Quellkonto abgezogen wird.

Implementieren Sie die Klasse Auslands¨ uberweisung mit Konstruktor und der Metho- de ¨ uberweisen in Java. Sie k¨ onnen davon ausgehen, dass die Klasse BankKonto und

¨ Uberweisung aus Teilaufgabe a) bereits implementiert sind und k¨ onnen diese verwenden.

L¨ osung:

Alternative 1:

1 // 1 P u n k t f¨ur extends

2 p u b l i c c l a s s A u s l a n d s ¨u b e r w e i s u n g extends ¨U b e r w e i s u n g {

3 // 0.5 P u n k t e

4 p r i v a t e double g e b u e h r ;

5

6 p u b l i c A u s l a n d s ¨u b e r w e i s u n g ( B a n k K o n t o q u e l l k o n t o , B a n k K o n t o z i e l k o n t o ,

7 double g e b u e h r ) {

8 t h i s. q u e l l k o n t o = q u e l l k o n t o ; // 0.5 P u n k t e

9 t h i s. z i e l k o n t o = z i e l k o n t o ; // 0.5 P u n k t e

10 t h i s. g e b u e h r = g e b u e h r ; // 0.5 P u n k t e

11 }

12

13 // 3 P u n k t e ( mit 1 P u n k t f¨ur A d d i t i o n )

14 p u b l i c void ¨u b e r w e i s e n (double b e t r a g ) {

15 t h i s. q u e l l k o n t o . a b h e b e n ( b e t r a g + t h i s. g e b u e h r );

16 t h i s. z i e l k o n t o . e i n z a h l e n ( b e t r a g );

17 }

18 }

(9)

Alternative 2:

1 // 1 P u n k t f¨ur extends

2 p u b l i c c l a s s A u s l a n d s ¨u b e r w e i s u n g extends ¨U b e r w e i s u n g {

3 // 0.5 P u n k t e

4 p r i v a t e double g e b u e h r ;

5

6 p u b l i c A u s l a n d s ¨u b e r w e i s u n g ( B a n k K o n t o q u e l l k o n t o ,

7 B a n k K o n t o z i e l k o n t o , double g e b u e h r ) {

8 super( q u e l l k o n t o , z i e l k o n t o ); // 1 P u n k t

9 t h i s. g e b u e h r = g e b u e h r ; // 0.5 P u n k t e

10 }

11

12 // 3 P u n k t e

13 p u b l i c void ¨u b e r w e i s e n (double b e t r a g ) {

14 super. ¨u b e r w e i s e n ( b e t r a g );

15 t h i s. q u e l l k o n t o . a b h e b e n (t h i s. g e b u e h r );

16 }

17 }

−1 Punkt bei falscher Syntax oder falscher Klassendeklaration

c) Die Klasse BankMain verwendet die Klassen aus den Teilaufgaben a) und b), die als gel¨ ost vorausgesetzt werden k¨ onnen.

1 p u b l i c c l a s s B a n k M a i n {

2 p u b l i c s t a t i c void m a i n ( S t r i n g [] a r g s ) {

3 B a n k K o n t o q u e l l e = new B a n k K o n t o ( 1 0 ) ;

4 B a n k K o n t o z i e l = new B a n k K o n t o ( 0 ) ;

5

6 ¨U b e r w e i s u n g ¨u b e r w e i s u n g =

7 new A u s l a n d s ¨u b e r w e i s u n g ( quelle , ziel , 0 . 0 2 ) ;

8 ¨u b e r w e i s u n g . ¨u b e r w e i s e n ( 5 ) ;

9

10 S y s t e m . out . p r i n t l n ( " Q u e l l k o n t o : " + q u e l l e . g e t K o n t o S t a n d ( ) ) ;

11 S y s t e m . out . p r i n t l n ( " Z i e l k o n t o : " + z i e l . g e t K o n t o S t a n d ( ) ) ;

12 }

13 }

Geben Sie an, was in Zeile 10 und 11 genau auf der Konsole ausgegeben wird.

L¨ osung:

Quellkonto: 4.98

//

1 Punkt

Zielkonto: 5.0

//

1 Punkt

(10)

Aufgabe 6 Grafische Benutzeroberfl¨ achen 2 + 5 = 7 Punkte In dieser Aufgabe sollen Sie mit AWT/Swing eine grafische Benutzeroberfl¨ ache f¨ ur eine kleine Anwendung implementieren, die den Benutzer begr¨ ußt. Die grafische Benutzeroberfl¨ ache soll wie folgt aussehen:

Eine Implementierung der grafischen Benutzeroberfl¨ ache ist durch folgenden Programmaus- schnitt angedeutet:

1 p u b l i c c l a s s B e g r u e s s u n g s F r a m e extends J F r a m e implements A c t i o n L i s t e n e r {

2 p r i v a t e J B u t t o n n a m e B u t t o n ;

3 p r i v a t e J B u t t o n g r u s s B u t t o n ;

4 p r i v a t e J T e x t A r e a a u s g a b e B e r e i c h ;

5

6 p r i v a t e S t r i n g n a m e ;

7

8 p u b l i c B e g r u e s s u n g s F r a m e () {

9 t h i s. s e t T i t l e ( " B e g r ¨u ß u n g s F r a m e " );

10 t h i s. s e t S i z e (400 , 2 0 0 ) ;

11

12 t h i s. n a m e B u t t o n = new J B u t t o n ( " N a m e e i n g e b e n " );

13 t h i s. g r u s s B u t t o n = new J B u t t o n ( " B e g r ¨u ß u n g a u s g e b e n " );

14 t h i s. a u s g a b e B e r e i c h = new J T e x t A r e a (150 , 3 0 0 ) ;

15 ... // Der w e i t e r e A u f b a u der GUI ist h i e r u n w e s e n t l i c h

16 17

18 ... // in T e i l a u f g a b e a ) zu i m p l e m e n t i e r e n

19 20

21 t h i s. s e t D e f a u l t C l o s e O p e r a t i o n ( J F r a m e . E X I T _ O N _ C L O S E );

22 }

23

24 p u b l i c void a c t i o n P e r f o r m e d ( A c t i o n E v e n t e ) {

25 O b j e c t s o u r c e = e . g e t S o u r c e ();

26

27 ... // in T e i l a u f g a b e b ) zu i m p l e m e n t i e r e n

28 29

30 }

31 }

a) Welche Anweisungen m¨ ussen im Konstruktor der Klasse BegruessungsFrame eingef¨ uhrt werden, so dass die Benutzeroberfl¨ ache auf Knopfdr¨ ucke reagieren kann.

L¨ osung:

t h i s. n a m e B u t t o n . a d d A c t i o n L i s t e n e r (t h i s); // 1 P u n k t

(11)

b) Wird der Button mit der Aufschrift “Name eingeben” gedr¨ uckt, soll der Benutzer mit Hilfe der Methode JOptionPane.showInputDialog(String message) nach seinem Namen ge- fragt werden. Dieser soll im Attribut name gespeichert werden. Wird der Button mit der Aufschrift “Begr¨ ußung ausgeben” gedr¨ uckt, soll der Benutzer mit dem gespeicherten Na- men im Ausgabebereich der Benutzeroberfl¨ ache mit “Hallo ...” begr¨ ußt werden. Erg¨ anzen Sie den Rumpf der Methode actionPerformed so, dass die oben gew¨ unschte Reaktion f¨ ur beide Buttons erfolgt.

L¨ osung:

1 p u b l i c void a c t i o n P e r f o r m e d ( A c t i o n E v e n t e ) {

2 O b j e c t s o u r c e = e . g e t S o u r c e ();

3 i f ( s o u r c e == t h i s. n a m e B u t t o n ) { // 1 P u n k t

4 // 1 P u n k t f¨ur A b f r a g e mit J O p t i o n P a n e

5 // 1 P u n k t f¨ur Z u w e i s u n g an t h i s. n a m e

6 t h i s. n a m e = J O p t i o n P a n e . s h o w I n p u t D i a l o g ( " N a m e e i n g e b e n : " );

7 }

8 e l s e i f ( s o u r c e == t h i s. g r u s s B u t t o n ) { // 1 P u n k t

9 // 0.5 P u n k t e f¨ur r i c h t i g e B e n u t z u n g des A u s g a b e b e r e i c h s

10 // 0.5 P u n k t e f¨ur r i c h t i g e B e n u t z u n g von t h i s. n a m e

11 t h i s. a u s g a b e B e r e i c h . s e t T e x t ( " H a l l o " + t h i s. n a m e );

12 }

13 }

Referenzen

ÄHNLICHE DOKUMENTE

Zeigen Sie, dass es zu jeder Formel ϕ eine ¨ aquivalente termreduzierte Formel gibt, dessen Gr¨ oße linear in der Gr¨ oße von ϕ beschr¨ ankt ist..

eine Formel- menge Γ eine Eigenschaft des Universum ausdr¨ uckt, wenn f¨ ur jede Menge U gilt: Die Eigenschaft trifft auf U zu gdw.. es ein Modell von

If we assume that both steps are independent (which seems to work in practice), then we get that with input differential 0x0000b000, the differential at point (∗) will be

Define a fixed-length message-authentication code (Gen, MAC) as follows: The key generation function Gen takes as argument the security parameter n and returns a random key of

Exercise 8-1 Recall the definition of the group Z ∗ N and that its order, i.e.. Use an appropriate encoding. Recall the chapter on the modes of operation of block ciphers...

Assume for simplicity that a transaction consists just of the amount x of money to be transferred (and ignore account numbers and the like). The amount x is encoded by the group

Exercise 10-2 The RSA hardness assumption states that P (RSA-inv A (n) = 1) ≤ negl(n) for any probilistic polynomial time adversary A. Show that the RSA hardness assumption implies

The distinguisher D is a probabilistic polynomial time algorithm, so it can make at most polynomially many different requests to the oracle function, say with arguments x