20022 Objektorientierte Programmierung SS2020 Musterlösung Einsendaufgabe 5 PDF

Title 20022 Objektorientierte Programmierung SS2020 Musterlösung Einsendaufgabe 5
Author Benjamin Br
Course Einführung in die objektorientierte Programmierung für die Wirtschaftsinformatik
Institution FernUniversität in Hagen
Pages 3
File Size 87.8 KB
File Type PDF
Total Downloads 13
Total Views 151

Summary

Die Lösungen für die Einsendeaufgaben, die jedes Semester gleich sind und zum großen Teil bearbeitet werden müssen. Lösungen werden erst nach dem Ende der Bearbeitungszeit hochgeladen. ...


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