3. Ubung Informatik B SS 04

Werbung
3.

Ubung
Informatik B
Klaus Kriegel
Aufgabe 1:
SS 04
Abgabe: 14.5.2004
Typumwandlungen
(2 + 2 + 2 Punkte)
Einzelabgabe f
ur Bioinformatiker!!
Zu den altesten kryptographischen Methoden zahlen die sogenannte Casar-Chiren. Dabei
wird jeder Buchstabe des Alphabets zyklisch um 3 Stellen nach hinten verschoben, d.h.
aus a wird d aus b wird e, : : : aus x wird a, aus y wird b und aus z wird c. Wir verallgemeinern das dahin gehend, dass um k Stellen verschoben wird. Zur Berechnung sollten die
Typumwandlungen von char in int und zuruck verwendet werden. Wir beschranken uns
auf Kleinbuchstaben, die dem Zahlenbereich von 97 (fur a) bis 122 (fur z) entsprechen.
a) Denieren Sie eine Funktion public char caesar(char c, int k) zur Umwandlung
einzelner Buchstaben (Verwenden Sie die Modulo Funktion %, es gibt 26 Buchstaben).
b) Lesen Sie einen String s und die Zahl k von der Kommandozeile ein, wandeln Sie die
Zeichen des Strings buchstabenweise um und geben Sie den umgewandelten String aus.
Die Lange von s erhalten Sie mit s.length() und das i-te Zeichen mit s.charAt(i).
c) Schreiben Sie eine Methode zur Dechirierung und testen Sie diese an selbst gewahlten
Beispielen.
Aufgabe 2:
Felder
(4 Punkte)

a) Schreiben Sie ein Java Programm Quadratmatrix.java, das bei Ubergabe von zwei
positiven ganzen Zahlen n und k ein quadratisches Schema der Groe n n zeilenweise
mit der sich zyklisch wiederholenden Folge 0; 1; 2; : : : ; k 1; 0; 1; : : : fullt. Geben Sie die
transponierte Matrix (bei der die Spalten zu Zeilen werden) auf den Bildschirm aus.
00 1 2 31
00 4 2 01
Hier das Beispiel fur
Das ist die
B
BB 1 5 3 1 C
n = 4 und k = 6:
4 5 0 1C
B
C
transponierte
@ 2 3 4 5 A Matrix:
@2 0 4 2C
A
Verwenden Sie intern ein
zweidimensionales Feld.
0 1 2 3
3 1 5 3
Aufgabe 3:
Klassen
(2 + 2 + 2 Punkte)
Wie Sie aus der Schulmathematik wissen, ist ein Polynom ein Ausdruck der Form
0
1
2
n
p(x) = a0 x + a1 x + a2 x + : : : + an x oder k
urzer p(x) = a0 + a1 x + a2 x2 + : : : + an xn .
a) Entwerfen Sie eine Klasse Polynom mit einem Feld coef von double-Werten zur Speicherung der KoeÆzienten a0 ; a1 : : : an . Implementieren Sie eine Methode, die den Wert des
Polynoms an der Stelle r bestimmt: public double eval(double r)
b) Fugen Sie den folgenden Konstruktor in Ihre Klasse ein:
public Polynom (double[] a)
f
this.coef = a;g
Implementieren Sie eine Methode main, die eine KoeÆzientenfolge beliebiger Lange von
der Kommandozeile ubernimmt und das entsprechende Polynom erzeugt. Geben Sie die
Werte an den Stellen 0 und 1 aus.
c) Implementieren Sie eine Methode public void zeroAt0and1() die nur die ersten zwei
KoeÆzienten andert und dabei ein Polynom erzeugt, dass an den Stellen 0 und 1 Nullstellen
hat.
Herunterladen