Schleife kleiner als int i????



  • hallo, habe eine Schleife, in der er mir eine Eingangsdaten berechnet:

    int  i;
    for(i=0;i<100;i++) 
    { 
    ...//berechnung der Eingangsdaten 
    }
    

    Diese Eingangsdaten stellen eine Kurve da, z.B. Sinuskurve, nu sieht der natürlich klasse aus, wie gerupft 😃
    Kann ich die Schleife auch kleiner gestalten, also mit Zwischenrechnungen...
    Mit int geht ja nur gerade...
    Muss ich da was mit double machen???

    double i;
    for(i=0;i<100;i++)
    

    oder bin ich da auf dem Holzweg und es gibt was feiners?



  • Du scheinst wirklich ziemlich auf dem Holzweg.
    Deine Frage ist leider auch sehr ungenau.

    Ich nehme an, das Problem ist, dass die Werte der Sinuskurve sehr große Abstände haben.
    Double kann zwar im Gegensatz zu int auch Nachkommastellen mit aufnehmen, aber ich denke du wirst die Y-Werte der Kurve eh nicht hochskalieren, sondern 1 zu 1 ausgeben.

    Die Sinusfunktion von C++ geht vom Bogenmaß aus. Daher entspricht der Bereich 0 bis 100 etwa "16 Sinuskurven".
    Daher solltest du das Argument der Sinusfunktion durch Division kleiner machen.
    Außerdem erhälst du ja nur Werte von -1 bis 1, so dass du diese hochskalieren solltest. Dann kommst du nämlich mit ganzen Zahlen hin.
    Also etwa so:

    for (int i=0; i<360; i++)
      Werte[i] = sin(i/180.0*M_PI)*100;
    

Anmelden zum Antworten