matematykaszkolna.pl
C++ Nawaleta: [C++] Czy ktoś mógłby mi powiedzieć, dlaczego to nie liczy całki? using namespace std; int e; double f(double x) {return (ex);} int main () { double a,b,s,d; int n=1000; a=0; b=5; s=0; d=(a−b)/n; for (int i=1; i<=n; i++) {s+=f(a+i*d); i++; } s*=d; cout<<"wynik" <<s<<endl; system("PAUSE"); return 0; }
15 maj 15:32
Nawaleta: Mam taki błąd : invalid operands of types 'int' and 'double' to binary 'operator'
15 maj 15:36
Adamm: return (ex); <−− tak masz w kodzie? nic dziwnego że wyskakuje błąd #include <cmath> <−−− dopisz to masz tam funkcję exp(x) http://www.cplusplus.com/reference/cmath/exp/
15 maj 15:39
Adamm: https://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B to operator logiczny XOR na bitach
15 maj 15:41
Adamm: tam miał być znak potęgi, rozumiesz o co mi chodzi
15 maj 15:42
Nawaleta: Oczywiście mam #include<cmath>.
15 maj 15:42
Nawaleta: Wpisałem : #include<iostream> #include<iomanip> #include<cmath> using namespace std; int e; double exp (double x) {return (exp(x));} int main () { double a,b,s,d; int n=1000; a=0; b=5; s=0; d=(a−b)/n; for (int i=1; i<=n; i++) {s+=exp(a+i*d); i++; } s*=d; cout<<"wynik" <<s<<endl; system("PAUSE"); return 0; } Ale zaraz po uruchomieniu przestaje działać.
15 maj 15:46
Adamm: double exp (double x) {return (exp(x));}
15 maj 15:47
Nawaleta: No tak, już wiem emotka Bardzo Ci dziękuję za pomoce i te linki.
15 maj 15:49
Nawaleta: Jednak chyba coś mam nie tak : Mam taki kod : #include<iostream> #include<iomanip> #include<cmath> using namespace std; double f (double x) {return (exp(x));} int main () { double a,b,s,d; int n=1000000; a=0; b=5; s=0; d=(a−b)/n; for (int i=1; i<=n; i++) {s+=exp(a+i*d); i++; } s*=d; cout<<"wynik" <<s<<endl; system("PAUSE"); return 0; } I według programu to 0,49... A wolfram podaje 147,41
15 maj 20:03
Nawaleta: bez tego return mam emotka
15 maj 20:04
Nawaleta: #include<iostream> #include<iomanip> #include<cmath> using namespace std; double exp (double x); int main () { double a,b,s,d; int n=1000; a=0; b=5; s=0; d=(a−b)/n; for (int i=1; i<=n; i++) {s+=exp(a+i*d); i++; } s*=d; cout<<"wynik" <<s<<endl; system("PAUSE"); return 0; }
15 maj 20:07
Adamm: pierwsze pytanie całka ma być od 0 do 5 czy od 5 do 0?
15 maj 20:09
Nawaleta: Od 0 do 5 emotka, tam mam mieć zamiast a−b, b−a?
15 maj 20:11
Adamm: tak
15 maj 20:11
Nawaleta: Zrobiłem, lecz nadal jest jakby dwa rzy mniej, mam 73,...emotka
15 maj 20:15
Nawaleta: Działa po usunięciu i++, dlaczego tak jest ?
15 maj 20:21
Adamm: bo w pętli for już masz i++ robisz to dwa razy
15 maj 20:23
Nawaleta: A no tak, dziękuje emotka
15 maj 20:23
Dziadek Mróz: for (iterator; warunek; krok) { ciało } [iterator] │ │⟵───────┐ ↓ │ <warunek> [krok] ↓ │ [ciało] │ └─────────┘
15 maj 23:04