Benutzer-Werkzeuge

Webseiten-Werkzeuge


der_groesste_gemeinsame_teiler_ggt_-_m

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
der_groesste_gemeinsame_teiler_ggt_-_m [2024/01/13 10:29] – angelegt torsten.roehlder_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 **Datum**die eine öffentliche (public) Methode **monthAsString** hat. Dieser Methode soll eine Zeichenkette (String) vom Format //"dd.mm.yyyy"// übergeben werden können.  Anschließend  liefert die Methode den Monat als String ausgeschrieben zurück.  Hierbei sollen führende Nullen der Tagesangabe entfernt werden und die Tagesangabe mit einen Punkt abschließen.+Schreiben Sie auch eine Klasse Mainin deren main-Methodedie Klasse GGT getestet wird.
  
 {{:inf:sample.gif?|}} {{:inf:sample.gif?|}}
-  "01.04.2010"  geht über in 1. April 2010  <color #c3c3c3>(hier wurde die führende Null entfernt)</color> + 
-  * "31.11.2010"  geht über in 31November 2010+  Der größte gemeinsame Teiler von 12 u3 ist 3 
 +  * Der größte gemeinsame Teiler von 11 u7 ist 1 
 +  * Der größte gemeinsame Teiler von 18 u12 ist 6
  
  
-Schreiben Sie auch eine Klasse Main, in deren main-Methode die Klasse Datum getestet wird. 
  
-{{:inf:hinweis.gif?|}} 
  
-Format "dd.mm.yyyy"  bedeutet, dass die ersten 2 Stellen gefolgt von einem Punkt. für den Tag belegt sind.  Die nächsten 2 Stellen gefolgt von einem Punkt sind durch den Monat belegt. Die letzen 4 Ziffern legen das Jahr fest. Hier steht **d**  für 'day', **m** steht für 'month' und **y** für 'year'. 
  
 {{:inf:tipp.gif?|}} {{:inf:tipp.gif?|}}
  
-Um das Konzept der objektorientierten Programmierung besser zu verdeutlichen haben wir  das eigentliche Problem in mehrere Teilschritte  zergliedert. Mehrere Teilschritte entsprechen  hier also mehreren Methoden (Funktionen). +Verwenden Sie den Euklidischen Algorithmus ([[https://de.wikipedia.org/wiki/Gr%C3%B6%C3%9Fter_gemeinsamer_Teiler|siehe Wikipedia]]), um den größten gemeinsamen Teiler zu ermitteln.
-Auf eine Ausnahmebehandlung (Exception Handlingwurde hier bewusst verzichtetd.h. wir gehen davon aus +
-das nur gültige Datumsangaben übergeben werden.+
  
-<Code Java linenums: >public class Datum { + 
-  +Beim euklidischen Algorithmus wird in aufeinanderfolgenden Schritten jeweils eine Division mit Rest durchgeführt, wobei der Rest im nächsten Schritt zum neuen Divisor wird. Der Divisor, bei dem sich der Rest 0 ergibt, ist der größte gemeinsame Teiler der Ausgangszahlen. 
-private String getDay(String str){ + 
- // todo +{{:inf:sample.gif?|}
- return ""; + 
- } +<Code > 
-private String getMonth(String str){ +1071 : 1029   Rest 42 
- // todo +1029 : 42   24  Rest 21 
- return ""; +42   : 21   =  2  Rest 0
- } +
-private String getYear(String str){ +
- // todo +
- return ""; +
- +
-public String monthAsString(String strDatum) { +
-         +
-  +
- String d getDay(strDatum); +
- String m getMonth(strDatum); +
- String y getYear(strDatum); +
- return  d+"." + m + y; +
- } +
-  +
-}+
 </Code> </Code>
 +Somit ist 21 der größte gemeinsame Teiler von 1071 und 1029.
 +
 +Hier wird der euklidische Algorithmus mit Pseudocode beschrieben, diesen Pseudocode haben wir für die  Lösung verwendet.
 +[[https://de.wikipedia.org/wiki/Euklidischer_Algorithmus]]
 +
 +
 +<Code   >
 +EUCLID_OLD(a,b)
 +
 +wenn   a = 0
 +dann   return b
 +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: >public class Main { 
-  
- public static void main(String[] args) { 
-  Datum datum = new Datum(); 
-  String text = datum.monthAsString("01.02.2010"); 
-  System.out.println(text); 
-  } 
-  
-} 
 </Code> </Code>
  
Zeile 67: 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.1705141792.txt.gz · Zuletzt geändert: 2024/01/13 10:29 von torsten.roehl