Sie sind auf Seite 1von 5

Programmierung I

Praktikum 4
Einfache Rechenoperationen und Schleifen
Allgemeine Hinweise
Lösungen der Aufgaben dieses Aufgabenblatts müssen über die Lernplattform abgegeben
werden, um Punkte für die Klausurzulassung zu erhalten.

Da die Lösungen automatisch überprüft werden, müssen die Spezifikationen und die
Ausgaben der Lösungen genauso eingehalten werden wie sie auf diesem Aufgabenblatt
definiert sind. Hierfür lassen sich die auf der Lernplattform verfügbaren Programmier-
Templates (Projekte) als Vorlage nutzen. Für die Abgabe laden Sie nur die Dateien hoch, die
die einzelnen Klassen enthalten, bitte nicht das gesamte Programmier-Template hochladen.

Es werden nur die Lösungen der Aufgaben bewertet, zu denen eine Punktzahl angegeben ist.
Für Aufgaben oder Aufgabenteile, die als Zusatzaufgaben gekennzeichnet sind, werden keine
Punkte vergeben. Die Bearbeitung ist dennoch sinnvoll für eine Vertiefung der Inhalt. Falls
Sie diese Aufgaben abgeben möchten, nutzen Sie hierfür separate Klassen und Dateien.

Details zu der Klausurzulassung, dem Ablauf des Praktikums und den Abgaben können dem
Leitfaden entnommen werden, der sich auf der Lernplattform befindet. Dort befinden sich
auch der Stundensonderplan und der Semesterterminplan.

Aufgabe 1 – Rechenoperationen mit ganzen Zahlen (1 Punkt)


In dieser Aufgabe sollen einfache Rechenoperationen angewandt werden.

a) Öffnen Sie mit Visual Studio Code (VSC) mit Java Extensions das Projekt Schleifen,
das sich in dem Zip-Archiv „Schleifen.zip“ auf der Lernplattform befindet. Öffnen Sie die
Java-Datei Rechnen.java in dem Java-Paket aufgaben/_01rechnen. Dieses
Paket muss ggf. erst aufgeklappt werden.

b) Definieren Sie in der main-Methode die folgenden Variablen.

int wertA;
int wertB;

Mithilfe der Scanner-Klasse sollen zwei ganze Zahlen von der Kommandozeile
eingelesen und in den oben definierten Variablen gespeichert werden.

Im Anschluss sollen in Abhängigkeit von den Eingaben die Ergebnisse der vier
Grundrechenarten ausgegeben werden. Für eine Beispiel-Eingabe soll die Ausgabe
folgendermaßen aussehen:

wertA: 8
wertB: 2
wertA + wertB = 10
Prof. Dr. Lehn, Prof. Dr. Igel, Prof. Dr. Menküc, Prof. Dr. Wöhrle
Programmierung I

wertA - wertB = 6
wertA * wertB = 16
wertA / wertB = 4

c) Testen Sie Ihr Programm mit möglichst vielen Eingabewerten und beheben Sie ggf.
Fehler.
d) Zusatzaufgabe (0 Punkte): Was fällt Ihnen bei den Ergebnissen der Division auf?

Aufgabe 2 – Teilbarkeit in einer Folge ganzer Zahlen (3


Punkte)
In dieser Aufgabe soll für jede Zahl einer Zahlenfolge ganzer Zahlen die Teilbarkeit durch 3
und durch 7 bestimmt werden.

a) Öffnen Sie mit Visual Studio Code (VSC) mit Java Extensions das Projekt Schleifen,
das sich in dem Zip-Archiv „Schleifen.zip“ auf der Lernplattform befindet. Öffnen Sie die
Java-Datei Foobar.java in dem Java-Paket aufgaben/_02foobar. Dieses Paket
muss ggf. erst aufgeklappt werden.

b) Definieren Sie in der main-Methode die folgende Variable, wodurch die größte Zahl in
der Folge aus ganzen Zahlen definiert wird.

int maxWert;

Mithilfe der Scanner-Klasse soll eine ganze Zahl von der Kommandozeile eingelesen
und in der oben definierten Variable gespeichert werden.

Im Anschluss soll mithilfe einer Schleife eine Folge ganzer Zahlen von 1 bis maxWert
erzeugt und auf der Kommandozeile ausgegeben werden. Hierbei sind die folgenden
Regeln zu beachten.
• Ist eine Zahl durch 3 teilbar, wird anstelle der Zahl „Foo“ ausgegeben.
• Ist eine Zahl durch 7 teilbar, wird anstelle der Zahl „Bar“ ausgegeben.
• Ist eine Zahl durch 3 und gleichzeitig durch 7 teilbar, wird anstelle der Zahl
„FooBar“ ausgegeben.
• Trifft keine dieser Regeln zu, wird die Zahl ausgegeben.
• Die Zahlen sind mit einem Komma und einem Leerzeichen voneinander getrennt.
Nach der letzten Zahl werden kein Komma oder Leerzeichen ausgegeben.

Hinweis: Für die Feststellung der Teilbarkeit ist die Nutzung der Modulo-Operation
sinnvoll, wodurch der Rest der ganzzahligen Division bestimmt wird. In Java kann die
Modulo-Operation durch das Zeichen % genutzt werden. Beispielergebnisse: 9 % 3 = 0, 62
% 9 = 8 oder 15 % 6 = 3.

Eine Beispielausgabe sieht folgendermaßen aus.

maxWert: 25
1, 2, Foo, 4, 5, Foo, Bar, 8, Foo, 10, 11, Foo, 13, Bar,
Foo, 16, 17, Foo, 19, 20, FooBar, 22, 23, Foo, 25

Prof. Dr. Lehn, Prof. Dr. Igel, Prof. Dr. Menküc, Prof. Dr. Wöhrle
Programmierung I

Hinweis: Zeilenumbrüche müssen nicht gesondert berücksichtigt werden. Bzgl. des


Zeilenumbruchs kann die Ausgabe auf Ihrem Gerät (etwas) anders aussehen.

c) Testen Sie Ihr Programm mit möglichst vielen Eingabewerten und beheben Sie ggf.
Fehler.

Aufgabe 3 – Quersumme einer ganzen Zahl (6 Punkt)


In dieser Aufgabe soll für eine Zahl die Quersumme bestimmt werden. Die Quersumme ist
die Summe der einzelnen Ziffern einer ganzen Zahl. Beispiele: Quersumme(19) = 10,
Quersumme (1111) = 4, Quersumme (2000) = 2.

a) Öffnen Sie mit Visual Studio Code (VSC) mit Java Extensions das Projekt Schleifen,
das sich in dem Zip-Archiv „Schleifen.zip“ auf der Lernplattform befindet. Öffnen Sie die
Java-Datei Checksum.java in dem Java-Paket aufgaben/_03checksum. Dieses
Paket muss ggf. erst aufgeklappt werden.

b) Definieren Sie in der main-Methode die int-Variable eingabe. Mithilfe der


Scanner-Klasse soll eine ganze Zahl von der Kommandozeile eingelesen und in
eingabe gespeichert werden.

Nun lässt sich die Quersumme unter Nutzung einer While-Schleife und der Modulo-
Operation (%) ermitteln. Negative Eingaben müssen nicht berücksichtigt werden.

Hinweis: Die Modulo-Operation liefert den Rest der ganzzahligen Division. In Java kann
die Modulo-Operation durch das Zeichen % genutzt werden. Beispielergebnisse: 9 % 3 =
0, 62 % 9 = 8 oder 15 % 6 = 3.

Eine Beispielausgabe soll folgendermaßen aussehen.

eingabe: 44139
Quersumme = 21

d) Testen Sie Ihr Programm mit möglichst vielen Eingabewerten und beheben Sie ggf.
Fehler.
e) Zusatzaufgabe (0 Punkte): Mithilfe der Quersumme lassen sich Prüfsummen (checksum)
ermitteln, beispielsweise für die Internationale Standardbuchnummer (ISBN), über die
jedes Buch verfügen muss. Entwickeln Sie ein Programm zur Ermittlung der Prüfziffer
einer ISBN.
f) Zusatzaufgabe (0 Punkte): Recherchieren Sie, wozu solche Prüfsummen in der
Informationstechnik genutzt werden.

Prof. Dr. Lehn, Prof. Dr. Igel, Prof. Dr. Menküc, Prof. Dr. Wöhrle
Programmierung I

Aufgabe 4 – Umwandlung einer arabischen Zahl in eine


römische Zahl (10 Punkt)
In dieser Aufgabe soll eine arabische Zahl eine römische Zahl umgewandelt werden.
Beispiele: 1  I, 2  II, 5  V, 6  VI.

a) Öffnen Sie mit Visual Studio Code (VSC) mit Java Extensions das Projekt Schleifen,
das sich in dem Zip-Archiv „Schleifen.zip“ auf der Lernplattform befindet. Öffnen Sie die
Java-Datei RoemZahlen.java in dem Java-Paket aufgaben/_04roem_zahlen.
Dieses Paket muss ggf. erst aufgeklappt werden.

b) Definieren Sie in der main-Methode die int-Variable arabischeZahl. Mithilfe der


Scanner-Klasse soll eine positive ganze Zahl von der Kommandozeile eingelesen und in
dieser Variable gespeichert werden.

Diese eingelesene Zahl kann unter Nutzung einer While-Schleife in eine römische
Ziffernfolge umgewandelt werden. Es sollen die folgenden Äquivalenzen genutzt werden:

• 1: I
• 5: V
• 10: X
• 50: L
• 100: C
• 500: D
• 1000: M

Es soll die Subtraktionsregel zur Anwendung kommen, dadurch wird beispielsweise 5 in


IV umgewandelt. Für die Aufnahme der römischen Zeichenfolge kann der Java-Datentyp
String genutzt werden. Alternativ lässt sich die Java-Klasse StringBuilder
verwenden. Erläuterungen hierzu finden sich unter
https://docs.oracle.com/en/java/javase/11/docs/api/

Beispielausgaben einer erfolgreichen Umwandlung sollen folgendermaßen aussehen:

arabischeZahl: 10
roemischeZahl = X

arabischeZahl: 35
roemischeZahl = XXXV

arabischeZahl: 235
roemischeZahl = CCXXXV

arabischeZahl: 99
roemischeZahl = XCIX

Hinweise: Erläuterungen zur römischen Zahlenschrift können unter


https://de.wikipedia.org/wiki/R%C3%B6mische_Zahlschrift nachgelesen werden.
Prof. Dr. Lehn, Prof. Dr. Igel, Prof. Dr. Menküc, Prof. Dr. Wöhrle
Programmierung I

c) Testen Sie Ihr Programm mit möglichst vielen Eingabewerten und beheben Sie ggf.
Fehler.

d) Zusatzaufgabe (0 Punkte): Vereinfachen Sie das Programm, so dass eine einfache


Umwand ohne die Nutzung der Subtraktionsregel zur Anwendung kommt.

e) Zusatzaufgabe (0 Punkte): Überlegen Sie, wie die Umwandlung einer römischen Zahl in
eine arabische Zahl erfolgen kann. Welche Schritte sind zu berücksichtigen, falls die
Subtraktionsregel nicht genutzt wird oder wenn sie genutzt wird?

Prof. Dr. Lehn, Prof. Dr. Igel, Prof. Dr. Menküc, Prof. Dr. Wöhrle

Das könnte Ihnen auch gefallen