[ Nina012 @ 22.10.2008. 20:49 ] @
Rad sa matricama nije veliki problem i prilično se dobro snađem , ali sada odjednom susretoh se sa klasama i ne znam kako da se koristim njima - izgleda da imam problem . Dobila sam zadatak da definišem klasu Matrix koja ima sl. članove : 1. 3 člana podatka red za broj redova , vrst za vrstu i elem preko pointera i ja to napisa ovako : Code: class Matrix { int red ; int vrst ; double **elem ; ali sada dođoše na red te funkcije pa se traži sledeće : 2. funkcijski član def koji definiše matricu sa svim elementima =0 3. funkcijski član upis koji pridružuje realne vrijednosti elementima matrice 4. funkcijski član ispis koji ispisuje matricu red po red 5. funkcijski član kvad koji provjerava da li je matrica kvadratna 6. funkcijski član trans koji daje transponovanu matricu zadane matrice 7. funkcijski član saberi, koji sabire 2 matrice i rezultat je matrica. Ukoliko broj redova i kolona ne odgovaraju ispisati text koji javlja grešku 8. funkcijski član oduzmi koji oduzima 2 matrice i rezultat je matrica isto javlja za grešku 9. funkcijski član pomnožiSkalar koji matricu množi proizvoljnim realnim brojem i rezultat je matrica 10 . funkcijski član pomnoži koji množi 2 matrice i rezultat je matrica ako redovi i kolone ne odgovaraju da javi grešku 11. funkcijski član sing ,koji provjerava da li je matrica singularna 12. funkcijski član inv , koji izračunava inverznu matricu ako ista postoji tj. ako matrica nije singularna 13. funkcijski član det , koji daje vrijednost determinante matrice ako je ista kvadratna Da li neko ima dovoljno iskustva i slobodnog vremena da definiše ove funkcijske članove ? Evo neki kod koji bi možda mogao pomoći osobi koja je nveć radila sa klasama , ja sam iskreno tek juče pokušala nešto s tim . ( definisan je unos ispis transponovana matrica .... ) CODE : Code: # include <iostream> # include <vector> using namespace std; // Funkcija DaLiJeGornjaTrougaona... bool DaLiJeGornjaTrougaona(vector<vector<double> > a){ bool istina=true; for (int i=1; i<a.size(); i++) for (int j=0; j<i; j++) if (a[j]!=0) istina=false; return istina; } // Funkcija TragMatrice... double TragMatrice(vector<vector<double> > a){ if (a.size()!=a[0].size()) throw "Matrica nije kvadratna, nema traga i ne moze biti trougaona!\n"; double rez=0; for (int i=0; i<a.size(); i++) rez+=a; return rez; } // Funkcija Transponovana... vector<vector<double> > Transponovana(vector<vector<double> > a){ int pom1=a.size(); // Pocetni broj redova matrice int pom2=a[0].size(); // Pocetne broj kolona matrice // max - veca dimenzija (red ili kolona) int max=a[0].size(); if (a.size()>a[0].size()) max=a.size(); // Resize matrice na kvadratnu dimenzija [max][max] a.resize(max); for(int i = 0; i < max; i++) a.resize(max); // "Okretanje" odgovarajucih pozicija u matrici double priv; for (int i=0;i<max;++i) for (int j=i+1;j<max;++j) Unaprijed hvala na pomoći !!! [Ovu poruku je menjao X Files dana 23.10.2008. u 10:38 GMT+1] |