DCV 2023 09/Strukturierte Programmierung Uebungen/Methoden & Schleifen

Aus CCWiki
Version vom 4. März 2023, 09:47 Uhr von Drlue (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Wähle immer einen '''sinnvollen Methodennamen''' der beschreibt was die Methode macht und überlege dir '''Rückgabewert''' und '''Übergabeparameter''' gut. Teste deine Methoden ausgiebig. Überlege auch immer gut, was du alles in Methoden auslagern kannst. Es macht dir die Übungen leichter. Wenn du es als sinnvoll erachtest, greife auf Methoden von anderen Übungen zu (aber schreib sie zumindest einmal selbst). === Aufgabe: Print Characters === Erst…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Wähle immer einen sinnvollen Methodennamen der beschreibt was die Methode macht und überlege dir Rückgabewert und Übergabeparameter gut. Teste deine Methoden ausgiebig. Überlege auch immer gut, was du alles in Methoden auslagern kannst. Es macht dir die Übungen leichter.

Wenn du es als sinnvoll erachtest, greife auf Methoden von anderen Übungen zu (aber schreib sie zumindest einmal selbst).

Aufgabe: Print Characters

Erstelle eine Methode die eine bestimmte Anzahl parameterisierbarer Zeichen einer Zeile ausgibt.

Aufruf:

printChars("x", 10);

Ausgabe:

xxxxxxxxxx

Aufgabe: Print Square

Erstelle eine Methode welche ein Quader mit variabler Größe und mit angegebenem Zeichen ausgibt.

Aufruf:

printSquare("x", 10);

Ausgabe:

xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx

Aufgabe: Print Rectangle

Erstelle eine Methode welche ein Viereck mit variabler Größe und mit angegebenem Zeichen ausgibt.

Aufruf:

printRect("x", 10, 3);

Ausgabe:

xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx

Aufgabe: Print Trinangle (1)

Erstelle eine Methode welche ein Dreieck mit variabler Größe und mit angegebenem Zeichen ausgibt.

Aufruf:

printTriangleBottomLeft("x", 4);

Ausgabe:

x
xx
xxx
xxxx

Aufgabe: Print Trinangle (2)

Erstelle eine Methode welche ein Dreieck mit variabler Größe und mit angegebenem Zeichen ausgibt.

Aufruf:

printTriangleTopLeft("x", 5);

Ausgabe:

xxxxx
xxxx
xxx
xx
x

Aufgabe: Print Trinangle (3)

Erstelle eine Methode welche ein Dreieck mit variabler Größe und mit angegebenem Zeichen ausgibt.

Aufruf:

printTriangleTopRight("x", 5);

Ausgabe:

xxxxx
 xxxx
  xxx
   xx
    x

Aufgabe: Print Trinangle (4)

Erstelle eine Methode welche ein Dreieck mit variabler Größe und mit angegebenem Zeichen ausgibt.

Aufruf:

printTriangleBottomRight("x", 5);

Ausgabe:

#Diese Zeile gehört nicht zur Ausgabe! Leider verhaut es mir die Formatierung wenn die erste Zeile mit einem Leerzeichen beginnt :-|
    x
   xx
  xxx
 xxxx
xxxxx

Aufgabe: Print Empty Square

Erstelle eine Methode welche ein Quader mit variabler Größe und mit angegebenem Zeichen ausgibt.

Aufruf:

printEmptySquare("x", 10);

Ausgabe:

xxxxxxxxxx
x        x
x        x
x        x        
x        x
x        x
x        x
x        x
x        x
xxxxxxxxxx

Aufruf:

printEmptySquare("A", 3);

Ausgabe:

AAA
A A
AAA

Aufgabe: Print Slash

Erstelle eine Methode welche eine Diagonale von variabler Größe und mit angegebene Zeichen ausgibt, weiters soll der Parameter backslash angegeben werden können. Wenn backslash wahr ist, soll die Diagonale von rechts Unten nach Links Oben gehen, ansonsten umgekehrt.

Aufruf:

printSlash("x", 3, true);

Ausgabe:

x
 x
  x

Aufruf:

printSlash("y", 4, false);

Ausgabe:  

#Diese Zeile gehört nicht zur Ausgabe! Leider verhaut es mir die Formatierung wenn die erste Zeile mit einem Leerzeichen beginnt :-|
   y
  y
 y
y

Aufgabe: Print Triangle

Erstelle eine Methode welche ein Dreick von variabler Größe und mit angegebene Zeichen ausgibt. Dabei sollen die angegebene Größe die Höhe des Dreicks sein. Nimm an dass die Zahl immer Ungerade ist.

Aufruf:

printTriangle("x", 3);

Ausgabe:

#Diese Zeile gehört nicht zur Ausgabe! Leider verhaut es mir die Formatierung wenn die erste Zeile mit einem Leerzeichen beginnt :-|
  x
 x x
xxxxx

Aufruf:

printTriangle("x", 5);

Ausgabe:

#Diese Zeile gehört nicht zur Ausgabe! Leider verhaut es mir die Formatierung wenn die erste Zeile mit einem Leerzeichen beginnt :-|
    x
   x x
  x   x
 x     x
xxxxxxxxx

Aufruf:

printTriangle("x", 1);

Ausgabe:

x

Aufgabe: Print Rhombus

Erstelle eine Methode welche einen Rhombus von variabler Größe und mit angegebene Zeichen ausgibt. Die Größe soll dabei die Höhe des Rhombus sein.

  1. Löse das Problem wie es dir gefällt
  2. Löse das Problem mit nur zwei ineinander verschachtelten Schleifen

Aufruf: printRhombus("x", 7);

#Diese Zeile gehört nicht zur Ausgabe! Leider verhaut es mir die Formatierung wenn die erste Zeile mit einem Leerzeichen beginnt :-|
   x
  x x
 x   x
x     x
 x   x
  x x
   x

Aufgabe: Print X

Erstelle eine Methode welche ein X von variabler Größe und mit angegebene Zeichen ausgibt.

  1. Löse das Problem wie es dir gefällt
  2. Löse das Problem mit nur zwei ineinander verschachtelten Schleifen

Aufruf:

printX('x', 5);

Ausgabe:

x   x
 x x
  x
 x x
x   x

Aufgabe: Print Christmastree

Erstelle eine Methode welche einen Christbaum von variabler Größe ausgibt.

Teile das Problem in kleinere Probleme auf!

Aufruf:

printChristmasTree(9);

Ausgabe:

#Diese Zeile gehört nicht zur Ausgabe! Leider verhaut es mir die Formatierung wenn die erste Zeile mit einem Leerzeichen beginnt :-|
        *
       ***
      *****
     *******
    *********
   ***********
  *************
 ***************
*****************
O O O O O O O O O
      +++++
      +++++

Bonusaufgabe: Print circle Pythagoras

Erstelle eine Methode welche einen ausgefüllten Kreis von variabler Größe ausgibt. Der Radius des Kreises soll als Parameter übergeben werden können.

Verwende dazu den Satz des Pythagoras: a2 + b2 = c2

Aufruf:

printCirclePythagoras(10);

Ausgabe:

Eine Zeile des IntelliJ Terminals ist etwa 2.6 * höher als ein Zeichen breit ist, dadurch sieht die Ausgabe verzerrt aus.
#Diese Zeile gehört nicht zur Ausgabe! Leider verhaut es mir die Formatierung wenn die erste Zeile mit einem Leerzeichen beginnt :-|
      XXXXXXXXX     
     XXXXXXXXXXX    
   XXXXXXXXXXXXXXX  
   XXXXXXXXXXXXXXX  
  XXXXXXXXXXXXXXXXX 
 XXXXXXXXXXXXXXXXXXX
 XXXXXXXXXXXXXXXXXXX
 XXXXXXXXXXXXXXXXXXX
 XXXXXXXXXXXXXXXXXXX
 XXXXXXXXXXXXXXXXXXX
 XXXXXXXXXXXXXXXXXXX
 XXXXXXXXXXXXXXXXXXX
 XXXXXXXXXXXXXXXXXXX
 XXXXXXXXXXXXXXXXXXX
  XXXXXXXXXXXXXXXXX 
   XXXXXXXXXXXXXXX  
   XXXXXXXXXXXXXXX  
     XXXXXXXXXXX    
      XXXXXXXXX

Bonusaufgabe: Print circle Sinus + Cosinus

Erstelle eine Methode welche einen Kreis von variabler Größe ausgibt. Der Radius des Kreises soll als Parameter übergeben werden können.

Verwende dazu Math.sin(...) und Math.cos(...) um herauszufinden ob ein Punkt gezeichnet werden soll.

Aufruf:

printCircleSinCos(10);

Ausgabe:

Eine Zeile des IntelliJ Terminals ist etwa 2.6 * höher als ein Zeichen breit ist, dadurch sieht die Ausgabe verzerrt aus.
#Diese Zeile gehört nicht zur Ausgabe! Leider verhaut es mir die Formatierung wenn die erste Zeile mit einem Leerzeichen beginnt :-|
     **********     
    **        **    
  **            **  
  *              *  
 *                * 
**                **
*                  *
*                  *
*                  *
*                  *
*                  *
*                  *
*                  *
*                  *
**                **
 *                * 
  *              *  
  **            **  
    **        **    
     **********