Cosinus Sinus und Tangens berechnen



  • Hey Leute ich soll eine Tabelle erstellen die zu den Zahlen 0-360 jeweils in 30er schritten Cosinus Sinus und Tangens ausrechnet. Dafür muss Grad mit der Formel Bogenmass = Grad/180*pi in bogenmass umgerechnet werden und davon dann der sinus cosinus und tangens wert berechnet werden. Leider kommt da bei mir nur scheisse raus und ich weiß nicht wo der Fehler liegt.

    #include <stdio.h>
    #include <conio.h>
    #include <math.h>
    
    int main() {
    
    double pi=3.141592;
    int grad=0;
    
    printf("Grad \t Sinus \t\t Cosinus \t Tangens \n");
    
    while(grad<=360)
    {
        double bogenmass=(grad/180)*pi;
    
    	double sinus=sin(bogenmass);
    	double cosinus=cos(bogenmass);
    	double tangens=tan(bogenmass);
    
    	//printf("%d \t %lf \n ",grad,bogenmass);
    	printf(" %d \t %lf \t %lf \t %lf \n",grad,sinus,cosinus,tangens);
    
    	grad=grad+30;
    }
    
    getch();
    return 0;
    }
    

    danke im vorraus



  • Das Problem liegt wohl bei

    double bogenmass=(grad/180)*pi;
    

    Das grad/180 ergibt immer einen Ganzahlwert, da 'grad' ein Integer ist und 180 auch als Integer aufgefasst wird (falls du das nicht kennst, dann google mal nach Ganzahldivision in C++).

    Es musst lauten

    double bogenmass=(grad/180.0)*pi;
    

    Btw: Du bist im falschen Unterforum. Hier ist C++/CLI mit .NET, du wolltest wohl ins C++ Unterforum posten. Aber dein Code ist kein C++ sondern C.

    *Edit
    Die Klammerung ist auch unnoetig.



  • Sry bin zum ersten Mal hier kann ich das irgendwie ins C Forum verschieben?

    Ok hab jetzt ein folgendes:

    #include <stdio.h>
    #include <conio.h>
    #include <math.h>
    
    int main() {
    
    double pi=3.141592;
    int grad=0;
    
    printf("Grad \t Sinus \t\t Cosinus \t Tangens \n");
    
    while(grad<=360)
    {
        double bogenmass=(grad/180.0)*pi;
    
        double sinus=sin(bogenmass);
        double cosinus=cos(bogenmass);
        double tangens=tan(bogenmass);
    
        //printf("%d \t %lf \n ",grad,bogenmass);
        printf(" %d \t %lf \t %lf \t %lf \n",grad,sinus,cosinus,tangens);
    
        grad=grad+30;
    }
    
    getch();
    return 0;
    }
    

    dann kommt bei 330 iwas mit -0,50000xxx raus aber mein taschenrechner sagt 0,100xxxx

    schonmal danke



  • Dann bedienst du deinen Taschenrechner falsch. 🙂

    Es sollte außerdem schon rein geometrisch klar sein, dass sin(330°) = -1/2 ist, dazu braucht man keinen Taschenrechner.



  • Der sin von 330 ist -0,5 das stimmt aber ich soll doch die 330 erst durch 180 teilen und mal pi nehmen und davon den sinus?
    *confused*

    danke



  • whatthefq schrieb:

    Der sin von 330 ist -0,5 das stimmt aber ich soll doch die 330 erst durch 180 teilen und mal pi nehmen und davon den sinus?e

    Ja, weil in C++ die Funtkionen sin, cos, tan etc. im Bogenmass arbeiten. Dein Taschenrechner ist wahrscheinlich auf Grad eingestellt (kann man bei einigen Rechnern auf Bogenmass umstellen).



  • Achso ok alles klar vielen Dank euch allen


Anmelden zum Antworten