Lösungsvorschlag 4.2. - Aufgabe 1: Unterschied zwischen den Versionen

Aus ComeniusWiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „<pre> public void winkelfunktionen (double x){ double y=Math.toRadians(x); System.out.println("Der Sinus von "+x+" Grad = "+sinus(y)); System.out.println("Der Cos…“)
 
Zeile 1: Zeile 1:
 
<pre>
 
<pre>
 
public void winkelfunktionen (double x){
 
public void winkelfunktionen (double x){
 +
//Umrechnung des Winkels von Grad in rad; Hilfsvariable y um Ursprungswert von x zu "konservieren"
 
double y=Math.toRadians(x);
 
double y=Math.toRadians(x);
 
System.out.println("Der Sinus von "+x+" Grad = "+sinus(y));
 
System.out.println("Der Sinus von "+x+" Grad = "+sinus(y));
 
System.out.println("Der Cosinus von "+x+" Grad = "+cosinus(y));
 
System.out.println("Der Cosinus von "+x+" Grad = "+cosinus(y));
if(kosinus(y)==0){System.out.println("Der Tangens von "+x+" Grad ist nicht definiert!");}else
+
if(cosinus(y)==0){System.out.println("Der Tangens von "+x+" Grad ist nicht definiert!");}else
 
{System.out.println("Der Tangens von "+x+" Grad = "+tangens(y));}
 
{System.out.println("Der Tangens von "+x+" Grad = "+tangens(y));}
 
}
 
}

Version vom 2. November 2013, 10:44 Uhr

public void winkelfunktionen (double x){
//Umrechnung des Winkels von Grad in rad; Hilfsvariable y um Ursprungswert von x zu "konservieren"
double y=Math.toRadians(x);
System.out.println("Der Sinus von "+x+" Grad = "+sinus(y));
System.out.println("Der Cosinus von "+x+" Grad = "+cosinus(y));
if(cosinus(y)==0){System.out.println("Der Tangens von "+x+" Grad ist nicht definiert!");}else
{System.out.println("Der Tangens von "+x+" Grad = "+tangens(y));}
}

//Eigentliche Berechnung der Winkelfunktionen auf 8 Stellen Genauigkeit durch Aufruf der Methode zum Runden
private double sinus(double x){
        return runden(Math.sin(x),8);}

private double cosinus(double x){
        return runden(Math.cos(x),8);}

private double tangens(double x){
        return runden(Math.tan(x),8);}


private double runden(double wert, int stellen) {
        return  Math.round(wert * Math.pow(10, stellen)) / Math.pow(10, stellen);
    }

Ohne die Methode zum Runden wäre die Ungenauigkeit in der Berechnung so groß, dass z.B. der Ausnahmefall tan(90 Grad) nicht abgefangen werden könnte.

Die Methoden mit Rückgabewert werden auf Zugriffsrecht private gesetzt, da sie dem User verborgen bleiben sollen. Er hat nur Zugriff auf die Methode, die die gewünschten Daten ausgibt.