DCV 2024 09/Selbstkontrolle Strukturierte Programmierung
Zeitlicher Ablauf
Geschätzte Zeit : 3-4 Stunden. (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen und dann behandeln kannst. Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.
Viel Spaß und Erfolg
Schleifen
Aufgabe 1)
Zähle in einer for-Schleife rückwärts von 10 bis inklusive 0 und gib jede Zahl aus.
Ausgabe
10 9 8 7 6 5 4 3 2 1 0
Aufgabe 2)
Zähle in einer for-Schleife von -30 bis inklusive 30 und gib jede Zahl aus die ohne Rest durch 3 teilbar ist.
Ausgabe
-30
-27
-24
...
24
27
30
Aufgabe 3)
Zähle mit Hilfe einer while-Schleife und einer separaten Zählvariable von 0 bis inklusive 10 und gib die Zahlen aus. Wenn die Zahl größer als 5 ist mach 2 Zeilenumbrüche.
Ausgabe
0
1
2
3
4
5
6
7
8
9
10
Methoden
Aufgabe 1)
Erstelle eine Methode welche einen String und einen int Parameter erhält. Der angegebene String soll so oft wie beim int angegeben, in einer Zeile wiederholt ausgegeben und mit einem Whitespace getrennt werden.
Aufruf
printLineStipple("X", 10);
Ausgabe
X X X X X X X X X X
Aufgabe 2)
Erstelle eine Methode welche einen String und einen int Parmeter erhält. Der angegebene String soll so oft wie beim int angegeben in einer eigenen Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein Linebreak.
Aufruf
printRowStipple("X", 3);
Ausgabe
X
X
X
Aufgabe 3)
Erstelle eine Methode welche einen String und einen int Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden Methoden aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen nicht neu geschrieben werden.
Aufruf
printStippleL("X", 3);
Ausgabe
X X X
X
X
X
Input
Aufgabe 1)
Lies einen String vom Benutzer ein (ganze Zeile) und einen int. Die Zahl besagt wie oft der String ausgegeben werden soll. Wird ein leerer String oder eine ungültiger int eingegeben, so soll die Eingabe erneut erfolgen.
Eingabe
Bitte geben Sie einen Text ein:
>> Heute wird ein guter Tag
Wie oft soll der Text ausgegeben werden:
>> 3
Ausgabe
Heute wird ein guter Tag
Heute wird ein guter Tag
Heute wird ein guter Tag
Aufgabe 2)
Es soll eine beliebige Zahl zwischen 0 und 100 mittels new Random().nextInt(...) gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.
Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.
Ausgabe
Willkommen beim super coolen Zahlen Ratespiel!
Errate die Zahl zwischen 0 und 100!
Gib die Zahl nun ein:
>>>4
Die Zahl ist zu niedrig!
>>>90
Die Zahl ist zu hoch!
>>>30
Die Zahl ist zu hoch!
>>>15
Du hast gewonnen!!!
Arrays
Aufgabe 1)
Ertelle jeweils eine Methode für Minimum (min), Maximum (max), und Durchschnitt (avg), welche den jeweiligen Wert für ein übergebenes int[] berechnet. Teste alle Methoden in der main Methode mit allen gegebenen int[] der Klasse.
Beispiel Aufruf
System.out.println("Minimum: " + getMin(arr));
Beispiel Ausgabe
Minimum: 0
Beispiel Aufruf
System.out.println("Maximum: " + getMax(arr));
Beispiel Ausgabe
Maximum: 23
Aufgabe 2)
Erstelle ein int[] und sortiere es mit einem selbsterstellten Bubblesort Algorithmus und gib es dann aus. Der Bubblesort Algorithmus soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der main Methode.
- Sortiere der Größe nach aufsteigend (Ascending)
- Sortiere der Größe nach absteigend (Descending)
Aufgabe 4)
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck. Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.
Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach Links und nach Oben.
Aufruf:
>>>10
1 1 1 1 1 1 1 1 1 1
1 2 3 4 5 6 7 8 9 10
1 3 6 10 15 21 28 36 45 55
1 4 10 20 35 56 84 120 165 220
1 5 15 35 70 126 210 330 495 715
1 6 21 56 126 252 462 792 1287 2002
1 7 28 84 210 462 924 1716 3003 5005
1 8 36 120 330 792 1716 3432 6435 11440
1 9 45 165 495 1287 3003 6435 12870 24310
1 10 55 220 715 2002 5005 11440 24310 48620
Kalender
Aufgabe 1)
Gib mit Hilfe der Calendar Api den Wochentag des aktuellen Tages inklusive Datum aus.
Ausgabe
DI 19.10.2021
Aufgabe 2)
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes SimpleDateFormat und erstelle eine 3 Zeilige Ausgabe:
- Nur das Datum
- Nur die Uhrzeit
- Datum und Uhrzeit
- Datum und Uhrzeit mit Zeitzone
- Die aktuelle Sekunde mit Millisekunde
String manipulation
Aufgabe 1)
Verwende den gegebenen String[] und sortiere es mit einem selbsterstellten Bubblesort Algorithmus und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der Bubblesort Algorithmus soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der main Methode.
- Sortiere die Namen nach Länge aufsteigend (Ascending)
- Sortiere die Namen nach Länge absteigend (Descending)
- Sortiere die Namen lexikographisch aufsteigend (Ascending)
- Sortiere die Namen lexikographisch absteigend (Descending)
Tip.: Strings können mit der Instanz MethodecompareToderStringKlasse verglichen werden:"a".compareTo("b")
String[] names = new String[]{"Furkan", "Aylin", "Thiemo", "Erik", "Akif", "Sandro", "Gyula", "Ölaf", "Ümit" };
Aufgabe 2)
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür text.toCharArray() für das Aufsplitten und new String(charArray) zum Zusammenfügen.
Ausgabe
Willkommen zum Reverseprogramm!!!111
>>>Hallo
ollaH
Aufagabe 3)
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:
String[] firstName = {"Alfonso", "Beatrix-Eleonor", "Cecil", "Daniel", "Elmar"};
String[] lastName = {"Klein", "Kinderdorfer", "Al Elmenar", "Schmidt", "Simma"};
int[] age = {40, 78, 5, 18, 81};
String[] place = {"Wien", "Schwarzach", "Wiener Neudorf", "Sankt Pölten", "Sankt Pölten"};
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};
Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.
Datenströme/Files
Aufgabe 1)
Mit der Hilfe von java.io.File soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.
Aufgabe 2)
Liste die Dateien in folgender Rheinfolge auf.
- Unterverzeichnisse
- Dateien nach Größe absteigend