Java Übung 16 – Bestimme den größten gemeinsamen Teiler
Kategorie(n): Java Übungen
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
Kategorie(n): Java Konstruktor
Du kannst deinen Java Konstruktoren auch Objekte übergeben. Bisher haben wir in der Parameterliste lediglich primitive Datentypen übergeben.
Kategorie(n): Java Konstruktor, Java Programmierung
Der Name sagt es schon. Java Konstruktoren konstruieren oder bauen Java Objekte. Und diese Objekte baut der Konstruktor auf Vorlage der entsprechenden Java Klasse. In diesem Beitrag zeige ich dir natürlich verschiedene Ansätze wie du den Konstruktor einsetzt. Ich zeige dir dies Schritt für Schritt. Dabei zeige ich dir auch verschiedene Dinge, welche nicht funktionieren. […]
Kategorie(n): Eclipse
Du kennst das auch. Denn du bist ja fleißig. Und weil du so fleißig bist, hast du mitunter auch mehrere Java Projekte gleichzeitig laufen. Und dann kommt es vor, dass du enorm viele Java Projekte am Laufen hast. Und dein Package-Explorer wird extrem unübersichtlich. In diesem Beitrag möchte ich dir zwei Varianten vorstellen, wie du […]
Kategorie(n): Java String
Du kennst das. Es ist abends. Du sitzt gemütlich vor dem Fernseher. Das Smartphone bimmelt. Kein Anruf. Nein – Eine Nachricht. Du liest die Nachricht sofort und antwortest darauf. Minuten später bekommst du die nächste Nachricht. Und auch auf diese antwortest du. Im Laufe des Abends entsteht daraus eine nette kleine Konversation. Und eh du […]
Kategorie(n): Java Variablen
Java Konstanten – was kann man sich darunter vorstellen? Du kennst Konstanten in der Mathematik. Die Kreiszahl Pi ist so eine konstante Zahl. Diese Zahl ändert sich niemals. Sie beträgt immer rund 3,141592. In der Physik gelten die Lichtgeschwindigkeit, der Erdradius oder der absolute Nullpunkt als konstant. Selbst die Geschwindigkeit mit der sich die Erde […]
Kategorie(n): Java Übungen
In dieser Java Übung geht es um Objekte und es geht um Referenzvariablen. Es geht um den Zugriff auf Java Objekte durch mehr als eine Referenzvariable. Erstelle dazu eine Java Klasse, namens „ReferenzTest“. Dieser Klasse führt drei Instanzvariablen a, b und c, vom Datentyp Integer.
Kategorie(n): Java klassen
Die ganze Java Vererbung für bestimmte Klassen ausschließen bzw. verhindern oder verbieten. Was soll das? Für bestimmte Java Klassen soll die Vererbung ausgeschlossen werden. Es soll also verhindert werden, dass Elternklassen – Kindklassen bekommen können. Klingt ein bisschen wie Verhütung, oder? Denn wie auch im echten Leben, können Kinder zu kleinen Tyrannen werden. Sie bedienen […]
Kategorie(n): Java Konstruktor, Java Programmierung
Klassen sind Baupläne für Java Objekte. Java Konstruktoren sind ganz konkrete Baupläne für deine Objekte. In einen der letzten Beiträge zur Java Vererbung, habe ich dir gezeigt – wie du polymorphe Arrays anlegst. Dazu hatten wir das Beispiel mit den Kleidungsstücken. Spinnen wir dieses Beispiel einfach mal weiter und erstellen jetzt Hosen. Also dann – […]
Kategorie(n): Java Programmierung
Es wird Zeit für die erste Java Konsoleneingabe. Und diese Eingaben machst du über den Java Scanner. Was ist das? Der Scanner ist eine vorgefertigte Java Klasse, welche Java mit seiner API anbietet. Das heißt du musst nichts selbst erschaffen. Du musst nur wissen, wie du darauf zugreifst. Erst einmal musst du einen Scanner anlegen. […]
Kategorie(n): Java klassen
Im letzten Beitrag habe ich dir das Java Vererbung Konzept an einem Beispiel vorgestellt. In dem Beispiel-Rollenspiel gab es Klassen zu Helden und Superhelden. Ich habe dir die Vererbungshierarchien theoretisch erläutert. Jetzt geht es ans Praktische. In diesen Beitrag lernst du: Wie du bestehende Java Klassen erweiterst Wie du Objekte aus den erweiterten Klassen erstellen […]
Kategorie(n): Java Konstruktor
Es ist gemein. Wahrscheinlich hast den Beitrag zu den lokalen Variablen gelesen. Vielleicht hast du auch den Artikeln zum Anlegen und Überladen von Java Konstruktoren gelesen. Und wenn du die beschriebene Inhalte selbst ausprobiert hast…… Dann hast du dir wahrscheinlich sehr viele lokale Variablennamen für die Parameterliste ausdenken müssen.
Kategorie(n): Java Buch
Wenn du Java lernen möchtest, kannst du an meinem kostenlosen Java Kurs teilnehmen. Aber manch Einer hätte gern eine zweite Meinung. Und da bieten sich natürlich Java Bücher an. Eines dieser Java Bücher möchte ich dir jetzt vorstellen. Dieses Buch nennt sich „Java von Kopf bis Fuß“. Was kannst du von diesem Buch erwarten? Also […]