Ü B U N G 6
Aufgabe 1
Gegeben sei folgende Main-Methode, in der 3 Arrays mit Werten
belegt werden:
public static void main(String[] args) {
int[] linear = fillLinear(100);
int[] quadrat = fillQuadrat(100);
int[] kubik = fillKubik(100);
printArray(linear);
printArray(quadrat);
printArray(kubik);
}
int[] linear
enthält 100 Zahlen von 1 bis 100
int[] quadrat
enthält 100 Zahlen von 1² bis 100²
int[] kubik
enthält 100 Zahlen von 1³ bis 100³
Implementieren Sie alle Methoden (Funktionen), die nötig sind, damit die oben angegebene Main-Methode korrekt ablaufen kann.
Download der Lösung (Array.java)
Aufgabe 2
Ein bekanntes Problem in der Informatik ist die Mustererkennung.
Bei der Mustererkennung wird nach bestimmten vordefinierten
Zeichensequenzen in einem längeren Text gesucht.
Implementieren Sie eine Methode
public static int findeNullFolgen(int[] array)
in welcher ein übergebenes int-Array nach Nullfolgen untersucht
werden soll. Die Anzahl gefundener Nullfolgen soll zurückgegeben
werden.
Definition Nullfolge:
- eine Nullfolge besteht nur aus Nullen
- das Zeichen, das der Nullfolge vorangeht bzw. folgt ist eine 1
Beispiel:
0000100100100111001001100
hat 7 Nullsequenzen.
Download der Lösung (Nullfolgen.java)
Aufgabe 3
Schreiben Sie eine Java-Methode, die einen byte-Wert (8 bit)
als Eingabeparameter erwartet und diesen Wert in Binärdarstellung
auf dem Bildschirm ausgibt.
Schreiben Sie eine zweite
Methode, mit der gleichen Funktionalität der ersten Methode, die
aber nun einen int-Wert (32 bit) als Eingabeparameter erwartet.
Als Grundlage für Ihr Programm kann der folgende Code
verwendet werden: public class U6b_1 {
public static void main(String[] args) {
byte b = 8; // beliebige Zahl, die mit 8 bit darstellbar ist
int i = 8; // beliebige Zahl, die mit 32bit darstellbar ist
printBinary(b);
printBinary(i);
}
public static void printBinary(byte byteValue) {
// soll implementiert werden
}
}
Wichtig: Benutzen Sie für Ihre Implementierung
ausschließlich Bit-Operatoren und keine arithmetischen Operationen!
Download der Lösung (U6_3.java)
Aufgabe 4
Erweitern Sie Ihr Programm aus Aufgabe 1 nun so, dass Sie über
die Kommandozeile beim Programmstart bestimmen können, welche Zahlen
ausgegeben werden sollen.
Über die Parameter "-b" und "-i"
(auf die jeweils eine Zahl folgen muss) soll gesteuert werden, ob
die folgende Zahl als byte- oder als int-Wert angesehen werden soll.
Es soll möglich sein, dass beliebig viele Zahlen als Parameter
an das Programm übergeben werden können. Dabei muss die Reihenfolge
von byte- und int-Werten beliebig sein können.
Möglicher
Programmaufruf: java U6_4 -b 5 -i 23 -i 9 -b 12 -i 288
Mögliche Ausgabe des Programms: (byte) 5 in Binärdarstellung:
00000101
(int) 23 in Binärdarstellung:
00000000000000000000000000010111
(int) 9 in Binärdarstellung:
00000000000000000000000000001001
(byte) 12 in Binärdarstellung:
00001100
(int) 288 in Binärdarstellung:
00000000000000000000000100100000
Tipp: Sie kennen bereits eine Methode, Strings
in int-Werte umzuwandeln. Um aus einem String einen byte Wert zu
erhalten, können Sie analog vorgehen:
byte b = Byte.parseByte("8");
Download der Lösung (U6_4.java)