Kosinussatz

lenaMQ

Mitglied
Hallo liebe C++ Profis..

Ich hab da ein Problem über dessen Lösung ich die ganze Zeit schon grübel, aber immer das falsche ergebnis am ende erscheint.

Muss ich denn den cosinus nochmal explizit definieren?


Mein consolenprogramm:
errechnen der Länge a



# include <stdio.h>
# include <math.h>
# include <conio.h>
# define PI 3.14159


void main (void)
{

double b, c, alpha;
double a;
printf("Geben Sie folgende Werte ein:\n");
printf("------------------------------------\n");
b=0.0;
printf("\n Seitenlaenge b:");scanf("%lf",&b);
c=0.0;
printf("\n Seitenlaenge c:");scanf("%lf",&c);
alpha=0.0;
printf("\n Bitte geben Sie den Winkel alpha ein:");scanf("%lf",&alpha);

alpha=(180/PI)*alpha;
a=sqrt(b*b+c*c-2*b*c*cos(alpha));
printf("\n\n Die Seite a hat eine Laenge von: %lf \n", a);





}


Was mach ich bloß falsch?

Verzweifelt schau.
 
Du hast da eine Umrechnung von Radiant auf Grad drin, das sollte doch umgekehrt sein? Der Benutzer gibt in Grad ein (wie jeder normale Mensch) und das Programm rechnet für die cos-Funktion auf Radiant um:

Statt

alpha=(180/PI)*alpha;

sollte da

alpha=(PI/180)*alpha;

stehen.
 
Du hast da eine Umrechnung von Radiant auf Grad drin, das sollte doch umgekehrt sein? Der Benutzer gibt in Grad ein(wie jeder normale Mensch)<-- entschuldige, dass ich dich mit meiner dummheit belästigt habe und das Programm rechnet für die cos-Funktion auf Radiant um:

Statt
Code:
alpha=(180/PI)*alpha;

sollte da
Code:
alpha=(PI/180)*alpha;

stehen.


Ja das hab ich auch schon gemerkt, aber selbst nach der Änderung kam nicht der entsprechende Wert.

Nun hab ich nochmal die kosinusfunktion als variable definiert und so in die formel eingesetzt. jetzt bekomm ich einen Näherungswert heraus.

Bei einem gleichseitigen Dreieck also:
Code:
b=10m
c=10m
alpha=60°

ist
Code:
 a= 9.999992

ist die Abweichung normal oder lässt sich noch was machen?
 
Ich denke, du solltest für's PI noch ein paar mehr Nachkommastellen spendieren. Mit "PI = 3.1415926535" habe ich gerade ganz brauchbare Ergebnisse erzielt.

Gruß
MCoder
 
MCoder hat gesagt.:
Ich denke, du solltest für's PI noch ein paar mehr Nachkommastellen spendieren. Mit "PI = 3.1415926535" habe ich gerade ganz brauchbare Ergebnisse erzielt.

Gruß
MCoder



DANKE es klappt!

10.000000 kommt raus

*freuwieblöd*

Sorry bin absoluter C++ Anfänger und total überfordert :-)
 
Zurück