• Keine Ergebnisse gefunden

1.1FOR-SchleifeninReihe 1FOR-Schleifen

N/A
N/A
Protected

Academic year: 2022

Aktie "1.1FOR-SchleifeninReihe 1FOR-Schleifen"

Copied!
15
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Programmiertechnik 1 FOR-SCHLEIFEN

In diesem Dokument wollen wir uns mit Kontrollstrukturen befassen. Da- zu sind im Folgenden einige ¨Ubungsaufgaben zu den Themen Schleifen (FOR, WHILE, DO) und Bedingungen (IF, ELSE, SWITCH) aufgelistet:

1 FOR-Schleifen

1.1 FOR-Schleifen in Reihe

Q:Wie oft wird insgesamt das * Zeichen f¨ur beide FOR-Schleifen zusammen ausgegeben?

1 i n t i ;

2 f o r ( i = 0 ; i < 5 ; i ++) {}

3 System . o u t . p r i n t ( ”∗” ) ;

4 }

5 f o r ( i = 0 ; i < 7 ; i ++) {}

6 System . o u t . p r i n t ( ”∗” ) ;

7 }

Listing 1: FOR-Schleifen in Reihe A:12

Q:Geben Sie eine allgemeing¨ultige Formel zur Berechnung der totalen Anzahl von Durchl¨aufen f¨ur aufeinanderfolgende Schleifen an. (Verwenden Sie dabei die variablen ’N’ und ’M’ zur Darstellung der oberen Grenzen beider Schleifen.) A:N + M

(2)

Programmiertechnik 1 FOR-SCHLEIFEN

1.2 FOR-Schleifen verschachtelt

Q:Wie oft wird hier das * Zeichen ausgegeben?

1 i n t i , j ;

2 f o r ( i = 0 ; i < 5 ; i ++) {

3 f o r ( j = 0 ; j < 3 ; j ++) {}

4 System . o u t . p r i n t ( ”∗” ) ;

5 }

6 }

Listing 2: FOR-Schleifen verschachtelt (1) A:15

Q: Definieren Sie auch hier eine allgemeing¨ultige Formel zur Berechnung der Anzahl von Durchl¨aufen bei verschachtelten Schleifen.

A:N * M

1 i n t i , j ;

2 f o r ( i = 0 ; i <= 5 ; i ++) {

3 f o r ( j = 0 ; j< 3 ; j ++) {

4 System . o u t . p r i n t ( ”∗” ) ;

5 }

6 }

Listing 3: FOR-Schleifen verschachtelt (2)

Q:Wie verh¨alt es sich bei diesem Beispiel mit der Anzahl der * Zeichen?

A:18

(3)

Programmiertechnik 1 FOR-SCHLEIFEN

1.3 FOR-Schleifen mit abh¨ angigem Index

Bei dem n¨achsten Beispiel handelt es sich um eine zweifach verschachtelte FOR- Schleife. Bei diesen Schleifen ist die Anzahl der inneren Schleifendurchl¨aufe von dem jeweiligen Wert der ¨ausseren Laufvariable ’i’ abh¨angig.

Q:Wie oft wird hierbei das Zeichen * ausgegeben?

1 i n t i , j ;

2 f o r ( i = 0 ; i < 5 ; i ++) {

3 f o r ( j = 0 ; j < i ; j ++) {

4 System . o u t . p r i n t ( ”∗” ) ;

5 }

6 }

7 System . o u t . p r i n t ( ”\n ” ) ;

Listing 4: FOR-Schleifen mit abh¨angigem Index A:10

Q:Wie lautet bei diesem Beispiel die allgemeing¨ultige Form?

A:(N∗(N−1))/2

1.4 FOR-Schleifen reverse generieren

Beispiel 1:

Q:Gegeben ist die Ausgabe im Listing 5. ¨Uberlegen Sie sich wie ein entspre- chendes Programm aussieht, das diese Tannenbaum Ausgabe produziert.

1

2 ∗ ∗ ∗

3 ∗ ∗ ∗ ∗ ∗

4 ∗ ∗ ∗ ∗ ∗ ∗ ∗

5 ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗

Listing 5: Reverse Beispiel 1

(4)

Programmiertechnik 1 FOR-SCHLEIFEN

A:

1 i n t h e i g h t = 5 ;

2 f o r ( i n t h = 0 ; h < h e i g h t ; h++) {

3 f o r ( i n t i = −h e i g h t ; i < h e i g h t ; i ++) {

4 i f ( i <−h | | i > h ) {

5 System . o u t . p r i n t ( ” ” ) ;

6 } e l s e {

7 System . o u t . p r i n t ( ”∗ ” ) ;

8 }

9 }

10 System . o u t . p r i n t l n ( ” ” ) ;

11 }

Listing 6: Loesung Beispiel 1 Beispiel 2:

Q:Gesucht ist wieder ein Programm zu der Ausgabe im Listing 7. (Tipp: Z¨ahlen sie zun¨achst die Anzahl der * Zeichen und suchen Sie einen Zusammenhang.)

1 ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗

2 ∗ ∗ ∗ ∗

3

4 5

6 ∗ ∗ ∗ ∗

7 ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗

Listing 7: Reverse Beispiel 2 A:

1 f o r ( i n t i = −3; i <=3; i ++) {

2 i n t s q u a r e = i ∗ i ;

3 f o r ( i n t j = 0 ; j < s q u a r e ; j ++) {

4 System . o u t . p r i n t ( ”∗ ” ) ;

5 }

6 System . o u t . p r i n t l n ( ” ” ) ;

7 }

Listing 8: Loesung Beispiel 2

(5)

Programmiertechnik 2 WHILE-SCHLEIFEN

2 WHILE-Schleifen

2.1 WHILE-Schleifen analysieren

Q:Wie oft wird die Schleife in dem Beispiel durchlaufen?

1 i n t i = 1 ;

2 w h i l e ( i <= 4 ) {}

3 System . o u t . p r i n t l n ( i + ” t e r S c h l e i f e n d u r c h g a n g ” ) ;

4 i += 1 ;

5 }

Listing 9: Einfache WHILE-Schleife A:4

Q:Welchen Wert hat i bei der ersten bzw. der letzten Ausgabe?

A:1 / 4

2.2 Inkrement und Dekrement Operator

Q:Der Inkrement (++) oder Dekrement (- -) Operator kann sowohl vor als auch nach einer Variablen stehen. Welche Auswirkungen hat dies bei einem Vergleich wie beispielsweise im Kopf einer WHILE-Schleife?

A: Steht die Anweisung vor der Variablen, so handelt es sich um ein Praein- krement bzw. Praedekrement. Die Anweisung wird dabei vor dem Vergleich durchgef¨uhrt. Steht der Operator nach der Variablen handelt es sich hingegen um ein Post In- bzw. Dekrement. Die Anweisung wird hierbei erst nach dem Vergleich ausgef¨uhrt.

Q:Wie oft wird demnach die folgende Schleife durchlaufen?

1 i n t i = 0 ;

2 w h i l e ( i++<= 4 ) {

3 System . o u t . p r i n t l n ( i + ” t e r S c h l e i f e n d u r c h g a n g ” ) ;

4 }

Listing 10: WHILE-Schleife mit Inkrement Operator A:5

Q: Welchen Wert hat i bei der ersten bzw. der letzten Ausgabe? Warum ist das so?

(6)

Programmiertechnik 2 WHILE-SCHLEIFEN

A: 1 / 5 (Da die Variable nach dem Vergleich erh¨oht wird ¨uberschreitet sie die obere Grenze.)

Q: Andern Sie den linken Teil der Bedingung so ab das nur die Werte 1-4¨ ausgegeben werden.

A:

1 i n t i = 0 ;

2 w h i l e ( ++i <= 4 ) {

3 System . o u t . p r i n t l n ( i + ” t e r S c h l e i f e n d u r c h g a n g ” ) ;

4 }

Listing 11: Loesung WHILE-Schleife mit Inkrement

2.3 Transformation von FOR-Schleifen

Q:Andern Sie das Beispiel in eine WHILE-Schleife mit der selben Funktiona-¨ lit¨at um.

1 f o r ( i =6; i>0; i−=2){

2 System . o u t . p r i n t l n ( i ) ;

3 }

Listing 12: WHILE-Schleifen Beispiel A:

1 i n t i = 6 ;

2 w h i l e ( i > 0 ) {

3 System . o u t . p r i n t l n ( i ) ;

4 i−=2;

5 }

Listing 13: Loesung WHILE-Schleifen Beispiel

(7)

Programmiertechnik 2 WHILE-SCHLEIFEN

2.4 WHILE-Schleifen Reverse generieren

Q:Schreiben Sie ein Programm mit geschachtelten WHILE-Schleifen, welches die im Listing 14 dargestellte Ausgabe produziert.

1 1 1 1 1

2 2 4 16 256

3 3 9 81 6561

Listing 14: Reverse Beispiel (WHILE) A:

1 i n t i = 0 ;

2 w h i l e ( ++i <= 3 ) {

3 i n t j = 0 ;

4 i n t s q u a r e = i ;

5 w h i l e ( j++< 4 ) {

6 System . o u t . p r i n t ( s q u a r e + ” ” ) ;

7 s q u a r e ∗= s q u a r e ;

8 }

9 System . o u t . p r i n t l n ( ” ” ) ;

10 }

Listing 15: Loesung Reverse Beispiel (WHILE)

(8)

Programmiertechnik 3 DO-SCHLEIFEN

3 DO-Schleifen

Q:Vergleichen wir eine WHILE und eine DO Schleife. In beiden Schleifen wird genau das selbe gemacht. Beschreiben Sie kurz den grunds¨atzlichen Unterschied zwischen den beiden Schleifenarten.

A:Bei einer DO-Schleife wird die Bedingung erst am Ende des Code-Kontextes

¨uberpr¨uft. Der Code wird also in jedem Fall mindestens einmal ausgef¨uhrt. Bei einer WHILE-Schleife kann dies durch die Bedingung zu Beginn verhindert wer- den.

3.1 DO-Schleifen analysieren

Q:Welche Ausgabe erzeugt das folgende Programm? Ist es eine Endlosschleife?

1 i n t i = 1 0 ;

2 do {

3 System . o u t . p r i n t l n ( i ) ;

4 i = 5 ;

5 } w h i l e ( i < 5 ) ;

Listing 16: DO-Schleifen Beispiel A:10 / NEIN

3.2 Transformation von WHILE-Schleifen

Das Programm in Listing 17 ¨uberpr¨uft, ob eine eingegebene Zahl durch 3 teilbar ist.

Q:Optimieren Sie das Programm mit Hilfe einer DO-Schleife.

1 i n t r e s t , e i n g a b e ;

2 S t r i n g f r a g e = ”Geben S i e e i n e durch 3 t e i l b a r e Z a h l e i n : ’ ’ ;

3 e i n g a b e = GraphicIO . r e a d I n t e g e r ( f r a g e ) ;

4 r e s t = e i n g a b e % 3 ;

5 w h i l e ( r e s t != 0 ) {

6 System . o u t . p r i n t l n ( ” S c h l e i f e n d u r c h l a u f ” ) ;

7 e i n g a b e = GraphicIO . r e a d I n t e g e r ( f r a g e ) ;

8 r e s t = e i n g a b e % 3 ;

9 }

10 System . o u t . p r i n t l n ( e i n g a b e + ” i s t durch 3 t e i l b a r ” ) ; Listing 17: Schlechte WHILE-Schleife

(9)

Programmiertechnik 3 DO-SCHLEIFEN

A:

1 i n t r e s t , e i n g a b e ;

2 S t r i n g f r a g e = ”Geben S i e e i n e durch 3 t e i l b a r e Z a h l e i n : ’ ’ ;

3 4 do {

5 System . o u t . p r i n t l n ( ” S c h l e i f e n d u r c h l a u f ” ) ;

6 e i n g a b e = GraphicIO . r e a d I n t e g e r ( f r a g e ) ;

7 r e s t = e i n g a b e % 3 ;

8 } w h i l e ( r e s t != 0 ) ;

9 System . o u t . p r i n t l n ( e i n g a b e + ” i s t durch 3 t e i l b a r ” ) ; Listing 18: Loesung Schlechte WHILE-Schleife

(10)

Programmiertechnik 4 IF-ANWEISUNGEN

4 IF-Anweisungen

Aufgaben zu Bedingungen in IF-Anweisungen gibt es bereits im Aufgabenteil zu logischen Ausdr¨ucken. Daher wollen wir uns im Folgenden n¨aher mit den Ver- zweigungen von IF-Anweisungen mit Hilfe des ELSE Statements besch¨aftigen.

In einem Programm sollen in Abh¨angigkeit einer Variablen “personenanzahl”

unterschiedliche Ausgaben produziert werden.

Q:Entwerfen Sie ein Programm, welches ab einer Gruppengr¨oße von ¨uber 10 Personen eine Ausgabe macht, mit den Worten:

“Die maximale Gruppengr¨oße von 10 Personen ist erreicht!”

Den Wert der Gruppengr¨oße enth¨alt die Variable personenanzahl. Fragen Sie den Benutzer ¨uber das bekannte Dialogfenster nach der Gruppengr¨oße.

A:

1 S t r i n g f r a g e = ”Geben S i e d i e G r u p p e n g r o e s s e an : ” ;

2 i n t e i n g a b e = GraphicIO . r e a d I n t e g e r ( f r a g e ) ;

3 i f ( e i n g a b e > 10 ) {

4 System . o u t . p r i n t l n ( ” Die maximale G r u p p e n g r o e s s e von 10 P e r s o n e n i s t e r r e i c h t ! ” ) ;

5 }

Listing 19: Loesung IF-Anweisung 1

Q: Erweitern Sie das Programm nun so, dass es ansonsten die Nachricht:

“Gruppengr¨oße OK” ausgibt.

A:

1 S t r i n g f r a g e = ”Geben S i e d i e G r u p p e n g r o e s s e an : ” ;

2 i n t e i n g a b e = GraphicIO . r e a d I n t e g e r ( f r a g e ) ;

3 i f ( e i n g a b e > 10 ) {

4 System . o u t . p r i n t l n ( ” Die maximale G r u p p e n g r o e s s e von 10 P e r s o n e n i s t e r r e i c h t ! ” ) ;

5 } e l s e {

6 System . o u t . p r i n t l n ( ” G r u p p e n g r o e s s e OK. ” ) ;

7 }

Listing 20: Loesung IF-Anweisung 2

(11)

Programmiertechnik 4 IF-ANWEISUNGEN

Q:Erweitern Sie das Programm abermals um eine Bedingung. ¨Uberpr¨ufen Sie zun¨achst, ob die eingegebene Gruppengr¨oße ¨uberhaupt g¨ultig ist. G¨ultig ist sie nur dann, wenn sie im ZahlenraumN+ liegt. Machen Sie im Fehlerfall eine entsprechende Ausgabe.

A:

1 S t r i n g f r a g e = ”Geben S i e d i e G r u p p e n g r o e s s e an : ” ;

2 i n t e i n g a b e = GraphicIO . r e a d I n t e g e r ( f r a g e ) ;

3 i f ( e i n g a b e > 0 ) {

4 i f ( e i n g a b e > 10 ) {

5 System . o u t . p r i n t l n ( ” Die maximale G r u p p e n g r o e s s e von 10 P e r s o n e n i s t e r r e i c h t ! ” ) ;

6 } e l s e {

7 System . o u t . p r i n t l n ( ” G r u p p e n g r o e s s e OK. ” ) ;

8 }

9 } e l s e {

10 System . o u t . p r i n t l n ( ” U n g u e l t i g e G r u p p e n g r o e s s e ! ” ) ;

11 }

Listing 21: Loesung IF-Anweisung 3

(12)

Programmiertechnik 5 SWITCH-ANWEISUNGEN

5 SWITCH-Anweisungen

5.1 SWITCH-Anweisung Beispiel

Gegeben ist das Programm unten mit einer SWITCH-Anweisung. Der Benutzer wird nach einer Eingabe gefragt und je nach dem erfolgt eine andere Ausgabe.

Q: In der Tabelle unten sind verschiedene Eingaben beispielhaft vorgegeben.

Welche Ausgaben werden jeweils von dem Programm erzeugt? Schreiben Sie die Ausgabe in die Zelle unter der Beispieleingabe.

A:

Eingabe: 1 2 3 4 5

Ausgabe: Rest 2 3 4 Rest

1 S t r i n g f r a g e = ”Geben S i e e i n e Z a h l z w i s c h e n 1 und 5 e i n ” ;

2 i n t e i n g a b e = GraphicIO . r e a d I n t e g e r ( f r a g e ) ;

3 s w i t c h ( e i n g a b e ) {

4 c a s e 2 : System . o u t . p r i n t ( ”2” ) ;

5 b r e a k ;

6 c a s e 3 : System . o u t . p r i n t ( ”3” ) ;

7 b r e a k ;

8 c a s e 4 : System . o u t . p r i n t ( ”4” ) ;

9 b r e a k ;

10 d e f a u l t : System . o u t . p r i n t ( ” R e s t ” ) ;

11 }

12 System . o u t . p r i n t ( ”\n” ) ;

Listing 22: SWITSCH Beispiel (1)

Das Programm aus Listing 22 wird nun etwas abge¨andert. Ein paar break Anweisungen wurden entfernt. Das ge¨anderte Programm ist im Listing 23 zu sehen.

Q: Wieder sind die Beispieleingaben vorgegeben und die Ausgaben dazu ge- fragt. F¨ullen Sie die Tabelle entsprechend aus.

A: Eingabe: 1 2 3 4 5

Ausgabe: Rest 23 3 4Rest Rest

(13)

Programmiertechnik 5 SWITCH-ANWEISUNGEN

1 S t r i n g f r a g e = ”Geben S i e e i n e Z a h l z w i s c h e n 1 und 5 e i n ” ;

2 i n t e i n g a b e = GraphicIO . r e a d I n t e g e r ( f r a g e ) ;

3 s w i t c h ( e i n g a b e ) {

4 c a s e 2 : System . o u t . p r i n t ( ”2” ) ;

5 c a s e 3 : System . o u t . p r i n t ( ”3” ) ;

6 b r e a k ;

7 c a s e 4 : System . o u t . p r i n t ( ”4” ) ;

8 d e f a u l t : System . o u t . p r i n t ( ” R e s t ” ) ;

9 }

10 System . o u t . p r i n t ( ”\n” ) ;

Listing 23: SWITSCH Beispiel (2)

5.2 R¨ omische Ziffern mit SWITCH-Anweisung

Q:Erstellen Sie ein Programm, das eine r¨omische Ziffern in arabische Zahlen transformiert. Dabei gilt die folgende Zuordnung:

R¨omisch Arabisch

I 1

V 5

X 10

L 50

C 100

Verwenden Sie dazu eine SWITCH-Anweisung und nutzen Sie den folgenden Programmcode zum Einlesen eines Zeichens.

1 i m p o r t j a v a . l a n g . S t r i n g ;

2 . . .

3 S t r i n g f r a g e = ” E i n e r o e m i s c h e Z i f f e r b i t t e : ” ;

4 S t r i n g e i n g a b e = GraphicIO . r e a d S t r i n g ( f r a g e ) ;

5 c h a r z i f f e r = e i n g a b e . charAt ( 0 ) ;

6 . . .

Listing 24: Code zum Einlesen eines Zeichens

(14)

Programmiertechnik 5 SWITCH-ANWEISUNGEN

A:

1 S t r i n g f r a g e = ” E i n e r o e m i s c h e Z i f f e r b i t t e : ” ;

2 S t r i n g e i n g a b e = GraphicIO . r e a d S t r i n g ( f r a g e ) ;

3 c h a r z i f f e r = e i n g a b e . charAt ( 0 ) ;

4 i n t a r a b = 0 ;

5 s w i t c h ( z i f f e r ) {

6 c a s e ’ I ’ : a r a b = 1 ; b r e a k ;

7 c a s e ’V ’ : a r a b = 5 ; b r e a k ;

8 c a s e ’X ’ : a r a b = 1 0 ; b r e a k ;

9 c a s e ’ L ’ : a r a b = 5 0 ; b r e a k ;

10 c a s e ’C ’ : a r a b = 1 0 0 ; b r e a k ;

11 }

12 System . o u t . p r i n t l n ( a r a b ) ;

Listing 25: Loesung Roemische Ziffern 1

Q:Andern Sie das Programm nun so ab, dass nicht nur Grossbuchstaben, son-¨ dern auch Kleinbuchstaben erkannt werden. Jedoch nicht indem Sie den einge- gebenen Buchstaben in einen grossen umwandeln, sondern mit Anpassungen in der SWITCH-Anweisung.

A:

1 S t r i n g f r a g e = ” E i n e r o e m i s c h e Z i f f e r b i t t e : ” ;

2 S t r i n g e i n g a b e = GraphicIO . r e a d S t r i n g ( f r a g e ) ;

3 c h a r z i f f e r = e i n g a b e . charAt ( 0 ) ;

4 i n t a r a b = 0 ;

5 s w i t c h ( z i f f e r ) {

6 c a s e ’ i ’ :

7 c a s e ’ I ’ : a r a b = 1 ; b r e a k ;

8 c a s e ’ v ’ :

9 c a s e ’V ’ : a r a b = 5 ; b r e a k ;

10 c a s e ’ x ’ :

11 c a s e ’X ’ : a r a b = 1 0 ; b r e a k ;

12 c a s e ’ l ’ :

13 c a s e ’ L ’ : a r a b = 5 0 ; b r e a k ;

14 c a s e ’ c ’ :

15 c a s e ’C ’ : a r a b = 1 0 0 ; b r e a k ;

16 }

17 System . o u t . p r i n t l n ( a r a b ) ;

Listing 26: Loesung Roemische Ziffern 2

(15)

Programmiertechnik 5 SWITCH-ANWEISUNGEN

5.3 Rundung mit SWITCH-Anweisung

Gesucht ist wieder ein Programm, welches mit Hilfe einer SWITCH-Anweisung die gegebene Aufgabenstellung l¨ost.

Q: Schreiben Sie ein Programm, welches eine eingegebene positive Zahl auf die Dezimalstelle rundet. Eingaben wie 11,12 oder 14 sollen die Zahl 10 liefern.

Eingaben wie 25,27 oder 29 werden hingegen auf 30 aufgerundet. Bei Zahlen wie 10, 20 oder 500 ist keine Rundung n¨otig. Verwenden Sie lediglich eine SWITCH- Anweisung. Fassen Sie dabei mehrere F¨alle geschickt zusammen. (HINWEIS: Es gibt eine optimale L¨osungen mit nur einem break Statement)

A:

1 S t r i n g f r a g e = ”Geben S i e e i n e p o s i t i v e Z a h l e i n : ” ;

2 i n t e i n g a b e = GraphicIO . r e a d I n t e g e r ( f r a g e ) ;

3 i n t g e r u n d e t = e i n g a b e ;

4 i n t r e s t = e i n g a b e %10;

5 s w i t c h ( r e s t ) {

6 c a s e 5 :

7 c a s e 6 :

8 c a s e 7 :

9 c a s e 8 :

10 c a s e 9 : g e r u n d e t += (10−r e s t ) ; b r e a k ;

11 d e f a u l t : g e r u n d e t −= r e s t ;

12 }

13 System . o u t . p r i n t l n ( g e r u n d e t ) ;

Listing 27: Loesung Rundung

Referenzen

ÄHNLICHE DOKUMENTE

Die Größe des Vermessungsbereiches der Niederen Geodäsie wird durch Flächenstücke der Erdoberfläche gegeben, innerhalb deren die Erdoberfläche für Lagemessungen

gesellschaft für Ihre Mieterinnen und Mieter, ein Betrieb für seine Mitarbeitenden oder ein Club für seine Mitglieder.. Ganz

Q: Entwerfen Sie ein Programm, welches ab einer Gruppengr¨ oße von ¨ uber 10 Personen eine Ausgabe macht, mit den Worten:.. “Die maximale Gruppengr¨ oße von 10 Personen

∙ Maispoulardenbrust mit Kräuterschaum, Bärlauchrisotto und konfierte Tomaten 24 Frühling ∙ Kürbisravioli mit Nussbutter und frittiertem Salbei (vegi) 24 Herbst.

Wir freuen uns sehr, dass wir für die Saison 2021/2022 nach langer Zeit wieder eine D-Jugend in Krogaspe planen können und auch,.. wenn es erst nicht so aussah, werden wir aufgrund

Herausgeber und Redaktion freuen sich einerseits über zufriedene Leser und andererseits, dass sie es immer wieder geschafft haben, ein neues Heft mit interes- santem Inhalt

Durch die Methode wird jeder animiert kurz etwas zu sagen. Vielredner dagegen haben kaum eine Chance, das Gespräch zu

Wildhasenrückenfilet und Damwildkeule aus hiesiger Jagd mit gefüllter Preiselbeerbirne, Waldpilzen, Rotkohl,. Rosenkohl und Kartoffelkroketten