Program do obliczania średniej ważonej. C++
Ostatnio zmodyfikowano 2009-11-23 00:04
siudek26 Temat założony przez niniejszego użytkownika |
Program do obliczania średniej ważonej. C++ » 2009-11-22 15:42:38 Witam. Mam do napisania program, który będzie obliczał średnią ważoną. Korzystam tu z wektorów, ale mam problem z pomnożeniem przyjętych liczb razy wagę ( w tym przypadku x2 ) Próbowałem kombinować z iteratorami, ale mi to nie wychodzi... Program wygląda tak : #include <iostream> #include <conio.h> #include <vector> using namespace std;
vector < int > Oceny; vector < int >::iterator wagi;
int Waga() { }
int Funkcja() { int ocena; while( cin >> ocena ) { if( ocena > 0 && ocena <= 6 ) Oceny.push_back( ocena ); else cin.clear(); cin.sync(); } cout << Oceny.size() << endl; getch(); }
int main() { cout << "Witam w programie sluzacym do obliczania sredniej wazonej.\n" << "Teraz bedziesz musial podac oceny z poszczegolnych kategorii: \n" << " -kartkowki\n -sprawdziany\n -odpowiedzi ustne\n -zadania domowe i dodatkowe\n" << endl; getch(); cout << "Podaj wszystkie oceny z kartkowek\n" << "Po zakonczeniu wcisnij 'Q' " << endl; Funkcja(); Waga(); } Chodzi mi o to, żeby ktoś powiedział mi w jaki sposób pomnożyć sumę liczb znajdujących się w wektorze "Oceny" ( chce to umieścić w funkcji "Waga") |
|
DejaVu |
» 2009-11-22 18:27:17 Chodzi mi o to, żeby ktoś powiedział mi w jaki sposób pomnożyć sumę liczb znajdujących się w wektorze |
double wynik = 0; for( std::vector < int >::iterator i = dane.begin(); i != dane.end(); i++ ) { wynik += * i; } wynik *= 123;
|
|
malan |
» 2009-11-22 18:37:13 Tutaj masz przykład, tylko nie wiem, czy czegoś nie pomyliłem, jeśli tak to sory ;p. #include <iostream> #include <vector> using namespace std;
const int WAGA_OCEN = 2;
double fWaga( vector < int > vOc );
int main() { vector < int > vOceny; int iloscOcen, ocena; cout << "Podaj ilosc ocen: "; cin >> iloscOcen; for( int i = 0; i < iloscOcen; i++ ) { cout << "Podaj ocene " << i + 1 << ": "; cin >> ocena; if( ocena > 0 && ocena <= 6 ) vOceny.push_back( ocena ); } cout << "Srednia wazona = " << fWaga( vOceny ); cin.sync(); cin.get(); return 0; }
double fWaga( vector < int > vOc ) { double iloscOcen = vOc.size(), suma = 0; for( int i = 0; i < iloscOcen; i++ ) suma += vOc[ i ] * WAGA_OCEN; return suma /( iloscOcen * WAGA_OCEN ); };
|
|
DejaVu |
» 2009-11-22 18:38:36 Cóż... chyba nie za bardzo rozumiecie co to jest średnia ważona :) |
|
malan |
» 2009-11-22 18:46:14 Dawno tego nie liczyłem, ale coś tam jeszcze pamiętam ;p. Hmmm... kolega napisał, że będzie tu liczył oceny wagi 2 (przynajmniej tak go zrozumiałem ;p), więc dla ocen np.: 3,4,5 będzie to wyglądało mniej więcej tak: 3*2 + 4*2 + 5*2 / 2 + 2 + 2 Chyba nie pomyliłem niczego ? ;)
|
|
DejaVu |
» 2009-11-23 00:04:54 Po co liczyć średnią ważoną, gdy wagi są jednakowe dla wszystkich ocen? :) Wyjdzie dokładnie to samo co średnia arytmetyczna. |
|
« 1 » |