PROGRAMMIERUNG 1 · LOKALES ÜBUNGSBLATT

Zusätzliches Übungsmaterial

Grundlagen der Programmierung

Übungsaufgaben zur Vorbereitung

22 Aufgaben · 11 Aufgabentypen · ohne Arrays

Bearbeitung

Bearbeiten Sie die Aufgaben in Java. Jede Aufgabe beschreibt eine eigenständige Methode oder, bei Aufgabe 22, zwei zusammengehörige Methoden. Übernehmen Sie die vorgegebenen Methodendeklarationen unverändert und versehen Sie alle Methoden mit public static. Die Methoden stehen innerhalb der Klasse App.

Beachten Sie die exakte Formatierung der Ein- und Ausgabe, wie in den Konsolenbeispielen verdeutlicht. Bei Methoden mit Rückgabewert zeigen die Beispielaufrufe, wie Sie das Ergebnis in main ausgeben können; die Aufgabenmethode selbst gibt dann nichts aus.

Die Aufgaben sind neu erstellt und orientieren sich an den bereitgestellten Übungsblättern und Vorlesungsfolien. Sie sind keine offiziellen Prüfungsaufgaben und keine Vorhersage des Midterms. Lösungen sind nicht enthalten.

Ziele

Inhaltsverzeichnis

Ein- und Ausgabe

Zeichenketten exakt ausgeben und Escape-Zeichen verwenden.

Aufgabe 1

Hello House

public static void printHouse()

Schreiben Sie eine Methode namens printHouse, welche das unten dargestellte Haus auf der Konsole ausgibt. Die Methode erhält keine Parameter und besitzt keinen Rückgabewert.

Übernehmen Sie alle Zeichen und Leerzeichen genau wie im Beispiel. Verwenden Sie zum Ausrichten ausschließlich Leerzeichen, keine Tabulatoren. Nach dem letzten Zeichen jeder Zeile erfolgt ein Zeilenumbruch. Fügen Sie weder Leerzeichen am Zeilenende noch eine zusätzliche Leerzeile ein. Es werden keine Daten eingelesen.

Zu erzeugende Ausgabe
      /\
     /  \
    /____\
    | [] |
    | __ |
    ||  ||
____||__||____

Aufgabe 2

Pfad im Rahmen

public static void printPathBox()

Schreiben Sie eine Methode namens printPathBox, welche den unten abgebildeten Rahmen samt Inhalt auf der Konsole erzeugt. Die Methode erhält keine Parameter und besitzt keinen Rückgabewert.

Die Breite beträgt einschließlich der beiden Randzeichen 24 Zeichen. Beachten Sie insbesondere die Backslashes im Pfad und die Anführungszeichen um Hello, Java!. Nach jeder Zeile folgt ein Zeilenumbruch. Hinter dem rechten Randzeichen stehen keine weiteren Leerzeichen. Verwenden Sie ausschließlich Leerzeichen zur Ausrichtung. Es werden keine Daten eingelesen.

Zu erzeugende Ausgabe
+----------------------+
| C:\Kurs\Java         |
| "Hello, Java!"       |
|                      |
| Ende                 |
+----------------------+

Orientierung: Übungsblatt 1 · Aufgaben 1 und 2

Literale und Datentypen

Datentypen passend wählen und einzelne Werte vor einer Addition umwandeln.

Aufgabe 3

Literale addieren

public static void literalTotal()

Gegeben sind die Literale 'B', 0x2A, 014, 25L, 6.9f und 2.75. Schreiben Sie eine Methode namens literalTotal und deklarieren Sie darin zu jedem Literal eine eigene Variable mit passendem Datentyp. Bestimmen Sie dazu den jeweiligen Typ anhand der Schreibweise des Literals und seines Suffixes.

Deklarieren Sie außerdem eine Variable sum vom Typ int. Wandeln Sie die Werte, bei denen dies erforderlich ist, jeweils vor der Addition in int um und speichern Sie die Summe in sum. Geben Sie ausschließlich diese Summe mit abschließendem Zeilenumbruch aus. Die Methode erhält keine Parameter, liest nichts ein und besitzt keinen Rückgabewert.

Zu erzeugende Ausgabe
153

Hinweis: Einige Variablen benötigen einen Type Cast. Die Summe soll nicht erst am Ende in einen Integer umgewandelt werden.

Aufgabe 4

Weitere Literale

public static void secondLiteralTotal()

Gegeben sind die Literale 'm', 0x1F, 021, 90L, 3.8f und 7.25. Schreiben Sie eine Methode namens secondLiteralTotal. Deklarieren Sie zu jedem Literal eine eigene Variable mit einem passenden Datentyp. Bestimmen Sie die Typen anhand der Literale und ihrer Suffixe.

Ermitteln Sie die Summe der Werte und speichern Sie diese in einer Variable sum vom Typ int. Erforderliche Umwandlungen zu int erfolgen an den einzelnen Werten vor der Addition. Geben Sie nur sum und einen abschließenden Zeilenumbruch aus. Die Methode erhält keine Parameter, liest nichts ein und besitzt keinen Rückgabewert.

Zu erzeugende Ausgabe
257

Hinweis: Beachten Sie die Schreibweise der Literale und ihre Suffixe. Verwenden Sie nötigenfalls einen Type Cast vor der Addition.

Orientierung: Übungsblatt 1 · Aufgabe 3

Einlesen und Rechnen

Scanner verwenden, Ergebnisse berechnen und Variablen verändern.

Aufgabe 5

Rechteck berechnen

public static void rectangle()

Schreiben Sie eine Methode namens rectangle, welche die Breite und die Höhe eines Rechtecks als ganze Zahlen von der Konsole einliest. Geben Sie vor dem Einlesen der Breite Width: und vor dem Einlesen der Höhe Height: aus. Verwenden Sie nur ein Scanner-Objekt.

Berechnen Sie anschließend die Fläche (Breite mal Höhe) und den Umfang (zweimal die Summe aus Breite und Höhe). Geben Sie beide Ergebnisse als ganze Zahlen im unten gezeigten Format aus. Es wird angenommen, dass Breite und Höhe jeweils zwischen 1 und 1000 liegen. Zusätzliche Prüfungen sind nicht erforderlich. Die Methode hat keine Parameter und keinen Rückgabewert.

Konsolenbeispiel
Width: 7
Height: 4
Area: 28
Perimeter: 22

Text in Rot = Benutzereingabe.

Weiteres Konsolenbeispiel
Width: 1
Height: 9
Area: 9
Perimeter: 20

Text in Rot = Benutzereingabe.

Aufgabe 6

Zahlen vertauschen

public static void swapValues()

Schreiben Sie eine Methode namens swapValues, welche zwei ganze Zahlen in die Variablen x und y einliest und deren Werte anschließend im Speicher vertauscht. Die Eingabeaufforderungen lauten x: und y: . Es wird angenommen, dass beide Zahlen einschließlich zwischen -1000 und 1000 liegen.

Verwenden Sie zum Vertauschen keine dritte Hilfsvariable für einen Zahlenwert. Geben Sie danach die Zeile After swap: sowie die neuen Werte von x und y im dargestellten Format aus. Auch wenn beide Zahlen gleich sind, sind die beiden Werte auszugeben. Die Methode erhält keine Parameter und besitzt keinen Rückgabewert.

Konsolenbeispiel
x: 14
y: -3
After swap:
x: -3
y: 14

Text in Rot = Benutzereingabe.

Weiteres Konsolenbeispiel
x: 5
y: 5
After swap:
x: 5
y: 5

Text in Rot = Benutzereingabe.

Hinweis: Verwenden Sie zum Vertauschen die Operatoren + und -.

Orientierung: Übungsblatt 1 · Aufgaben 4 und 5

Verzweigungen und Bedingungen

Bereiche unterscheiden und logische Bedingungen verknüpfen.

Aufgabe 7

Punkte beurteilen

public static String rating(int points)

Schreiben Sie eine Methode namens rating, welche eine übergebene ganzzahlige Punktezahl beurteilt. Der Parameter points enthält die erreichten Punkte. Liefern Sie abhängig von diesem Wert genau eine der folgenden Zeichenketten zurück; die Bereichsgrenzen sind jeweils eingeschlossen.

Die Methode liest nichts von der Konsole ein und gibt selbst nichts aus. Ihr Rückgabewert ist ein String. Auch Punkte außerhalb des gültigen Bereichs von 0 bis 100 müssen wie in der Tabelle angegeben behandelt werden.

PunkteRückgabewert
0 bis 49Fail
50 bis 79Pass
80 bis 100Good
kleiner als 0 oder größer als 100Invalid
Ausgabe der Beispielaufrufe
Beispielaufrufe in main
System.out.println(rating(49));
System.out.println(rating(80));
System.out.println(rating(101));
Fail
Good
Invalid

Aufgabe 8

Liefertag prüfen

public static boolean isDeliveryDay(int weekday, boolean holiday)

Ein Zustelldienst liefert von Montag bis Freitag, sofern der betreffende Tag kein Feiertag ist. Schreiben Sie eine Methode namens isDeliveryDay, welche entscheidet, ob an einem Tag geliefert wird.

Der Parameter weekday enthält den Wochentag mit 1 für Montag, 2 für Dienstag bis 7 für Sonntag. holiday ist genau dann true, wenn der Tag ein Feiertag ist. Liefern Sie true ausschließlich für einen Wochentag von 1 bis 5 ohne Feiertag zurück. Für Samstag, Sonntag und alle Wochentagswerte außerhalb von 1 bis 7 lautet der Rückgabewert false.

Die Methode besitzt keine Ein- oder Ausgabe auf der Konsole.

Ausgabe der Beispielaufrufe
Beispielaufrufe in main
System.out.println(isDeliveryDay(1, false));
System.out.println(isDeliveryDay(5, true));
System.out.println(isDeliveryDay(8, false));
true
false
false

Hinweis: Verwenden Sie logische Verknüpfungen für Ihre Auswertung.

Orientierung: Übungsblatt 1 · Aufgaben 6, 7 und 9

Fallauswahl mit switch

Einzelne Eingabewerte mit einem switch-Statement zuordnen.

Aufgabe 9

Rabattstufe

public static double discount(int level)

Schreiben Sie eine Methode namens discount, welche den Rabatt zu einer übergebenen Kundenstufe zurückliefert. level ist die ganzzahlige Kundenstufe. Die Zuordnung entnehmen Sie der Tabelle. Für jeden nicht angeführten Wert beträgt der Rabatt 0.0.

Der Rückgabewert ist ein double und bezeichnet den Rabatt als Anteil, nicht als Prozentzahl: 0.05 entspricht beispielsweise 5 Prozent. Die Methode liest nichts ein und gibt nichts auf der Konsole aus.

StufeRabatt
10.05
20.10
30.15
alle anderen Werte0.0
Ausgabe der Beispielaufrufe
Beispielaufrufe in main
System.out.println(discount(1));
System.out.println(discount(3));
System.out.println(discount(8));
0.05
0.15
0.0

Hinweis: Verwenden Sie bitte ein switch-Statement.

Aufgabe 10

Bearbeitungsdauer

public static int duration(char size)

Schreiben Sie eine Methode namens duration, welche für ein Paket die Bearbeitungsdauer in Minuten ermittelt. Der Parameter size ist ein einzelnes Zeichen für die Paketgröße. Die Methode liefert für die Großbuchstaben S, M und L die in der Tabelle angegebenen Werte zurück.

Bei jedem anderen Zeichen, auch bei den Kleinbuchstaben s, m und l, wird -1 zurückgegeben. Die Methode hat einen int-Rückgabewert und besitzt keine Ein- oder Ausgabe auf der Konsole.

PaketgrößeDauer in Minuten
'S'15
'M'25
'L'40
alle anderen Zeichen-1
Ausgabe der Beispielaufrufe
Beispielaufrufe in main
System.out.println(duration('M'));
System.out.println(duration('L'));
System.out.println(duration('s'));
25
40
-1

Hinweis: Verwenden Sie bitte ein switch-Statement.

Orientierung: Übungsblatt 1 · Aufgabe 8

Ziffern verarbeiten

Zahlen mit Division und Restwert zerlegen und Verarbeitungsschritte wiederholen.

Aufgabe 11

Ziffernprodukt

public static int digitProduct(int number)

Schreiben Sie eine Methode namens digitProduct, welche das Produkt aller Dezimalziffern einer übergebenen Zahl berechnet und als int zurückliefert. number liegt einschließlich zwischen 0 und 999999. Beispielsweise werden bei der Zahl 234 die Ziffern 2, 3 und 4 miteinander multipliziert.

Enthält die Zahl eine Ziffer 0, ist das Produkt 0. Für number gleich 0 ist ebenfalls 0 zurückzuliefern. Verwenden Sie zur Verarbeitung eine Schleife und rechnen Sie mit den Ziffern; eine Umwandlung der Zahl in einen String ist nicht erlaubt. Es erfolgt keine Ein- oder Ausgabe.

Ausgabe der Beispielaufrufe
Beispielaufrufe in main
System.out.println(digitProduct(234));
System.out.println(digitProduct(405));
System.out.println(digitProduct(0));
24
0
0

Hinweis: Verwenden Sie / und %, um die einzelnen Ziffern der Zahl zu bekommen.

Aufgabe 12

Wiederholte Ziffernsumme

public static int repeatedDigitSum(int number)

Schreiben Sie eine Methode namens repeatedDigitSum. Der Parameter number enthält eine positive ganze Zahl vom Typ int. Bilden Sie die Summe aller Dezimalziffern dieser Zahl. Wenn die so erhaltene Summe mehrstellig ist, wiederholen Sie denselben Vorgang mit der Summe. Beenden Sie die Wiederholung, sobald nur noch eine Ziffer übrig ist, und liefern Sie diese als int zurück.

Bei einer einstelligen Eingabe wird die Zahl unverändert zurückgeliefert. Für 9876 ergibt sich beispielsweise die Folge 9876 → 30 → 3. Verwenden Sie Schleifen und keine Umwandlung in einen String. Die Methode liest nichts ein und gibt nichts aus.

Ausgabe der Beispielaufrufe
Beispielaufrufe in main
System.out.println(repeatedDigitSum(9876));
System.out.println(repeatedDigitSum(999));
System.out.println(repeatedDigitSum(5));
3
9
5

Hinweis: Verwenden Sie / und % zur Verarbeitung der Ziffern.

Orientierung: Übungsblatt 1 · Aufgabe 10; Übungsblatt 2 · Aufgabe 6

Zählschleifen und Berechnungen

Werte in einem Bereich aufsummieren oder miteinander multiplizieren.

Aufgabe 13

Vielfache aufsummieren

public static int sumMultiples(int limit)

Schreiben Sie eine Methode namens sumMultiples, welche alle positiven ganzen Zahlen von 1 bis einschließlich limit betrachtet und die durch 3 teilbaren Zahlen aufsummiert. Liefern Sie die Summe als int zurück.

Der Parameter limit liegt einschließlich zwischen 0 und 1000. Ist limit kleiner als 3, gibt es keine passenden Zahlen und das Ergebnis ist 0. Verwenden Sie eine Schleife. Die Methode liest nichts ein und besitzt keine Konsolenausgabe.

Ausgabe der Beispielaufrufe
Beispielaufrufe in main
System.out.println(sumMultiples(10));
System.out.println(sumMultiples(3));
System.out.println(sumMultiples(0));
18
3
0

Aufgabe 14

Ungerade Zahlen multiplizieren

public static long oddProduct(int limit)

Schreiben Sie eine Methode namens oddProduct, welche alle ungeraden positiven ganzen Zahlen von 1 bis einschließlich limit miteinander multipliziert und das Produkt als long zurückliefert. Der Parameter limit liegt einschließlich zwischen 1 und 15.

Für limit gleich 7 sind somit 1, 3, 5 und 7 zu berücksichtigen. Für eine gerade Obergrenze endet das Produkt bei der unmittelbar davorliegenden ungeraden Zahl. Verwenden Sie eine Schleife. Die Methode liest nichts ein und gibt selbst nichts aus.

Ausgabe der Beispielaufrufe
Beispielaufrufe in main
System.out.println(oddProduct(7));
System.out.println(oddProduct(8));
System.out.println(oddProduct(1));
105
105
1

Orientierung: Vorlesung Schleifen · Countdown und Fakultät; Vorlesung Methoden · Summe im Bereich

Eingabefolgen und Validierung

Eingaben bis zu einem Endezeichen verarbeiten und gültige Werte auswerten.

Aufgabe 15

Kleinste Zahl

public static void smallestValue()

Schreiben Sie eine Methode namens smallestValue, welche die kleinste Zahl einer beliebig langen Eingabefolge positiver Zahlen ermittelt. Die Eingaben dürfen auch Gleitkommazahlen sein. Vor jedem Einlesen wird Value: ausgegeben.

Sobald 0 oder eine negative Zahl eingegeben wird, endet die Eingabe. Dieser letzte Wert gehört nicht zur auszuwertenden Folge. Geben Sie danach die kleinste der zuvor eingegebenen positiven Zahlen im Format Minimum: mit genau zwei Nachkommastellen aus.

Ist bereits die erste eingegebene Zahl kleiner oder gleich 0, geben Sie stattdessen ausschließlich die Ergebniszeile No values! aus. Die Methode erhält keine Parameter und besitzt keinen Rückgabewert. Es wird angenommen, dass ausschließlich gültige Zahlen eingegeben werden.

Konsolenbeispiel
Value: 8.4
Value: 3.25
Value: 5
Value: 0
Minimum: 3.25

Text in Rot = Benutzereingabe.

Konsolenbeispiel ohne positive Zahl
Value: -2
No values!

Text in Rot = Benutzereingabe.

Hinweis: Verwenden Sie etwa String.format oder System.out.printf, um genau zwei Nachkommastellen auszugeben.

Aufgabe 16

Punktedurchschnitt

public static void scoreStats()

Schreiben Sie eine Methode namens scoreStats, welche ganzzahlige Punktzahlen von 0 bis einschließlich 10 einliest. Die Eingabeaufforderung lautet vor jeder Eingabe Score: . Die Zahl -1 beendet die Eingabe und wird nicht als Punktzahl gezählt.

Bei allen anderen Zahlen außerhalb des Bereichs 0 bis 10 geben Sie Invalid score! aus und lesen anschließend die nächste Zahl ein. Ungültige Werte werden bei keiner Berechnung berücksichtigt. Die Punktzahl 0 ist dagegen ein gültiger Wert.

Nach dem Ende der Eingabe geben Sie den arithmetischen Mittelwert aller gültigen Punktzahlen mit genau zwei Nachkommastellen sowie die Anzahl der Punktzahlen mit dem Wert 10 aus. Verwenden Sie dafür die Ergebniszeilen Average: und Full scores: . Wurde keine gültige Punktzahl eingegeben, sind 0.00 beziehungsweise 0 auszugeben. Die Methode besitzt keine Parameter und keinen Rückgabewert; es werden ausschließlich ganze Zahlen eingegeben.

Konsolenbeispiel
Score: 10
Score: 0
Score: 12
Invalid score!
Score: 5
Score: -1
Average: 5.00
Full scores: 1

Text in Rot = Benutzereingabe.

Konsolenbeispiel ohne gültigen Wert
Score: -1
Average: 0.00
Full scores: 0

Text in Rot = Benutzereingabe.

Hinweis: String.format oder System.out.printf ermöglicht die Ausgabe auf zwei Nachkommastellen.

Orientierung: Übungsblatt 2 · Aufgaben 1 und 5

Verschachtelte Schleifen und Ausrichtung

Muster und Zahlen zeilenweise mit festgelegten Leerzeichen ausgeben.

Aufgabe 17

Rechtsbündige Rampe

public static void printRamp(int height)

Schreiben Sie eine Methode namens printRamp, welche eine rechtsbündige Rampe aus Pluszeichen ausgibt. Der Parameter height bestimmt die Anzahl der Zeilen und zugleich die Breite der letzten Zeile. In der ersten Zeile steht ein Pluszeichen, in jeder weiteren Zeile eines mehr. Alle Zeilen enden an derselben rechten Position.

Gültig sind Höhen von 1 bis einschließlich 12. Für andere Werte geben Sie nur Invalid height! mit einem Zeilenumbruch aus. Verwenden Sie für gültige Höhen verschachtelte Schleifen und ausschließlich Leerzeichen zur Ausrichtung. Hinter dem letzten Pluszeichen einer Zeile stehen keine Leerzeichen. Jede Zeile endet mit einem Zeilenumbruch; eine zusätzliche Leerzeile ist nicht auszugeben. Die Methode liest nichts ein und besitzt keinen Rückgabewert.

Ausgabe bei printRamp(4)
   +
  ++
 +++
++++
Ausgabe bei printRamp(0)
Invalid height!

Aufgabe 18

Zahlentabelle

public static void numberTable(int count, int columns)

Schreiben Sie eine Methode namens numberTable, welche die ganzen Zahlen von 1 bis einschließlich count in einer Tabelle auf der Konsole ausgibt. count ist die Anzahl der Zahlen, columns die maximale Anzahl der Zahlen pro Zeile. Es wird angenommen, dass count zwischen 1 und 50 und columns zwischen 1 und 9 liegt, jeweils einschließlich.

Beginnen Sie mit der Zahl 1 links in der ersten Zeile und setzen Sie die Nummerierung zeilenweise fort. Jede Zahl wird rechtsbündig in einem Feld der Breite 2 ausgegeben; danach folgt immer genau ein Leerzeichen, auch nach der letzten Zahl einer Zeile. Nach jeweils columns Zahlen beginnt eine neue Zeile.

Auch eine letzte unvollständige Zeile endet mit einem Zeilenumbruch. Diese Zeile wird nicht mit leeren Feldern aufgefüllt. Es folgt keine zusätzliche Leerzeile. Verwenden Sie verschachtelte Schleifen. Die Methode besitzt keinen Rückgabewert und liest nichts ein.

Ausgabe bei numberTable(7, 3)
 1  2  3 
 4  5  6 
 7 
Ausgabe bei numberTable(12, 4)
 1  2  3  4 
 5  6  7  8 
 9 10 11 12 

Hinweis: Nutzen Sie System.out.printf oder String.format zur zweistelligen Ausrichtung der Zahlen.

Orientierung: Übungsblatt 2 · Aufgaben 2 bis 4; Übungsblatt 3 · Aufgabe 1

Begrenzte Versuche und Zufallszahlen

Eine Eingabeschleife rechtzeitig beenden und Zahlen aus einem vorgegebenen Bereich erzeugen.

Aufgabe 19

Passwortversuche

public static void wordCheck(String password)

Schreiben Sie eine Methode namens wordCheck, welcher das richtige Passwort als String übergeben wird. Lesen Sie anschließend von der Konsole höchstens drei Wörter ein. Vor jedem Einlesen ist Word: auszugeben. Es wird angenommen, dass das übergebene Passwort und alle Eingaben jeweils nicht leer sind und keine Leerzeichen enthalten.

Stimmt eine Eingabe genau mit password überein, geben Sie Accepted! aus und beenden die Methode sofort. Groß- und Kleinschreibung sind zu beachten. Nach einer falschen Eingabe im ersten oder zweiten Versuch geben Sie Again! aus. Nach einer falschen Eingabe im dritten Versuch geben Sie ausschließlich Denied! aus. Ein richtiges Passwort im dritten Versuch wird noch akzeptiert.

Jede eingegebene Zeichenkette zählt als ein Versuch. Nach einem Erfolg oder nach dem dritten Versuch werden keine weiteren Wörter eingelesen. Die Methode besitzt keinen Rückgabewert.

Konsolenbeispiel für wordCheck("java")
Word: JAVA
Again!
Word: java
Accepted!

Text in Rot = Benutzereingabe.

Weiteres Beispiel für wordCheck("java")
Word: rot
Again!
Word: gruen
Again!
Word: gelb
Denied!

Text in Rot = Benutzereingabe.

Aufgabe 20

Gerade Zufallszahl

public static int randomEvenNumber()

Schreiben Sie eine Methode namens randomEvenNumber, welche bei jedem Aufruf zufällig eine gerade ganze Zahl von 2 bis einschließlich 20 erzeugt und als int zurückliefert. Die möglichen Ergebnisse sind somit 2, 4, 6, 8, 10, 12, 14, 16, 18 und 20; jeder dieser Werte muss erzeugt werden können.

Die Methode erhält keine Parameter und besitzt keine Ein- oder Ausgabe auf der Konsole. Rufen Sie die Methode zum Ausprobieren mehrmals in main auf und geben Sie dort die Rückgabewerte aus. Mehrere Aufrufe dürfen dieselbe Zahl liefern. Die unten gezeigte Zahlenfolge ist nur ein mögliches Beispiel und darf nicht fest im Programm hinterlegt werden.

Eine mögliche Ausgabe von vier Aufrufen
Beispielaufrufe in main
System.out.println(randomEvenNumber());
System.out.println(randomEvenNumber());
System.out.println(randomEvenNumber());
System.out.println(randomEvenNumber());
6
20
6
2

Hinweis: Verwenden Sie zur Erzeugung der Zufallszahl Math.random oder die Klasse Random.

Orientierung: Vorlesung Schleifen · Passwortversuche; Übungsblatt 3 · Aufgabe 3

Methoden verbinden

Parameter und Rückgabewerte nutzen sowie eine Methode aus einer anderen aufrufen.

Aufgabe 21

Teilbarkeit prüfen

public static boolean isMultiple(int value, int divisor)

Schreiben Sie eine Methode namens isMultiple, welche überprüft, ob value ein ganzzahliges Vielfaches von divisor ist. Beide Parameter sind ganze Zahlen vom Typ int. Ist divisor größer als 0 und lässt sich value ohne Rest durch divisor teilen, ist true zurückzuliefern. Andernfalls ist der Rückgabewert false.

Die Zahl value darf positiv, negativ oder 0 sein. Für divisor gleich 0 oder für einen negativen divisor muss false zurückgegeben werden; in diesen Fällen darf keine Division oder Restwertberechnung durch diesen Wert stattfinden. Die Methode liest nichts ein und gibt nichts aus.

Ausgabe der Beispielaufrufe
Beispielaufrufe in main
System.out.println(isMultiple(18, 6));
System.out.println(isMultiple(-18, 6));
System.out.println(isMultiple(0, 5));
System.out.println(isMultiple(18, 0));
true
true
true
false

Aufgabe 22

Vielfache im Bereich zählen

public static boolean divides(int value, int divisor)
public static int countMultiples(int start, int end, int divisor)

Schreiben Sie zunächst die Methode divides. Sie erhält einen Wert value und einen positiven Teiler divisor und liefert true zurück, wenn value restlos durch divisor teilbar ist; andernfalls false. Für diese Aufgabe sind ausschließlich positive Teiler zu berücksichtigen.

Schreiben Sie danach die Methode countMultiples. Diese erhält zwei Bereichsgrenzen start und end sowie den positiven Teiler divisor. Liefern Sie als int zurück, wie viele ganze Zahlen zwischen start und end einschließlich beider Grenzen durch divisor teilbar sind. Wenn keine passende Zahl vorkommt, ist 0 zurückzugeben.

Für die Parameter gilt 1 ≤ start ≤ end ≤ 1000 und 1 ≤ divisor ≤ 100. Zusätzliche Prüfungen sind nicht erforderlich. Die Methode countMultiples muss die Teilbarkeit durch Aufrufe Ihrer Methode divides prüfen. Keine der beiden Methoden liest etwas ein oder gibt etwas auf der Konsole aus.

Ausgabe der Beispielaufrufe
Beispielaufrufe in main
System.out.println(countMultiples(5, 20, 4));
System.out.println(countMultiples(8, 8, 4));
System.out.println(countMultiples(1, 2, 5));
4
1
0

Orientierung: Vorlesung Methoden · Parameter, return und Methodenaufrufe