Berechnung Mit Sinus In C
#1
geschrieben 16. November 2008 - 22:40
habe folgendes Problem: es soll eine wertetabelle einer bestimmten funktion erstellt werden. Man gibt die untere und obere grenze und die anzahl der werte die ausgegeben werden sollen ein. Daraus soll eine Tabelle von zb. 10 Werten zwischen zwei Grenzen von x erstellt werden. Das Problem ist wie krieg ich das hin genau 10 Werte auszugeben und nicht alle zwischen diesen grenzen?
Vielen Dank!
mfg
Anzeige
#2
geschrieben 17. November 2008 - 01:37
#3
geschrieben 17. November 2008 - 09:01
double dLower = 0; double dUpper = 0; int iSteps = 0; int i = 0; double dSteppsize = 0; printf("Untere Grenze: "); scanf("%lf", &dLower); //Sicherstellen, dass obere Grenze > untere Grenze do { printf("Obere Grenze: "); scanf("%lf", &dUpper); } while (dUpper < dLower); printf("Schrittzahl: "); scanf("%d", &iSteps); //Schrittgröße berechnen dSteppsize = (dUpper - dLower) / iSteps; /* * Iterationsstart: x_0 = untere Grenze * Iteration: x_n+1 = x_n + Schrittgröße * * Iterationsende falls x_n+1 > obere Grenze */ for (double x = dLower; x <= dUpper; x += dSteppsize) { //Hier kannst du mit dem x-Wert berechnen, was immer du willst printf("x%d:\t%lf\tsin(x%i) = %lf\n", i, x, i, sin(x)); i++; } return 0;
Grüße,
Stefan
#4
geschrieben 18. November 2008 - 20:56
edit:
aber wie ist die letzte printf zeile zu verstehen? habe dies in dieser form bisher noch garnicht gesehn
Dieser Beitrag wurde von Triale bearbeitet: 18. November 2008 - 21:03
#5
geschrieben 19. November 2008 - 07:31
Die Formatierungsanweisung x%d:\t%lf\tsin(x%i) = %lf\n bedeutet:
x%d in Verbindung mit i: gibt x0, x1, ... aus
\t: Tab
%lf in Verbindung mit x: gibt die x-Werte aus
sin(x%i) in Verbindung mit i: gibt sin(x0), sin(x1), ... aus
%lf in Verbindung mit sin(x): gibt die Werte von sin(x) aus. Hier könnte man auch vorher die Berechnung durchführen lassen und in eine Variable schreiben. Jedoch wäre das hier sinnlos.
\n: Zeilenumbruch
Ich hoffe, so wird es klar. Bei Fragen einfach schreiben.
Grüße,
Stefan
#6
geschrieben 19. November 2008 - 07:46
http://www.cplusplus.com/reference/clibrar...dio/printf.html
#7
geschrieben 19. November 2008 - 19:38
mal gucken wie sich unser prof das vorgestellt hat ... unmöglich so eine unklare aufgabenstellung
Dieser Beitrag wurde von Triale bearbeitet: 19. November 2008 - 19:38
#8
geschrieben 19. November 2008 - 20:07
Zitat (Triale: 19.11.2008, 20:38)
Formel zur Berechnung?
Zitat
Dieser Beitrag wurde von bardelot bearbeitet: 19. November 2008 - 20:29
#9
geschrieben 20. November 2008 - 14:43
Dieser Beitrag wurde von Triale bearbeitet: 20. November 2008 - 15:04
#10
geschrieben 21. November 2008 - 23:00
Grüße,
Stefan
#11
geschrieben 23. November 2008 - 12:58
for (i=0; i<anzahl; i++) {
erg = (2 * sin(x)- 3 * sin(2 * x) + 0.05 * pow((x-3),3) + (x * x) - x);
if (i%3==0) {
printf ("\n");
}
printf ("f(%.3lf) = %.2lf\t", x, erg);
x = x+schrittWeite;
}
hab das sozusagen über eine modulo-division gemacht... nach 3 ausgegebenen Werten immer eine neue Zeile und nach jedem Wert ein Tabstop.. nur das Problem ist manchmal verhaut er es mit dem tabstop wie man im screenshot sieht
Dieser Beitrag wurde von Triale bearbeitet: 23. November 2008 - 13:00
#12
geschrieben 23. November 2008 - 15:05
printf ("f(% 7.3lf) = % 6.2lf\t", x, erg);
Dieser Beitrag wurde von bardelot bearbeitet: 23. November 2008 - 16:49
#13
geschrieben 23. November 2008 - 15:08
Edit:
aber zb in der 2. Zeile stimmts doch auch überein mit der 1. Zeile von der ausrichtung her obwohl die beiden Werte links unterschiedliche länge haben oder?
Dieser Beitrag wurde von Triale bearbeitet: 23. November 2008 - 15:14
#14
geschrieben 23. November 2008 - 16:53
#15
geschrieben 23. November 2008 - 17:20
Edit:
sry jetzt hab ichs kapiert.. der wert der 3. zeile is der kürzeste deswegen zu diesem tabstop.. die beiden werte drüber sind länger deswegen bei beiden zumnächstmöglichen tabstop..richtig?
Vielen Dank =)
Dieser Beitrag wurde von Triale bearbeitet: 23. November 2008 - 17:23
- ← Command Befehler Unter Vb Ausführen
- Programmierung
- [s] Programierer Der Windows Basierende Programme Auf Mac Umschreibt →