milchmann007 Geschrieben 18. Oktober 2010 Teilen Geschrieben 18. Oktober 2010 Hallo, ich habe Aufgabe zu lösen nur leider hab ich ein kleines Problem mit einer Angabe! "Schreiben Sie ein Programm, das die Funktionswerte des Sinus an Punkten x ∈ [0, 2pi] berechnet. Die Punkte sollen den Abstand Δx haben, welcher vom Programm als freier Parameter eingelesen werden soll. Das Programm muss einen while-Loop enthalten." So weit so gut... mir ist bewusst wie diese Sinuskurve aussieht! Was ist aber mit "Die Punkte sollen den Abstand Δx haben......" gemeint! Was für Punkte sollen delta x haben?? Brauch einen Denkanstoß! Bitte danke! Bitte um etwas Nachsicht bin Anfänger! ;-) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 18. Oktober 2010 Teilen Geschrieben 18. Oktober 2010 Ist doch eigentlich recht einfach. Stell Dir das am besten auf einem Blatt Papier vor. Dort zeichnest Du einfach mal die Sinuskurve im Bereich [0, 2pi]. Sprich Y-Achse ist [-1,1] und X-Achse [0,2pi]. Nun gehst Du von der 0 immer in Delta Schritten nach rechts auf der X-Achse und liest den dortigen Wert der Sinuskurve (was Du da machst, nennt sich Sampling). Wenn Delta also 1 wäre, dann würdest Du die Sinuskurve an 0, 1, 2, ... berechnen so lange das Delta < 2pi ist und damit hast Du den Ansatz der Schleife Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
milchmann007 Geschrieben 24. Oktober 2010 Autor Teilen Geschrieben 24. Oktober 2010 Hallo danke für die schnelle Antwort! ich eigentlich ganz logisch! Ich hab mich jetzt mal kurz hingesetzt und hab leider einen (wohl mindestens) Fehler! Wenn ich z.B. Delta "1" eingebe, rechnet er zwar 1,2,3,4,5,6 aber leider immer nur den Sinus mit 1! Wo is der Fehler! Hier Code! #include <iostream> #include <math.h> using namespace std; int main() { double x; double pi = M_PI; cout << "Bitte Wert eingeben"<< endl; cin >>x; double y = y + x; double result = sin(y); while ( y <= 2*pi) { //y = y + x; cout << "Für den Sinus von "<< y << " gilt "<< result << " ACHTUNG: gerechnet als Bogenmas!!"<< endl; y = y+x; } return 0; } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 24. Oktober 2010 Teilen Geschrieben 24. Oktober 2010 Wenn du result nur einmal berechnest, hast du natürlich auch nur einen Wert. Es wäre sinnvoll, die Berechnung von result in die Schleife zu verlagern. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 24. Oktober 2010 Teilen Geschrieben 24. Oktober 2010 Wenn ich z.B. Delta "1" eingebe, rechnet er zwar 1,2,3,4,5,6 aber leider immer nur den Sinus mit 1! Schau Dir an, wo Du in Deinem Code genau den Sinus berechnest. Du muss den Sinus xon x=1, x=2, x=3 usw berechnen, im Moment machst Du das nur für genau einen Wert. Wenn Du bei 0 für x beginnst, musst Du für jeden Wert den Du auf das x addierst den Sinus bestimmen, so lange x kleiner als 2Pi ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
milchmann007 Geschrieben 24. Oktober 2010 Autor Teilen Geschrieben 24. Oktober 2010 Tatsächlich! Ich bin doch einfach zu doof! Danke! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.