Skip to main content

Java Übung 16 – Bestimme den größten gemeinsamen Teiler

In dieser Java Übung möchte ich, dass du den größten gemeinsamen Teiler zwei Zahlen ermittelst.

Ich möchte, dass du das Ganze mit einer while-Schleife umsetzt.

Und wie?
Du legst eine neue Klasse „GGT“ (größter gemeinsamer Teiler) an.
In diese Klasse implementierst du eine Klassenmethode „berechneGGT“.
Diese erwartet zwei Argumente vom Datentyp Integer.

So und was macht die Methode?
Angenommen du übergibst der Methode zwei Werte (18 und 12).
Die Methode soll jetzt von diesen beiden Werten einen Startwert bestimmen.

Es bietet sich an den kleineren Wert zu wählen.
Und dann soll die Methode prüfen,

  • Ist 12 ein Teiler von 18? – wenn nicht dann eben 11
  • Ist 11 ein Teiler von 18?- wenn nicht dann eben 10
  • .
  • Ist 9 ein Teiler von 18?- Ja ist es. Ist 9 auch ein Teiler von 12- Ach nö…. Also weiter mit 8
  • .
  • Ist 6 durch 18 und durch 12 teilbar- Klasse wir haben einen Gewinner.

Der GGT wird dann als Bildschirmanzeige zurückgeben.

Also dann viel Spaß bei dieser Java Übung.

PS.
Java Übung – Bitte mit while Schleife lösen.


Um diese Java Übung zu lösen, muss erst einmal der Startwert ermittelt werden

Da der Teiler immer kleiner ist, als die Vielfachen- macht es Sinn bei der kleineren Zahl anzufangen.

Somit solltest du als Erstes feststellen, welche der Zahlen kleiner ist.
Und diese kleinere Zahl wird dann als Teiler gespeichert.
Also bei 18 und 12. Wäre dies die 12.
Also wäre der erste Teiler, welcher ausprobiert werden sollte die 12.

Und so würde der Java Code erst einmal aussehen.


public class GGT {
 
static void bestimmeGGT(int zahlEins, int zahlZwei){
int teiler;
if (zahlEins<=zahlZwei){
teiler=zahlEins;
}
else {
teiler=zahlZwei;
}
System.out.println(teiler);
}
 
public static void main(String[] args) {
bestimmeGGT(18,12);
}
}

In der Methode habe ich eine lokale Variable, namens „teiler“ implementiert.
Die Methode bekommt zwei Zahlen geliefert und prüft, welche Zahl kleiner ist.
Wenn Zahl1 kleiner ist, dann wird Zahl1 der Teiler.
Und ansonsten wird Zahl2 der Teiler.

Aus Kontrollzwecken lass ich mir schon einmal den Teiler als Bildschirmausgabe ausgeben.
Klicke auf „Run“ und probier es aus.

Und? Die richtige Zahl kommt zurück, oder?

Also machen wir weiter.
Jetzt kommt die while Schleife dazu.

Die while Bedingung sieht so aus:
(zahlEins % teiler !=0 || zahlZwei % teiler !=0)

Was macht diese jetzt?
Hier kommt der Modulo Operator ins Spiel.
Und zwar wird geprüft.

Wenn ZahlEins durch den Teiler geteilt wird – bleibt dann ein Rest?
Also wenn 18 durch 12 geteilt wird, bleibt dann ein Rest.
Ja klar 18 durch 12 ist 1 Rest 7.
Der Rest ist somit nicht Null. Der Ausdruck ist wahr bzw. true.

Nehmen wir Zahl 2.
Diese ist 12.
12 geteilt durch 12 ist 1. Rest 0.
Und 0 ist nicht das Gleiche wie ungleich Null.
Dieser Ausdruck ist somit falsch bzw. false.

Jetzt sind beide Ausdrücke miteinander verknüpft.
Und zwar durch ein logisches Oder.
Und true oder false ergibt true.
Somit ist die Schleifenbedingung true.

Und das ist das Startsignal für die while Schleife.
Denn solange die Schleifen-Bedingung true ist, springt das ganze Java Programm immer wieder in die Schleife.

Also sieht dann der komplette Java Code für dieses Programm so aus:


public class GGT {
 
static void bestimmeGGT(int zahlEins, int zahlZwei){
int teiler;
if (zahlEins<=zahlZwei){
teiler=zahlEins;
}
else {
teiler=zahlZwei;
}
while(zahlEins % teiler !=0 || zahlZwei % teiler !=0){
System.out.println("versuche: "+teiler);
teiler--;
}
System.out.println(teiler);
}
 
public static void main(String[] args) {
bestimmeGGT(18,27);
}
}

So was passiert in der Schleife?
Es wird eine Bildschirmausgabe erzeugt, welche den aktuellen Teiler zurückgibt.

Außerdem wird der Teiler bei jedem Durchlauf, um eins verringert.

Wenn der Teiler gefunden ist:
Die While Bedingung also false ist, springt das Java Programm nicht mehr in die Schleife.

Dann wird die Bildschirmausgabe außerhalb der Schleife zurückgeben.
Und diese beinhaltet jetzt den größten gemeinsamen Teiler.


Ähnliche Beiträge

Lassen wir Java rechnen – Die Rechenoperationen für Variablen

Java rechnen

Ich liebe Mathe. In der Biographie „Der Mann, der die Zahlen liebte“, stellt Paul Hoffmann das Mathematikgenie Paul Erdös vor. Erdös war eines der größten Genies des 20 Jahrhunderts. Er arbeitete mit zahlreichen Wissenschaftlern zusammen und verfasste durchschnittlich mehr Publikationen im Jahr, als andere Mathematiker im ganzen Leben. Da Erdös sich mit sehr vielen Theoremen […]

8 Java Datentypen, die du kennen solltest

Java Datentypen

Java Datentypen Ich gebe zu, ich hasse dieses Thema. Denn es ist eigentlich nichts weiter als graue Theorie. Dennoch müssen wir dieses Thema behandeln. Um schnell in das Thema zu kommen, stelle ich dir eine Übersicht aller primitiven Datentypen zur Verfügung. Wieso primitive? Es gibt außer den primitiven Datentypen, noch Referenztypen. Und diese Referenztypen sind […]

So nutzt du die While Schleife in deinem Java Programm

Java While Schleife

Manchmal ist es wichtig, Dinge einmal öfter zu tun. Bei der Java Programmierung kann es schonmal sein, dass du einen Code mehrfach ausführen lassen musst. Zum Beispiel die Zahlen eins bis zehn. Ein Java Programm, welches die Zahlen eins bis zehn wiedergibt. Na wie wäre das? Der Java Code dazu würde so aussehen: public class […]

Das Java Leben ist einfacher mit For-Schleife

Java For Schleife Aufbau

In einem anderen Artikeln habe ich bereits über Schleifen in Java gesprochen. In diesem Artikel möchte ich dir eine ganz besondere Schleife vorstellen. Warum ist diese so toll? Sie hat einen integrierten Schleifenzähler. Die Schleife zählt also bei jedem Durchlauf automatisch mit. Aber dazu gleich mehr…. Lass uns einmal so eine For Schleife anlegen.

So verwendest du in Java try und catch Blöcke

Java try und catch

Ich bereue lieber die Dinge, die ich getan habe – als die Dinge, welche ich gar nicht erst versucht habe. Ja ich würde mich als den typischen „try-and-error-Menschen“ bezeichnen. Was ich will, probiere ich einfach aus und schaue dann erst was passiert. So etwas wie Pläne kenne ich eigentlich nicht. Und wenn ich mal einen […]

So kannst du zweidimensionale Java Arrays anlegen und nutzen

Java Arrays zweidimensional

Eines der bedeutendsten Instrumente in der Mathematik ist das Koordinatensystem. Die gedankliche Grundlage dieses Werkzeuges lieferte der französische Naturwissenschaftler und Philosoph Rene Descartes. Man muss sich einmal verdeutlichen, was dies für die damalige Zeit bedeutete. Bisher wurden mathematische Probleme lediglich durch Berechnungen gelöst. Denke an geometrische Figuren, wie Dreiecke und Vierecke. Der Umfang wurde lediglich […]

Java Übung 31: Speichere deine Würfe im Array

Java Übung Array Würfelspiel

In dieser Java Übung soll ein Würfelspiel simuliert werden. Lege eine Klasse namens, Würfelspiel an. Diese Klasse enthält eine statische Methode, namens würfeln(). Diese Methode erwartet einen Parameter vom Datentyp Integer, namens „anzahlWuerfe“. Diese Variable/Parameter repräsentiert die Anzahl der Würfe. Nachdem der Methode die Anzahl der Würfe übergeben wurde, soll die Methode Zufallszahlen zwischen 1 […]

So kannst du in den Java Klassen Attribute anlegen

Java Klassen Attribute

Die bisherigen Java Klassen in unserem Einführungsbeispiel besitzen noch keine Attribute. Das ändern wir und legen diese jetzt an. In diesem Beitrag erfährst du: Warum Variablen in deinen Klassen eine entscheidende Rolle spielen. Was es bedeutet eine Variable zu deklarieren. Wo du Attribute in den Java Klassen anlegen darfst und wo nicht. Wie du durch […]

So kannst du in drei einfachen Schritten Java Arrays dynamisch vergrößern

Java Arrays vergrößern

Es ist der 31.März 1727. Es ist ein Montag. Die Welt nimmt Abschied von einem sehr bedeutenden Weltveränderer. Seine Sichtweisen beeinflussen, heute noch, die Forschung und Entwicklung im Bereichen der Physik und Chemie. Ja selbst unser aller Leben – unsere Sicht auf die alltäglichen Dinge – wurden durch seine Denkstöße revolutioniert. Dieser große Vorreiter starb […]