Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

versuche den sin und tan zu berechnen, das mit hilfe einer funktion und wertrückgabe über zeiger...

der haken an der sache ist das ich eben einen bestimmten wertebereich den w annehmen kann ausschließen muß. nur leider bringt er mir einen syntaxfehler `=` in der for-zeile...

das zweite was ich nicht verstehe ist ich habe am anfahnd die math.h includet, doch wenn ich dann M_PI reinschreib sagt er mir das sie nicht initialisiert ist...

Würd mich freuen wenn ihr mir weiter helfen könntet!!!

Danke gruß



#define _CRT_SECURE_NO_WARNINGS

#include <math.h>

#include <stdio.h>

#define PI = 3.14193


void sin_tan(double w, double *ws, double *wt);


int main(void)

{	

	double w, ws, wt;

	printf("Winkel im Bogenmass zw.0 und 3.14 eingeben:\n");

	scanf("%lf",&w);

	sin_tan(w, &ws, &wt);

	printf("Winkel im Bogenmass zw.0 und 3.14\n%f\nSinus= %f\nTangens= %f", w, ws, wt);


	return 0;

}


void sin_tan(double w, double *ws, double *wt)

{


	for ((w <= PI/2 -1e-6) && (w >= PI/2 +1e-6))


	*ws = sin(w);

	*wt = tan(w);


}

Geschrieben

Ich verstehe Dein Konstrukt überhaupt nicht.

Du willst für _einen_ eingegeben Wert eine entsprechende Berechnung durchführen, wofür brauchst Du dann eine For-Schleife, die auch so, wie sie zu sehen ist, falsch ist?

Ob Du nun Deine Daten als Call-by-Reference oder by-Value übergibst und die Daten zurück liefert, naja darüber kann man diskutieren

Geschrieben

Hi,

das problem ist das der tangens bei pi/2 nicht definiert ist, darum soll die berechnung nur ausgeführt werden wenn der übergebene winkel um weniger als 1e-6 von pi/2 entfernt ist...

Geschrieben

das problem ist das der tangens bei pi/2 nicht definiert ist, darum soll die berechnung nur ausgeführt werden wenn der übergebene winkel um weniger als 1e-6 von pi/2 entfernt ist...

Das ist schon klar, da tan = sin/cos und der Cos eben periodisch bei pi/2 null wird. Das erklärt aber _nicht_ Deine For-Schleife.

Außerdem was ist bei 3*pi/2? Dieser Wert ist dann auch ungültig, du musst jedes Vielfache entsprechend ausschließen. Um erst einmal für pi/2 zu prüfen würde man If nehmen

Geschrieben

deine for schleife ist trotzdem falsch. was du realisieren möchtest würde ich mit einer do while oder while schleife realisieren.

eine for schleife wird anders aufgebaut als du sie hast.

for ( Wert  ; Wann dies gemacht werden soll ; Erhöhung des Wertes )

{


}

Geschrieben

ja sorry folks, ist klar das die for schleiße ein absoluter schwachsinn ist... habs jetzt mal mit do-while gemacht... aber immernoch der syntaxfehler ´=´

@flashpixx: das problem mit 3xpi/2 ist erledigt da der benutzer nur von 0-3.14 eingeben darf... fehleingaben werden nicht beachtet....


#define _CRT_SECURE_NO_WARNINGS

#include <math.h>

#include <stdio.h>

#define PI = 3.14193


void sin_tan(double w, double *ws, double *wt);


int main(void)

{	

	double w, ws, wt;

	printf("Winkel im Bogenmass zw.0 und 3.14 eingeben:\n");

	scanf("%lf",&w);

	sin_tan(w, &ws, &wt);

	printf("Winkel im Bogenmass zw.0 und 3.14\n%f\nSinus= %f\nTangens= %f", w, ws, wt);


	return 0;

}


void sin_tan(double w, double *ws, double *wt)

{

	do

	{


	*ws = sin(w);

	*wt = tan(w);

	}



	while ((w <= PI/2 -1e-6) && (w >= PI/2 +1e-6));



}

Geschrieben
ja sorry folks, ist klar das die for schleiße ein absoluter schwachsinn ist... habs jetzt mal mit do-while gemacht... aber immernoch der syntaxfehler ´=´

Erklär mal bitte warum eine Schleife wenn Du in der Referenz nur einen Wert zurücklieferst !?

Geschrieben

ja stimmt auch wieder...

was hältst du davon?


#define _CRT_SECURE_NO_WARNINGS

#include <math.h>

#include <stdio.h>

#define PI = 3.14193


void sin_tan(double w, double *ws, double *wt);


int main(void)

{	

	double w, ws, wt;

	printf("Winkel im Bogenmass zw.0 und 3.14 eingeben:\n");

	scanf("%lf",&w);

	sin_tan(w, &ws, &wt);

	printf("Winkel im Bogenmass zw.0 und 3.14\n%f\nSinus= %f\nTangens= %f", w, ws, wt);


	return 0;

}


void sin_tan(double w, double *ws, double *wt)

{


	if((w <= PI/2 -1e-6) && (w >= PI/2 +1e-6))

	{


	*ws = sin(w);

	*wt = tan(w);

	}

	else

		printf("Winkel im Bogenmass zw.0 und 3.14\n%f\nFehler", w);

}

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...