Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Program do obliczania średniej ważonej. C++

Ostatnio zmodyfikowano 2009-11-23 00:04
Autor Wiadomość
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 :
C/C++
#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")
P-11731
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
C/C++
double wynik = 0;
for( std::vector < int >::iterator i = dane.begin(); i != dane.end(); i++ )
{
    wynik += * i;
} //for
wynik *= 123;
P-11736
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.
C/C++
#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 );
};
P-11737
DejaVu
» 2009-11-22 18:38:36
Cóż... chyba nie za bardzo rozumiecie co to jest średnia ważona :)
P-11738
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 ? ;)
P-11739
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.
P-11741
« 1 »
  Strona 1 z 1