Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » JAVA-Programm » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Zum Ende der Seite springen JAVA-Programm
Beiträge zu diesem Thema Autor Datum
 JAVA-Programm Kuboudy 02.12.2009 21:15
 RE: JAVA-Programm psychophoniac 24.12.2009 17:15

Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Kuboudy
Grünschnabel


Dabei seit: 02.12.2009
Beiträge: 2

JAVA-Programm Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Implementieren Sie nach dem Beispiel der vorgegebenen Java-Klasse Sum1 eine neue Klasse KGV, welche zunächst (in einer Methode ggt) den Euklidischen Algorithmus zur Bestimmung des größten gemeinsamen Teilers möglichst originalgetreu in Java umsetzt und darauf aufbauend (in einer weiteren Methode kgv) das kleinste gemeinsame Vielfache zweier Zahlen ermitteln kann.
Das Prinzip des euklidischen Algorithmus wird auch gegenseitige Wechselwegnahme genannt. Eingangsgrößen sind zwei natürliche Zahlen a und b. Bei der Berechnung verfährt man nach Euklid wie folgt:

1. Setze m = a; n = b.
2. Ist m < n, so vertausche m und n.
3. Berechne r = m - n.
4. Setze m = n, n = r.
5. Ist r ungleich 0, so fahre fort mit Schritt 2.

Nach Ablauf des Verfahrens hat man mit m den ggT von a und b gefunden.

Überzeugen Sie sich durch geeignete Tests von der Korrektheit Ihrer Implementation.

Benutzen Sie die Methode ggt,um eine weitere Methode kgv zu implementieren, die das kleinste gemeinsame Vielfache zweier Zahlen in Anwendung des allgemeinen mathematischen Zusammenhangs:

x * y = kgv(x, y) * ggt(x, y)

Ich weiß, dass das sicherlich ne total einfache Aufgabe is... aber ich komm irgendwie damit überhaupt noch nich klar, weil ich grad ganz frisch in die Informatik eingestiegen bin. Also wenn jemand Spaß am (kurzzeitigen) Programmieren hat, hoffe ich, dass er mir helfen kann. Vielen Dank

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Kuboudy: 02.12.2009 22:05.

02.12.2009 21:15 Kuboudy ist offline E-Mail an Kuboudy senden Beiträge von Kuboudy suchen Nehmen Sie Kuboudy in Ihre Freundesliste auf Fügen Sie Kuboudy in Ihre Kontaktliste ein
psychophoniac
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich empfehle dir, zunächst die folgende Seite durchzulesen:
<suche bei wikipedia nach ggT> ;)
(darf keine links posten)

Das Programm ist rekursiv geschrieben, das bedeutet die funktionen kgv und ggt rufen sich immer wieder selber auf, vll hattest du das schon, ansonsten siehe:
<suche bei google nach uni marburg rekursion, erstes ergebnis, ist ein pdf>

Ich hatte eine ähnliche Aufgabe, hier ist meine Lösung, ich denke die Taugt ganz gut.

[code]
/**
* Dieses Programm dient dazu, das kleinste gemeinsame vielfache (kgV)
* und den grössten gemeinsamen Teiler (ggT)
* von zwei Zahlen zu berechnen.
*
* @author psychophoniac (im matheboard, PM an mich dann kriegst du meine email für fragen)
*/

package kgv;
import java.util.Scanner;

public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Integer zahl1 = new Integer(1), zahl2 = new Integer(1);

Scanner scan = new Scanner(System.in);

//BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Bitte geben Sie Zahl 1 ein:");

//eingabe holen
zahl1 = Integer.parseInt(scan.next());

//eingabe2 holen
System.out.println("Bitte geben Sie Zahl 2 ein:");
zahl2 = Integer.parseInt(scan.next());

//kgv berechnen
System.out.println("Das kgV von " + Integer.toString(zahl1)
+ " und " + Integer.toString(zahl2)
+ " ist :"
+ Integer.toString(kgV(zahl1, zahl2)));

return; // fertig.

}

//grösster gemeinsamer teiler zweier zahlen > 0
private static int ggT(int a, int b)
{
if(a < 0)
a = Math.abs(a); //Math.abs(x) gibt den betrag x zurück
if(b < 0)
b = Math.abs(b);
if(b == 0) // Wenn b gleich 0
return a; // ggT gefunden
else
return ggT(b, a % b); // andernfalls weitersuchen
};

// das kgV ergibt sich aus folgender Formel:
//(abs a*b) / ggT(a,b) = kgV(a,b)
private static int kgV(int a, int b)
{
return (Math.abs(a * b) / ggT(a,b));
}

}
[/code]
24.12.2009 17:15
Baumstruktur | Brettstruktur
Gehe zu:
Informatiker Board » Themengebiete » Praktische Informatik » JAVA-Programm