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