der_groesste_gemeinsame_teiler_ggt_-_m
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
der_groesste_gemeinsame_teiler_ggt_-_m [2024/01/13 10:34] – torsten.roehl | der_groesste_gemeinsame_teiler_ggt_-_m [2024/03/13 08:04] (aktuell) – torsten.roehl | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Der größte gemeinsame Teiler (ggT) - (M) ====== | ====== Der größte gemeinsame Teiler (ggT) - (M) ====== | ||
Schreiben Sie eine Klasse GGT, die eine Methode ggt hat. Dieser Methode sollen zwei ganzen Zahlen übergeben werden können. Sie gibt danach den größten gemeinsamen Teiler (ggT) zurück. | Schreiben Sie eine Klasse GGT, die eine Methode ggt hat. Dieser Methode sollen zwei ganzen Zahlen übergeben werden können. Sie gibt danach den größten gemeinsamen Teiler (ggT) zurück. | ||
+ | |||
+ | Schreiben Sie auch eine Klasse Main, in deren main-Methode, | ||
{{: | {{: | ||
- | | + | |
- | * "31.11.2010" | + | |
+ | * Der größte gemeinsame Teiler von 11 u. 7 ist 1 | ||
+ | * Der größte gemeinsame Teiler von 18 u. 12 ist 6 | ||
- | Schreiben Sie auch eine Klasse Main, in deren main-Methode die Klasse Datum getestet wird. | ||
- | {{: | ||
- | Format " | ||
{{: | {{: | ||
- | Um das Konzept der objektorientierten Programmierung besser zu verdeutlichen haben wir das eigentliche Problem in mehrere Teilschritte | + | Verwenden Sie den Euklidischen Algorithmus |
- | Auf eine Ausnahmebehandlung (Exception Handling) wurde hier bewusst verzichtet, d.h. wir gehen davon aus | + | |
- | das nur gültige Datumsangaben übergeben werden. | + | |
- | <Code Java linenums: | + | |
- | + | Beim euklidischen Algorithmus wird in aufeinanderfolgenden Schritten jeweils eine Division mit Rest durchgeführt, | |
- | private String getDay(String str){ | + | |
- | // todo | + | {{: |
- | | + | |
- | } | + | <Code > |
- | private String getMonth(String str){ | + | 1071 : 1029 = |
- | // todo | + | 1029 : 42 = 24 Rest 21 |
- | | + | 42 : 21 = |
- | } | + | |
- | private String getYear(String str){ | + | |
- | // todo | + | |
- | | + | |
- | } | + | |
- | public String monthAsString(String strDatum) { | + | |
- | + | ||
- | + | ||
- | | + | |
- | String m = getMonth(strDatum); | + | |
- | String y = getYear(strDatum); | + | |
- | | + | |
- | } | + | |
- | + | ||
- | } | + | |
</ | </ | ||
+ | Somit ist 21 der größte gemeinsame Teiler von 1071 und 1029. | ||
+ | |||
+ | Hier wird der euklidische Algorithmus mit Pseudocode beschrieben, | ||
+ | [[https:// | ||
+ | |||
+ | |||
+ | < | ||
+ | EUCLID_OLD(a, | ||
+ | |||
+ | wenn a = 0 | ||
+ | dann | ||
+ | sonst solange b ≠ 0 | ||
+ | wenn a > b | ||
+ | dann a = a - b | ||
+ | sonst b = b - a | ||
+ | return a | ||
- | Die Hauptklasse um die Klasse Datum zu testen. | ||
- | <Code Java linenums: | ||
- | |||
- | | ||
- | Datum datum = new Datum(); | ||
- | String text = datum.monthAsString(" | ||
- | System.out.println(text); | ||
- | } | ||
- | |||
- | } | ||
</ | </ | ||
Zeile 66: | Zeile 56: | ||
Wenn du wirklich überhaupt keine Idee hast ...:-?\\ | Wenn du wirklich überhaupt keine Idee hast ...:-?\\ | ||
- | Lösungsvorschlag [[MonthAsString-Solution]] | + | Lösungsvorschlag [[ggT-Solution]] |
der_groesste_gemeinsame_teiler_ggt_-_m.1705142079.txt.gz · Zuletzt geändert: 2024/01/13 10:34 von torsten.roehl