Strukturierte Programmierung Uebungen: Unterschied zwischen den Versionen

Aus CCWiki
Zur Navigation springen Zur Suche springen
Zeile 172: Zeile 172:
}}
}}


=== Stringmanipulation ===
Eingabe
 
Lies mit Hilfe des berühmten Scanners einen String des Benutzers ein. Und gib diesen aus.
 
Lies mit Hilfe des berühmten Scanners eine Zahl (int) des Benutzers ein. Und gib diese aus.
a) Wird keine Zahl eingegeben kann das Programm abstürzen
b) Frag die Benutzer_in solange nach einer Zahl, bis diese auch wirklich eine eingeben hat, das Programm darf bei Fehleingabe nicht abstürzen
 
Erstelle einen Taschenrechner. Lies mit Hilfe des berühmten Scanners vom Benutzer zuerst eine Zahl, dann den Operator (+,-,*,^,/), dann wieder eine Zahl ein. Lies nun Fließkommazahlen ein. Nach dem einlesen führe die gewünschte Rechenoperation aus. Fehleingaben sollen erneut gefragt werden.
 
Erweitere den Taschenrechner so, dass die Benutzer_in nach der Berechnung gefragt wird, ob erneut eine Berechnung durchgeführt werden soll. Falls nein, beende das Programm (nicht mit System.exit(0));
 
Arrays
 
Erstelle ein Integer Array und befülle es mit Zufallszahlen von 0 bis 100 und gib es mithilfe einer foreach-Schleife aus. Tip.: (Random random = new Random(); random.nextInt[Upper bound])
 
Erstelle ein Integer Array und befülle es mit Zufallszahlen von -50 bis 50 und gib es mithilfe einer foreach-Schleife aus.
 
Bubblesort
Erstelle ein Integer Zufallsarray und sortiere es mit einem selbsterstellten Bubblesort Algorithmus und gib es aus.
 
Erstelle ein Float Zufallsarray und sortiere es mit einem selbsterstellten Bubblesort Algorithmus und gib es aus.
 
Verwende das gegebene String Array und sortiere es mit einem selbsterstellten Bubblesort Algorithmus und gib es aus. Tip.: (Strings können mit der Instanz Methode compareTo der String Klasse verglichen werden: "a".compareTo("b"))
String[] names = new String[]{"Plamena", "Sadaaq", "Eray", "Gerri", "Stefan", "Lena", "Danny", "Ömer", "Stjepan", "Sandro", "Bartosz", "Ingo", "Rauan", "Mahir", "Lukas", "Niklas", "Gyula"};
 
String Operationen
 
Regex replace und split
 
Datenströme

Version vom 15. Oktober 2021, 18:36 Uhr

Übungsaufgaben

Im folgenden finden sich verschiedene Übungsaufgaben für den Bereich der Strukturierten Programmierung in Java.

Übungsaufgaben Strukturierte Programmierung

Schleifen

Aufgabe 1)

Zähle in einer Schleife von 0 bis inklusive 10 und gib die Zahlen aus.

  1. Verwende dazu eine for-Schleife
  2. Verwende dazu eine while-Schleife und erstelle eine separate Zählvariable

Aufgabe 2)

Zähle in einer Schleife von 0 bis inklusive 10 gib nur jede gerade Zahl aus.

  1. Verwende um zu prüfen ob es eine gerade Zahl ist den Modulo Operator
  2. Modifiziere die Zählvariable so, dass die Zählvariable nur jede gerade Zahlen enthält

Aufgabe 3)

Zähle in einer Schleife rückwärts von 10 bis inklusive -10 und gib die Zählvariable aus.

Aufgabe 4)

Zähle in einer Schleife von 0 bis exklusive 10 und gib die Zählvariable aus.

Methoden

Wähle immer einen sinnvollen Methodennamen der beschreibt was die Methode macht und überlege dir Rückgabewert und Übergabeparameter gut. Teste deine Methoden ausgiebig. Wenn eine Methode mehr als nur einen Zweck erfüllt überlege ob sie in weitere Methoden unterteilt werden kann.

Aufgabe 1)

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

Aufruf:

printChars("x", 10);

Ausgabe:

xxxxxxxxxx

Aufgabe 2)

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

Aufruf:

printSquare(10, "x");

Ausgabe:

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

Aufruf:

printSquare(3, "A");

Ausgabe:

AAA
A A
AAA

Aufgabe 3)

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 4)

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 5)

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 6)

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

Eingabe

Lies mit Hilfe des berühmten Scanners einen String des Benutzers ein. Und gib diesen aus.

Lies mit Hilfe des berühmten Scanners eine Zahl (int) des Benutzers ein. Und gib diese aus. a) Wird keine Zahl eingegeben kann das Programm abstürzen b) Frag die Benutzer_in solange nach einer Zahl, bis diese auch wirklich eine eingeben hat, das Programm darf bei Fehleingabe nicht abstürzen

Erstelle einen Taschenrechner. Lies mit Hilfe des berühmten Scanners vom Benutzer zuerst eine Zahl, dann den Operator (+,-,*,^,/), dann wieder eine Zahl ein. Lies nun Fließkommazahlen ein. Nach dem einlesen führe die gewünschte Rechenoperation aus. Fehleingaben sollen erneut gefragt werden.

Erweitere den Taschenrechner so, dass die Benutzer_in nach der Berechnung gefragt wird, ob erneut eine Berechnung durchgeführt werden soll. Falls nein, beende das Programm (nicht mit System.exit(0));

Arrays

Erstelle ein Integer Array und befülle es mit Zufallszahlen von 0 bis 100 und gib es mithilfe einer foreach-Schleife aus. Tip.: (Random random = new Random(); random.nextInt[Upper bound])

Erstelle ein Integer Array und befülle es mit Zufallszahlen von -50 bis 50 und gib es mithilfe einer foreach-Schleife aus.

Bubblesort Erstelle ein Integer Zufallsarray und sortiere es mit einem selbsterstellten Bubblesort Algorithmus und gib es aus.

Erstelle ein Float Zufallsarray und sortiere es mit einem selbsterstellten Bubblesort Algorithmus und gib es aus.

Verwende das gegebene String Array und sortiere es mit einem selbsterstellten Bubblesort Algorithmus und gib es aus. Tip.: (Strings können mit der Instanz Methode compareTo der String Klasse verglichen werden: "a".compareTo("b")) String[] names = new String[]{"Plamena", "Sadaaq", "Eray", "Gerri", "Stefan", "Lena", "Danny", "Ömer", "Stjepan", "Sandro", "Bartosz", "Ingo", "Rauan", "Mahir", "Lukas", "Niklas", "Gyula"};

String Operationen

Regex replace und split

Datenströme