Musterlösung 5.5 - Kettenbruch PDF

Title Musterlösung 5.5 - Kettenbruch
Author Juli Bi
Course Einführung in die objektorientierte Programmierung für die Wirtschaftsinformatik
Institution FernUniversität in Hagen
Pages 3
File Size 34 KB
File Type PDF
Total Downloads 92
Total Views 133

Summary

Musterlösung 5.5 - Kettenbruch...


Description

import java.util.Arrays;

public class Kettenbruch { // die lineare Darstellung des Kettenbruchs private int[] werte; /** * erzeugt einen Kettenbruch aus der linearen Darstellung * @param werte */ public Kettenbruch(int[] werte) { this.werte = werte; } /** * berechnet rekursiv den Wert des Kettenbruchs * @return den rekursiv berechneten Wert des Kettenbruchs, bei fehlenden Werten 0 */ public double werteRekursivAus() { // Sonderfall if (werte.length == 0) { return 0; } // rekursive Hilfsmethode aufrufen, Berechnung bei index 0 starten lassen return werteRekursivAus(0); } private double werteRekursivAus(int i) { // wenn der letzte Index erreicht wird, den Wert zurueckgeben, // da ein einelementiger Kettenbruch genau den Wert des einen Elements besitzt if (i == werte.length - 1) { return werte[i]; } // Ansonsten den restlichen Kettenbruch rekursiv auswerten und die entsprechende Summe bilden return werte[i] + 1/werteRekursivAus(i+1); } /** * berechnet iterativ den Wert des Kettenbruchs * @return den iterativ berechneten Wert des Kettenbruchs, bei fehlenden Werten 0 */ public double werteIterativAus() { // bei keinem Element wird 0 zurueckgeliefert if (werte.length == 0) { return 0; } // bei nur einem Element wird dieser Wert zurueckgeliefert if (werte.length == 1) { return werte[0]; } // der Startwert ist der Kehrwert des letzten Element double result = 1.0 / werte[werte.length - 1]; // alle Werte rueckwerts dazunehmen for (int i = werte.length - 2; i >= 1; i--) { // aktuellen Wert dazuaddieren und anschließend den Kehrwert bilden result = 1 / (werte[i] + result); } // den vordersten Wert ohne Kehrwert dazuaddieren return result + werte[0]; }

/** * approximiert den Wert der Quadratwurzel von 2 mit Hilfe der Kettenbruchdarstellung mit n Elementen * @param n die Anzahl der fuer die Approximation verwendeten Elemente * @return der approximierte Wert von Wurzel 2 */ public static double approximiereWurzel2(int n) { int[] folge = berechneWurzel2Folge(n); return new Kettenbruch(folge).werteIterativAus(); } /** * approximiert den Wert der eulerschen Zahl mit Hilfe der Kettenbruchdarstellung mit n Elementen * @param n die Anzahl der fuer die Approximation verwendeten Elemente * @return der approximierte Wert fuer die eulersche Zahl */ public static double approximiereE(int n) { int[] eFolge = berechneEFolge(n); return new Kettenbruch(eFolge).werteIterativAus(); } /** * berechnet die Folge fuer die Kettenbruch-Darstellung der Quadratwurzel von 2 mit den ersten n Elementen * @param n die Anzahl der Elemente * @return die Folge als Array, bei n...


Similar Free PDFs