Endlosausgabe(sin(x))



  • Abend zusammen,

    ich versteh das nicht bei der Ausgabe läuft es immmer weiter weiter weiter...
    Was is da falsch?

    Ahja und wie schreibt man das genau das man "PI" verwenden knan?

    #include <stdio.h>
    #include <math.h>
    
    int main()
    {
      float erg;
    	int x;
    
    	for(x=5; x<=6; x=x+0.1)
    	{
    	  erg=sin(x);
    		printf("%f",erg);
    	}
    
    	return(0);
    }
    

    Gruß

    Mr Bean





  • Manche Compiler haben Definitionen für verschiedene Konstanten in der Art M_PI
    oder du machst es selber:

    #define M_PI        3.14159265358979323846
    


  • ok danke.

    So rechnenet man ja in deg um: deg = rad x 180 / PI
    aber was ist das rad?

    hat das einen fixen Wert? bzw. wie soll ich es benutzen.



  • rad ist die Einheit von Radiant
    Das ist eine andere Maßeinheit für den Winkel.
    (So wie km und Meilen für Länge, °C Und °F für Temperatur)

    Der rad ist dimensionslos.



  • könnte das so stimmen?

    #include <stdio.h>
    #include <math.h>
    
    float convert(float rad)
    {
      int deg;
    	deg=180/3.14*rad;
    	return(deg);
    }
    
    int main()
    {
      float erg;
    	float x;
    	float rad=0;
    	int deg;
    
    	for(x=5; x<=6; x=x+0.1)
    	{
    	  erg=sin(x);
    		deg=convert(rad);
    		printf("%f\n",erg);
    	}
    
    	return(0);
    }
    


  • Jetzt stellt sich natürlich nur die Frage, wozu du an dieser Stelle genau diese Umwandlung benötigst - rad wird in der Schleife nicht angefasst, deg wird auch nicht weiterverarbeitet.

    Außerdem: Was genau willst du eigentlich berechnen? Wenn dein x Grad-Werte darstellen soll, benötigst du die Umrechnung in der anderen Richtung.



  • convert soll doch ein float zurückgeben. Warum ist dann deg ein int?

    Und wie ist die Ausgabe? Irgendetwas zwischen 1.0 und -1.0 ? Dann kann das wohl nicht Stimmen.

    Ach noch etwas: Vergiss float, nimm double. Das bringt nur Vorteile.

    #define M_PI        3.14159265358979323846
    #define RAD2DEG(x) (180.0 * x / M_PI)
    ....
            printf("%f: %f\n",RAD2DEG(x), sin(x));
    

    Was willst du überhaupt ausgeben/rausfinden.
    Die Nullstelle beim Sinus liegt bei 2π ≈6,28



  • DirkB schrieb:

    Die Nullstelle beim Sinus liegt bei 2π ≈6,28

    und bei π ≈ 3,14159265358979 wohlgemerkt 🙄



  • Und bei n * ; ach egal.

    War nur ein Hinweis weil er zwischen 5 und 6 gesucht hat
    ... und er wohl nicht wusste was er tat 😉



  • DirkB schrieb:

    Und bei n *

    aber nur, wenn n aus Z 😃

    aber zwischen 5 und 6 kann er lang suchen... 😉



  • [Angeber]

    Z\mathbb{Z}

    [/Angeber] ... aber war ja egal (ich wusste wo das hinführt)

    sinx schrieb:

    aber zwischen 5 und 6 kann er lang suchen... 😉

    Hat er dem Thema nach ja auch gemacht. Ok, aus anderen Gründen.


Log in to reply