Liczenie sumy n wyrazów ciągu - program nie działa poprawnie
Ostatnio zmodyfikowano 2013-11-28 19:14
marek252 Temat założony przez niniejszego użytkownika |
Liczenie sumy n wyrazów ciągu - program nie działa poprawnie » 2013-11-28 18:41:53 Witam. Mam napisać program, który wyznaczy sumę n wyrazów ciągu o elementach: a0=1, a1=sin(1), a2=sin(2), ..., an=sin(n). Zrobiłem coś takiego, ale nie działa poprawnie. Co tu jest nie tak?
#include <iostream> #include <stdlib.h> #include <cmath>
using namespace std;
int main() { int n; float a_n, suma; cout << "Sume ilu wyrazow ciagu chcesz policzyc? n = "; cin >> n; while( n <= 0 ) { cout << "Musisz podac liczbe dodatnia. n = " << endl; cin >> n; } if( n == 1 ) { cout << "suma = 1" << endl; } else { int suma = 1; for( int i = 1; i < n; i++ ) { a_n = sin( i ); suma = suma + a_n; } cout << "Suma " << n << " wyrazow tego ciagu wynosi " << suma << endl; } system( "PAUSE" ); return 0; }
Pozdrawiam |
|
pekfos |
» 2013-11-28 18:50:16 |
|
marek252 Temat założony przez niniejszego użytkownika |
» 2013-11-28 18:52:36 Tylko dla n=1 działa poprawnie, pokazuje "suma=1". Dla n od 2 do 4 pokazuje "suma=1". Dla n>4 pokazuje "suma=0". |
|
Adik80 |
» 2013-11-28 18:59:11 usun int przed suma=1 |
|
marek252 Temat założony przez niniejszego użytkownika |
» 2013-11-28 19:02:27 Rzeczywiście tam był błąd. Jest zmiana, ale np. dla n=2 pokazuje 1.84147 a powinno być 1.01745241, więc coś jeszcze jest nie tak. |
|
pekfos |
» 2013-11-28 19:04:41 sin() przyjmuje kąt w radianach, a nie stopniach. |
|
Adik80 |
» 2013-11-28 19:09:35 sin przyjmuje wartosci w radianach, jesli chcesz w stopniach: i*pi/180 |
|
marek252 Temat założony przez niniejszego użytkownika |
» 2013-11-28 19:14:37 Ok, rozumiem, działa poprawnie, dziękuję za pomoc. |
|
« 1 » |