Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Klasa Vektor

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Klasa Vektor

[ Pregleda: 4084 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Edwa_ze
zenica

Član broj: 148365
Poruke: 63
*.telekabel.ba.



Profil

icon [Zadatak] Klasa Vektor08.11.2007. u 16:33 - pre 200 meseci
Pozzz......
Znam da nista uradjeno postavio nisam, ali ne znam niti jedan korak ovog programa.Dobio sam kao domaci zadatak da uradim dole navedeni program. Molio bih ako neko moze i zna da pomogne............HVALA


Klase
Opterecivanje operatora

1. Definisati klasu Vektor koja ima sljedece clanove:
a) tri clana podatka, koji definišu komponente vektora u tri dimenzije - ax, ay, az,
b) funkcijski clan definisi, koji definiše neki vektor intenziteta nula,
c) funkcijski clan dajVrijednost, koji definisanom vektoru daje vrijednost za njegove
komponente - clan ima maksimalno tri argumenta,
d) funkcijski clan ispis, koji ispisuje neki vektor u obliku (ax,ay,az),
e) funkcijski clan intenzitet, koji daje intenzitet nekog vektora,
f) funkcijski clan saberi, koji sabire dva vektora - rezultat je vektor,
g) funkcijski clan oduzmi, koji oduzima dva vektora - rezultat je vektor,
h) funkcijski clan pomnoziSkalar, koji vektor množi proizvoljnim realnim brojem -
rezultat je vektor,
i) funkcijski clan skalarProiz, koji daje skalarni proizvod dva vektora - rezultat je
realan broj,
j) funkcijski clan vektorProiz, koji daje vektorski proizvod dva vektora - rezultat je
vektor.
 
Odgovor na temu

xeron
Sarajevo

Član broj: 25909
Poruke: 133
89.146.190.*



Profil

icon Re: [Zadatak] Klasa Vektor09.11.2007. u 12:12 - pre 200 meseci
Code:

class Vector{
    double x, y, z;
    public:
    
    void Definisi (){
        x=0; y=0; z=0;
        
    }

    void dajVrijednost(double x, double y, double z){
        Vector::x=x; Vector::y=y; Vector::z=z;
        //Ovdje se mogla izvrsiti dodjela i bez pisanja
        //ovog Vector::, ali zbog preglednosti sam to stavio.
        //Sada se vidi da se x artibutu klase Vector dodjeljuje
        //vrijednost varijable x.
    }

    void Ispisi() const {
        cout<<"{"<<x<<", "<<y<<", "<<z<<"}";
    }

    double Intenzitet() const {
        return sqrt(x*x + y*y + z*z);
    }

    void Saberi(const Vector & v){
        x= x+v.x; y= y+v.y; z= z+v.z;
    }

    void Oduzmi(const Vector & v){
        x= x-v.x; y= y-v.y; z= z-v.z;
    }

    void PomnoziSkalarom(double s){
        x= x*s; y= y*s; z= z*s;
    }

   //Odavde sada sam mozes zakljuciti na koji nacin se prave metode
   //pa sam dodaj te preostale, koje nisam ovdje naveo.


I da kao sto u tvom naslovu pise "Opterecivanje operatora" ce se desiti u slucaju da nad nekim objektom tipa Vector pozovemo vise ulancanih metoda. Npr.
Code:
v1.Saberi(v2).PomnoziSkalarom(5).Ispisi()
nam nece dati zeljeni rezultat. Da bi rijesili ovaj problem metode trebaju da vracaju referencu na objekat, a ne kopije objekta sto je slucaj u gore navedenim metodama.

Izmjena metoda, sada se moze koristiti ulancani poziv:
Code:

Vector &PomnoziSkalarom(double s){
    x= x*s; y= y*s; z= z*s;
    return *this;
}

Vector &Saberi(Vector &v){
    x= x+v.x; y= y+v.y; z= z+v.z;
    return *this;
 }


if (argc > 1 && strcmp(argv[1], "-advice") == 0) {
printf("Don't Panic!n");
exit(42);
}
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Klasa Vektor

[ Pregleda: 4084 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.