Tymek Temat założony przez niniejszego użytkownika |
Wariancje » 2010-11-13 18:52:50 #include <iostream.h> #include <math.h> main() { float tablica[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; float s = 0, d = 0, sig = 0, odchylenie = 0; for( int i = 0; i < 10; i++ ) { s = s + tablica[ i ]; d = s / 10; sig = sig +( pow( tablica[ i ] - 2, 8 ) ) / 10; odchylenie = sqrt( pow( sig, 2 ) ); } cout << "suma=" << s << endl; cout << "srednia=" << d << endl; cout << "sig=" << sig << endl; cout << "odchylenie standardowe=" << odchylenie << endl; system( "pause" ); }
Chodzi o to że , sig i odchylenie po konpilacji jest takie same i nie wiem co na to poradzić i chciałbym się dowiedzieć czy zapis :
sig = sig +( pow( tablica[ i ] - 2, 8 ) ) / 10; odchylenie = sqrt( pow( sig, 2 ) );
jest poprawny |
|
DejaVu |
» 2010-11-13 19:01:31 odchylenie = sqrt( pow( sig, 2 ) );
Co Twoim zdaniem oznacza powyższa linijka? :) |
|
Tymek Temat założony przez niniejszego użytkownika |
» 2010-11-13 19:14:38 sig = sig +( pow( tablica[ i ] - 2, 8 ) ) / 10; odchylenie = sqrt( pow( sig, 2 ) );
Wpierw liczy sigme w sposób , odejmuje od każdej liczby 2,8 potem bierze wynik z tego , który ma potęgować a potem dzielić /10 A potem odchylenie że pierwiastek z sigmy do kwadratu |
|
DejaVu |
» 2010-11-13 19:17:41 Nie odpowiedziałeś na moje pytanie. Po co podnosisz do kwadratu, skoro następną operacją jest obliczenie pierwiastka z uzyskanego wyniku? Jedyne co uzyskasz to wartość bezwzględną liczby, którą można zrealizować równie dobrze tak:
if( bla < 0 ) bla = - bla;
|
|
Tymek Temat założony przez niniejszego użytkownika |
» 2010-11-13 19:21:17 EEeee... faktycznie...... nie wiem chyba się za bardzo pośpieszyłem , ale i tak został poprzedni problem ze po kompilacji mam 0 i nie mam pojęcia dlaczego #include <iostream.h> #include <math.h> main() { float tablica[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; float s = 0, d = 0, sig = 0, odchylenie = 0; for( int i = 0; i < 10; i++ ) { s = s + tablica[ i ]; d = s / 10; sig = sig +( tablica[ i ] - 2, 8 ) / 10; odchylenie = sqrt( sig ); } cout << "suma=" << s << endl; cout << "srednia=" << d << endl; cout << "sig=" << sig << endl; cout << "odchylenie standardowe=" << odchylenie << endl; system( "pause" ); }
Dlaczego nie bierze wartości z tablicy
sig = sig +( tablica[ i ] - 2, 8 ) / 10;
o tutaj ;[/i] |
|
DejaVu |
» 2010-11-13 19:26:11 To jest prosty program. Wypisz sobie po prostu wyniki poszczególnych kroków na ekran. Jedyne co mogę napisać to program działa dokładnie tak jak go napisałeś. Komputer nie wprowadził Ci żadnych błędów, co najwyżej Ty błędnie zapisałeś to co chciałeś osiągnąć. |
|
Tymek Temat założony przez niniejszego użytkownika |
» 2010-11-13 19:37:43 #include <iostream.h> #include <math.h> main() { float tablica[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; float s = 0, d = 0, sig = 0, sigg = 0, odchylenie = 0; for( int i = 0; i < 10; i++ ) { s = s + tablica[ i ]; d = s / 10; sig = sig +( tablica[ i ] - 2, 8 ); sigg = sig / 10; odchylenie = sqrt( sigg ); } cout << "suma=" << s << endl; cout << "srednia=" << d << endl; cout << "sig=" << sigg << endl; cout << "odchylenie standardowe=" << odchylenie << endl; system( "pause" ); }
Napełniłeś mnie pozytywną energią myślenia i chyba się udało , matematycznie jest to chyba poprawnie : D. ale mam do ciebie jeszcze jedno pytanie gdy chciałem zadeklarować Float 2sig ; to było napisane że jest błąd trzeba w takim przypadku robić : Const float 2sig ; ??? |
|
DejaVu |
» 2010-11-13 19:41:47 |
|
« 1 » 2 |