[ Pwnage @ 11.01.2010. 10:58 ] @
Evo ucim C++ iz neke knjige pa sam odlucio napraviti program racunanje prosjeka... Ucio sam polja , petlje i dosta toga... Ali char ne jos i tako, dosao sam do ovog

Code:
#include <cstdlib>
#include <iostream>
#include <cmath>

using namespace std;

int main ()
{
    int a,b,c;
    float zbroj;
    float prosjek;
    int broj_predmeta=0;
    int hrvatski=a,engleski=a,tjelesni=c;
    cout<<"Racunanje prosjeka!"<<endl;
    cout<<"Hrvatski: ";
    cin >>a;
    cout<<"Engleski: ";
    cin>>b;
    cout<<"Tjelesni: ";
    cin>>c;
    cout << "Broj predmeta:";
    cin>>broj_predmeta;
    zbroj= a+b+c;
    prosjek = zbroj / broj_predmeta;
    cout<<"Prosjek je : "<<prosjek<<endl;
    system("PAUSE");        
    return 0;
    }


Tako bi mogao napraviti svih 16 predmeta int a,b,c,d... i int svaki predmet = slovo...
Ali sigurno postoji neki laksi nacin npr da se moze sam unosit predmete i da se broj_predmeta sam zbroji... Ali nikako doci do toga pokusa sam svasta..I da nemoram ovaj zbroj tako radit da ih uvijek moram sve zbroj i tako... Moze mala pomoc...
Netrebate vi odrati kod , nego mi dajte "hint" usmjerenje s kojom bi naredbom kjoi dio mogao poboljsat pa cu ja sam skuzit... thx
[ X Files @ 11.01.2010. 11:48 ] @
Situacija koju pominjes je najklasicniji primer kada mozes upotrebiti NIZ promenljivih.

Dakle, umesto:
int a,b,c;

Pises:
int ocena[OCEKIVANI_BROJ_PREDMETA];

... a prethodno:
// u duhu C jezika
#define OCEKIVANI_BROJ_PREDMETA 50
ili:
// u duhu C++ jezika
const int OCEKIVANI_BROJ_PREDMETA = 50;


... a elementima pristupas:
ocena[0] // <--- ovo je prvi element, tj. predmet
ocena[1] // <--- ovo je drugi element, tj. predmet

ocena[OCEKIVANI_BROJ_PREDMETA-1] // <--- POSLEDNJI ELEMENT

Kada racunas proseke, onda prodjes kroz petlju i sve ih saberes odjednom.


Sto se tice pridruzivanja i teksta (naslova predmeta), da budu logicki uz predmet, onda to moze na razne nacine, na primer po ovom modelu:
char *predmet[3] = {"predmet1", "predmet2", "predmet3"};
... tako isti brojac "i" mozes upotrebiti i za unos ocene i za ispis predmeta:

primer:
Code (cpp):

#include <iostream>

using namespace std;

int main()
{
    const int OCEKIVANI_BROJ_PREDMETA = 3;

    int prosek=0;
    int ocena[OCEKIVANI_BROJ_PREDMETA];
    char *predmet[OCEKIVANI_BROJ_PREDMETA] = {"predmet1", "predmet2", "predmet3"};

    for ( int i=0; i<OCEKIVANI_BROJ_PREDMETA; i++ )
    {
        cout << "Unesite ocenu za predmet: " << predmet[i] << " :";
        cin >> ocena[i];

        if ( ocena[i] < 1 || ocena[i] > 5 )
        {
            cout << "Ocena mora biti izmedju 1 i 5 !!!" << endl;
            --i;
            continue;
        }

         prosek += ocena[i];
    }

    cout << endl << "Prosek:" << prosek/(double)OCEKIVANI_BROJ_PREDMETA << endl;

    return EXIT_SUCCESS;
}
 


Kasnije, kada budete ucili strukture, sve to spakujes u strukturu, a jos kasnije kada dodje na red STL, onda sve ovo isto samo jos drugacije... ;)
[ Mihajlo Cvetanović @ 11.01.2010. 11:51 ] @
Ako nije neophodno imenovati predmete (nego umesto "Engleski" može da stoji "Predmet broj 2") onda možeš učitavanje podataka da radiš u petlji. Koristio bi samo jednu promenljivu, i vrednost odmah dodavao na ukupan zbir. Broj predmeta bi uneo na samom početku, tako da znaš granicu petlje. Znači, u petlji bi imao cin >> ocena, a zatim i zbroj += ocjena.
[ X Files @ 11.01.2010. 11:56 ] @
^
Da, u pravu si. Mozda jos nisu ni radili nizove!