Annäherung des Sinus

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Also der Sinus soll durch ein Näherrungsverfahren an nährt werden.


http://mathenexus.zum.de/html/analysis/funktionen_winkel_weiteres/weiterfuehrendes/trigo_13.htm

Das Programm soll folgende Aufgaben erfüllen.

Die Reihenentwicklung soll sofort abbrechen, sobald die Differenz der Absolutbeträge zweier aufeinanderfolgender Summanden kleiner als eine vorzugebende Abbruchschranke s ist.

-Eingabe von x und s

-Berechnung und Ausgabe des Näherungswertes für sin(x)

.Es soll die Anzahl der Summanden ausgegeben werden.

Also mienPRogramm ist ncith vollständig bzw. das st der Anfang

wollte wissne warum bekmomme ich diesen Fehler.

Wei kann ich dne verbessern.

Möchte kein komplett gelöstes Bespiel bekommen ich möchte Java lernen.

Danek im vorraus


Code:
class Asinus
{
	public static void main(String args[])
	{
		double z;/*Zähler also beim Bruch*/
		double n;/*Nenner des Bruches*/
		double Zweimali;/*2 Mal i*/
		double DiffAbs;/*Differenz der Absolout Beträge*/
		double x;/*Wird von der Tastatur eingelesen*/
		double BetragNenner;/*Betrag des nenners*/
		double sum=0;/*Summe der Werte*/
		double i;/*Zählvariable*/
		int s;/*Abbruchschranke*/
		System.out.println("Geben sie einen Wert für die Abbruchschranke s ein");
		s=IO1.einint();
		for(i=1;i<=s;i++)
		{
			Zweimali=2*(i-1);
			System.out.println("Ihr Zweimal i lautet:"+Zweimali);
		}	
		System.out.println("Ihr 2 mal i lautet:"+Zweimali);
		System.out.println("Wir berechnen die Annährrung des Sinus");
		System.out.println("Geben sie eine Zahl für x ein");
		x=IO1.einint();/*Zahl wird von der tastatur eingelesen*/
		z=Math.pow(x*(Zweimali));
		System.out.println("Ihr Zähler lautet:"+z);
		
	}	
}

Das ist mein Fehler
Asinus.java:25: pow(double,double) in java.lang.Math cannot be applied to (double)
z=Math.pow(x*(Zweimali));
^

Danke im voraus und sorry wenn ich nerven sollte
 

musiKk

Top Contributor
Math.pow() nimmt eine Zahl (erstes Argument) hoch eine andere (zweites Argument). Du hast aber nur ein Argument übergeben
 
G

Gast

Gast
@ musiKK

danke was hab eich da f+ür einen groben fehlergemacht

werde es morgne verbessern

danke
 

0x7F800000

Top Contributor
Anonymous hat gesagt.:
Möchte kein komplett gelöstes Bespiel bekommen ich möchte Java lernen.
warum trollst du dann hier schon wieder mit irgendwelchen unsinnigen codefetzen herum, statt dem dicken rotmarkierten Tipp aus dem letzten Thread zu folgen? :autsch:
Anonymous hat gesagt.:
Also mienPRogramm ist ncith vollständig bzw. das st der Anfang
nein, das ist auch kein Anfang. Du hast bisher lediglich den Kopf der main funktion irgendwo abgeschrieben, und eine riesige liste mit allen Stichwörtern und variablen, die du in der Aufgabenstellung finden konntest, angelegt, wobei du an jedes Stichwort vorne "double" und hinten ";" drangehängt hast. Dieser sinnfreien Konstruktion folgt ein haufen unsinniger Ausgaben, die eigentlich keinen interessieren. Schmeiss diesen Müll gefälligst weg und überleg dir zuerst was du brauchst und wie du es am schnellsten ausrechnest, statt einfach so alles einzutippen, was auf dem Aufgabenzettel in irgendeiner Form vorkommt.
 
G

Guest

Gast
Habe den ersten schritt gemacht


Der Rest folgt später



Code:
class Asinus
{
   public static void main(String args[])
   {
      double z=1;/*Zähler also beim Bruch*/
      double Zwei=2;/*Nenner des Bruches*/
      double x;/*Wird von der Tastatur eingelesen*/
      double i;/*Zählvariable*/
      int s;/*Abbruchschranke*/
      System.out.println("Geben sie einen Wert für die Abbruchschranke s ein");
      s=IO1.einint();
      System.out.println("Wir berechnen die Annährrung des Sinus");
      System.out.println("Geben sie eine Zahl für x ein");
      for(i=0;i<=s;i++)
      {
      	x=IO1.einint();/*Zahl wird von der tastatur eingelesen*/
      	z=Math.pow(x,(Zwei*(i-1)));
       System.out.println("Ihr z lautet:"+z);
      } 
   }
 }
 
G

Guest

Gast
Bekomme diesen Fehler

Asinus.java:21: out has protected access in java.io.FilterOutputStream
System.out.out.println("Ihr Nenner lautet:"+fakn);

^

Asinus.java:21: cannot resolve symbol
symbol : method println (java.lang.String)
location: class java.io_OutputStream
System.out.out.println("Ihr Nenner lautet:"+fakn);
^

Was haben zu bedeuten???????????????????????????????????????????????????






Code:
class Asinus
{
   public static void main(String args[])
   {
      double z=1;/*Zähler also beim Bruch*/
      double Zwei=2;/*Nenner des Bruches*/
      double x;/*Wird von der Tastatur eingelesen*/
      double i;/*Zählvariable*/
      double fakn=0;/*Fakultät Nenner*/
      int s;/*Abbruchschranke*/
      System.out.println("Geben sie einen Wert für die Abbruchschranke s ein");
      s=IO1.einint();
      System.out.println("Wir berechnen die Annährrung des Sinus");
      System.out.println("Geben sie eine Zahl für x ein");
      for(i=0;i<=s;i++)
      {
      	x=IO1.einint();/*Zahl wird von der tastatur eingelesen*/
      	z=Math.pow(x,(Zwei*(i-1)));
      	System.out.println("Ihr z lautet:"+z);
      	fakn=fakn*((2*i)+1);
      	System.out.out.println("Ihr Nenner lautet:"+fakn);
      }	
   }
 }
 
G

Guest

Gast
Das Programm müsste soweit richtig sein nur irgendwie habe ich es zu kompliziert programmiert bitte um Vorschläge und harter Kritik muss mich bessern

Sorry das ich euch ein ganz klein wenig auf die nerven gegangen bin mit meiner Programmierrung

Hier ist mein Programm




Code:
class Asinus
{
   public static void main(String args[])
   {
      double z=1;/*Zähler also beim Bruch*/
      double Zwei=2;/*Nenner des Bruches*/
      double x;/*Wird von der Tastatur eingelesen*/
      int i;/*Zählvariable*/
      double Minuseinshoch=0;
      double Term=0;
      int sum=0;
      int fakn=1;/*Fakultät Nenner*/
      int k=0;
      int s;/*Abbruchschranke*/
      int r=-1;
      System.out.println("Geben sie einen Wert für die Abbruchschranke s ein");
      s=IO1.einint();
      System.out.println("Wir berechnen die Annährrung des Sinus");
      System.out.println("Geben sie eine Zahl für x ein");
      for(k=0;k<=s-1;k++)
      {
      	x=IO1.einint();/*Zahl wird von der tastatur eingelesen*/
      	z=Math.pow(x,(Zwei*(k+1)));
      }	
      System.out.println("Ihr z lautet:"+z);
      	for(k=0;k<=s-1;k++)
      	{
      		fakn=fakn*(2*(k+1));
      		System.out.println("Ihre Fakultät vom Nenner lautet:"+fakn);
      	}	
      	for(k=0;k<=s-1;k++)
      	{
      		Minuseinshoch=Math.pow(r,k);
      		System.out.println("Ihr Alternierende Potenz lautet:"+Minuseinshoch);
      	}
      	Term=(z/fakn)*Minuseinshoch;		
      	Term=Term+sum;
      	System.out.println("Ihre Annäherrrung lautet:"+Term);
    	   }
 }
 

Landei

Top Contributor
So wird das nie was. Guck mal hier: Ein wenig Struktur, z.B. durch zusätzliche Methoden, dazu ordentliche Variablennamen, und schon kann man verstehen, um was es eigentlich geht:
Code:
class Asinus {
  
  private static double fac(double n) {
    int prod = 1;
    for (int i = 1; i <= n; i++) {
      prod *= i;
    }
    return prod;
  }
  
  private static double sinus(double x, int steps) {
    double sum = 0;
    for (int i = 0; i < steps; i++) {
      int k = 2*i + 1;
      int sign = i % 2 == 0 ? 1 : -1;
      double z = Math.pow(x, k);
      double n = fac(k);
      sum += sign * z/n;
      System.out.printf("Schritt %d, Vorzeichen %d, Zähler %f^%d=%.15f, Nenner %d!=%.0f, Glied %.15f, Summe %.15f%n",
          i,sign, x, k, z, k, n, z/n, sum);
    }
    return sum;
  }
  
  
  public static void main(String args[]) {
    //die Eingabe musst du schon selber machen - habe ja die großartige IO1-Klasse nicht
    int steps = 5; //Anzahl Schritte
    double x = 0.2; //zu berechnende Zahl
    System.out.println("sin(" + x + ") = " + sinus(x, steps));
  }
}
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben