Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
amorphis Forumaš(ica)
Pridružen/a: 10. 02. 2007. (23:15:13) Postovi: (101)16
Lokacija: zg
|
|
[Vrh] |
|
Vila Zvončica Forumaš(ica)
Pridružen/a: 31. 01. 2008. (18:51:58) Postovi: (17)16
|
Postano: 15:25 čet, 11. 6. 2009 Naslov: |
|
|
koliko sam primjetila, u zadatku s matricam između ostalog pise i ovo:
[quote]
Također, klasa treba imati implementirane sljedeće operatore:
...
, *, ~ (unarni) koji vraćaju redom trag, determinantu i rang matrice
...
* (unarni), koji vraća duljinu riječi (kao int)
[/quote]
znaci dva puta unarni * s tim da mi ovaj drugi uopce nije jasan
koliko sam primjetila, u zadatku s matricam između ostalog pise i ovo:
Citat: |
Također, klasa treba imati implementirane sljedeće operatore:
...
, *, ~ (unarni) koji vraćaju redom trag, determinantu i rang matrice
...
* (unarni), koji vraća duljinu riječi (kao int)
|
znaci dva puta unarni * s tim da mi ovaj drugi uopce nije jasan
|
|
[Vrh] |
|
nameless Forumaš(ica)
Pridružen/a: 29. 09. 2007. (13:59:36) Postovi: (58)16
Spol:
Lokacija: Zagreb
|
|
[Vrh] |
|
Luuka Forumaš(ica)
Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol:
Lokacija: Hakuna Matata
|
|
[Vrh] |
|
nameless Forumaš(ica)
Pridružen/a: 29. 09. 2007. (13:59:36) Postovi: (58)16
Spol:
Lokacija: Zagreb
|
Postano: 17:18 čet, 11. 6. 2009 Naslov: |
|
|
Također, klasa treba imati implementirane sljedeće operatore:
...
...
== za uspoređivanje dviju matrica. Dvije matrice smatraju se jednakima ako su sve razlike odgovarajućih elemenata manje od Matrica::eps (defaultna vrijednost 10^-4). Treba omogućiti mijenjanje Matrica::eps izvana, pridruživanjem.
a klasa matrica mi se sastoji od elemenata matrice. ne znam kud s tim eps.
...
# [], koji prima int 11, 12, 21 ili 22, i vraća odgovarajuću poziciju u matrici. Treba biti omogućeno i mijenjanje vrijednosti u matrici preko tog operatora, poput m[21]=3.5;
Također, klasa treba imati implementirane sljedeće operatore:
...
...
== za uspoređivanje dviju matrica. Dvije matrice smatraju se jednakima ako su sve razlike odgovarajućih elemenata manje od Matrica::eps (defaultna vrijednost 10^-4). Treba omogućiti mijenjanje Matrica::eps izvana, pridruživanjem.
a klasa matrica mi se sastoji od elemenata matrice. ne znam kud s tim eps.
...
# [], koji prima int 11, 12, 21 ili 22, i vraća odgovarajuću poziciju u matrici. Treba biti omogućeno i mijenjanje vrijednosti u matrici preko tog operatora, poput m[21]=3.5;
_________________ "ja sam samo tu da vreme brže proleti"...
|
|
[Vrh] |
|
Luuka Forumaš(ica)
Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol:
Lokacija: Hakuna Matata
|
Postano: 17:24 čet, 11. 6. 2009 Naslov: |
|
|
Taj eps bi ja stavio kao static... kao što su u prošloj dz bile one liste svih studenata,mentora, predmeta... zajedničko svima... i ako je moguće mijenjat izvana onda još taj dio klase stavit kao public.
dakle nešto kao:
[code:1]
class MATRICA
{
protected: int x1,x2,x3,x4;
public: static double eps;
}
double MATRICA::eps=0.0001;
[/code:1]
Bar bi ja tako.
A za operator [] pogledaj u vježbama, i dz od prošle godine, na koju foru ide ;)
Taj eps bi ja stavio kao static... kao što su u prošloj dz bile one liste svih studenata,mentora, predmeta... zajedničko svima... i ako je moguće mijenjat izvana onda još taj dio klase stavit kao public.
dakle nešto kao:
Kod: |
class MATRICA
{
protected: int x1,x2,x3,x4;
public: static double eps;
}
double MATRICA::eps=0.0001;
|
Bar bi ja tako.
A za operator [] pogledaj u vježbama, i dz od prošle godine, na koju foru ide
_________________ "Bolje bi prolazio na faxu da sam na drogama nego na netu" - by a friend of mine
"Poslije spavanja doma spavanje bilo di mi je najdraža stvar" - by the same guy
|
|
[Vrh] |
|
zoxter Forumaš(ica)
Pridružen/a: 24. 10. 2007. (17:34:45) Postovi: (B)16
|
|
[Vrh] |
|
Luuka Forumaš(ica)
Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol:
Lokacija: Hakuna Matata
|
|
[Vrh] |
|
zoxter Forumaš(ica)
Pridružen/a: 24. 10. 2007. (17:34:45) Postovi: (B)16
|
|
[Vrh] |
|
Cobs Forumaš(ica)
Pridružen/a: 21. 01. 2008. (13:32:15) Postovi: (206)16
Spol:
Lokacija: Geto
|
Postano: 16:16 pet, 12. 6. 2009 Naslov: |
|
|
u zadaci pise da trebamo napraviti operator:
* [], koji prima int 11, 12, 21 ili 22, i vraća odgovarajuću poziciju u matrici. Treba biti omogućeno i mijenjanje vrijednosti u matrici preko tog operatora, poput m[21]=3.5;
zbog toga sto on mora mjenjati vrijednost odredenom skalaru, prema zadaci od prosle godine vidio sam da u implementaciji treba staviti da operator vraca referencu na tip double. E sad... u mainu kojim bi trebali provjeravati tocnost funkcija da nam je kod...
[code:1]cout << m2[11] << ' ' << m4[12] << ' ' << Matrica(3)[22] << endl;[/code:1]
meni compiler javlja gresku na ovome... ne znam kak da to rjesim
( kada sam izuzeo ovo drugo svojstvo operatora ( da moze i mjenjati vrijednosti , tj. maknuo sam referencu, takoder sam iz maina maknuo sve djelove koda koji mjenjaju vrijednost skalarima tim operatorom ) tada mi je sve radilo )
Ne znam kak to rjesit pa ak netko zna u cem je problem nek javi.
Compiler javlja:
[code:1]C:/.../Racunarskipraktikum1/zadaca4/pocetak.cpp: In
function `int main()':
C:/.../Racunarskipraktikum1/zadaca4/pocetak.cpp:183: passing
`const Matrica' as `this' argument of `double& Matrica::operator[](int)'
discards qualifiersExecution terminated[/code:1]
jos dva detalja:
u mainu koji nam je dan pise...
[code:1]
Matrica m8(cos(1),-sin(1),sin(1),cos(1));
Matrica m9(cos(50000),-sin(50000),sin(50000),cos(50000));
[/code:1]
tu mi je compiler javljo neku gresku s funkcijama sin i cos i tipom double, pa sam samo nadodao iza svakog broja točku i time rjesio problem, al me zanima dal se taj problem desio samo meni ili...? mislim da bi to moralo proć i bez točke ili ?
i jos jedna stvar...
izracunam inverz matrice i pomnozim matricu s njenim inverzom. Ono sto bi trebao dobiti je jedinicna matrica , a ja dobijem neku matricu koja izgleda npr:
1 0
-4.4345e-016 1
broj -4.4345e-016 bi trebao biti 0, a sigurno nemam gresku u potupku nalazenja inverza. Ne dobijem 0 zato sto u postupku dobijem neki broj koji racunalo zaokruzi pa tu postoji mala greska koja se kasnijim racunanjem povecava. Jel se moze to sprjecit? kako?
u zadaci pise da trebamo napraviti operator:
* [], koji prima int 11, 12, 21 ili 22, i vraća odgovarajuću poziciju u matrici. Treba biti omogućeno i mijenjanje vrijednosti u matrici preko tog operatora, poput m[21]=3.5;
zbog toga sto on mora mjenjati vrijednost odredenom skalaru, prema zadaci od prosle godine vidio sam da u implementaciji treba staviti da operator vraca referencu na tip double. E sad... u mainu kojim bi trebali provjeravati tocnost funkcija da nam je kod...
Kod: | cout << m2[11] << ' ' << m4[12] << ' ' << Matrica(3)[22] << endl; |
meni compiler javlja gresku na ovome... ne znam kak da to rjesim
( kada sam izuzeo ovo drugo svojstvo operatora ( da moze i mjenjati vrijednosti , tj. maknuo sam referencu, takoder sam iz maina maknuo sve djelove koda koji mjenjaju vrijednost skalarima tim operatorom ) tada mi je sve radilo )
Ne znam kak to rjesit pa ak netko zna u cem je problem nek javi.
Compiler javlja:
Kod: | C:/.../Racunarskipraktikum1/zadaca4/pocetak.cpp: In
function `int main()':
C:/.../Racunarskipraktikum1/zadaca4/pocetak.cpp:183: passing
`const Matrica' as `this' argument of `double& Matrica::operator[](int)'
discards qualifiersExecution terminated |
jos dva detalja:
u mainu koji nam je dan pise...
Kod: |
Matrica m8(cos(1),-sin(1),sin(1),cos(1));
Matrica m9(cos(50000),-sin(50000),sin(50000),cos(50000));
|
tu mi je compiler javljo neku gresku s funkcijama sin i cos i tipom double, pa sam samo nadodao iza svakog broja točku i time rjesio problem, al me zanima dal se taj problem desio samo meni ili...? mislim da bi to moralo proć i bez točke ili ?
i jos jedna stvar...
izracunam inverz matrice i pomnozim matricu s njenim inverzom. Ono sto bi trebao dobiti je jedinicna matrica , a ja dobijem neku matricu koja izgleda npr:
1 0
-4.4345e-016 1
broj -4.4345e-016 bi trebao biti 0, a sigurno nemam gresku u potupku nalazenja inverza. Ne dobijem 0 zato sto u postupku dobijem neki broj koji racunalo zaokruzi pa tu postoji mala greska koja se kasnijim racunanjem povecava. Jel se moze to sprjecit? kako?
|
|
[Vrh] |
|
matmih Forumaš(ica)
Pridružen/a: 07. 12. 2006. (22:57:42) Postovi: (1A4)16
Spol:
Lokacija: {Zg, De , Ri}
|
Postano: 22:35 pet, 12. 6. 2009 Naslov: |
|
|
Ovo s
1 0
-4.4345e-016 1 možeš rješit npr. da definiraš neki epsilon recimo 10^-6 ili koliko ti već treba, pa ako je vrijednost manja od toga staviš je na 0.
Rezultati za tako male vrijednosti tipa ^-16 su ionako jako neprecizni.
Za ono drugo, napiši šta točno vračaš u funkciji, izgleda da vračaš const matricu, a to ti compiler ne dopušta iz razloga šta bi ti preko reference trebao mjenjati vrijednosti pozicije matrice, šta kod const-a nije dopušteno. :)
Ovo s
1 0
-4.4345e-016 1 možeš rješit npr. da definiraš neki epsilon recimo 10^-6 ili koliko ti već treba, pa ako je vrijednost manja od toga staviš je na 0.
Rezultati za tako male vrijednosti tipa ^-16 su ionako jako neprecizni.
Za ono drugo, napiši šta točno vračaš u funkciji, izgleda da vračaš const matricu, a to ti compiler ne dopušta iz razloga šta bi ti preko reference trebao mjenjati vrijednosti pozicije matrice, šta kod const-a nije dopušteno.
|
|
[Vrh] |
|
PopStevo Forumaš(ica)
Pridružen/a: 24. 08. 2007. (12:40:28) Postovi: (42)16
Spol:
|
Postano: 9:50 ned, 14. 6. 2009 Naslov: |
|
|
isti problem sa trigonometrijskim funkcijama imao sam i ja. stvar je u kompajleru. u vc++ se dobije greška jer te funkcije imaju po nekoliko verzija ovisno o tipu podataka koje primaju (overloaded functions) pa ako se stavi samo 1, kompajler nezna kojeg je 1 tipa. kada staviš 1., onda se podrazumijeva tip double pa kompajler zna što treba. u g++ na studentu kompajl prolazi bez problema
a kod operatora [] moraš napraviti dvije različite implementacije
[code:1]double &operator[](int i);
double operator[](int i) const;[/code:1]
prva će uzeti normalan objekt tipa Matrica i vratiti referencu na traženi element matrice. takav element, pa očito i matricu, moguće je mijenjati. problem je u ovom zadatku što se može definirati i [b]konstantan[/b] objekt tipa Matrica, a onda kompajler traži funkciju koja iza popisa argumenata ima const. zato trebaš i ovu drugu verziju.
e sad, šta mene zanima je treba li napraviti duplu verziju operatora /= i kada se uspoređuju matrice s epsilonom, treba li provjeravati je li razlika manja ili jednaka ili strogo manja od epsilon
isti problem sa trigonometrijskim funkcijama imao sam i ja. stvar je u kompajleru. u vc++ se dobije greška jer te funkcije imaju po nekoliko verzija ovisno o tipu podataka koje primaju (overloaded functions) pa ako se stavi samo 1, kompajler nezna kojeg je 1 tipa. kada staviš 1., onda se podrazumijeva tip double pa kompajler zna što treba. u g++ na studentu kompajl prolazi bez problema
a kod operatora [] moraš napraviti dvije različite implementacije
Kod: | double &operator[](int i);
double operator[](int i) const; |
prva će uzeti normalan objekt tipa Matrica i vratiti referencu na traženi element matrice. takav element, pa očito i matricu, moguće je mijenjati. problem je u ovom zadatku što se može definirati i konstantan objekt tipa Matrica, a onda kompajler traži funkciju koja iza popisa argumenata ima const. zato trebaš i ovu drugu verziju.
e sad, šta mene zanima je treba li napraviti duplu verziju operatora /= i kada se uspoređuju matrice s epsilonom, treba li provjeravati je li razlika manja ili jednaka ili strogo manja od epsilon
|
|
[Vrh] |
|
Cobs Forumaš(ica)
Pridružen/a: 21. 01. 2008. (13:32:15) Postovi: (206)16
Spol:
Lokacija: Geto
|
|
[Vrh] |
|
nameless Forumaš(ica)
Pridružen/a: 29. 09. 2007. (13:59:36) Postovi: (58)16
Spol:
Lokacija: Zagreb
|
|
[Vrh] |
|
Cobs Forumaš(ica)
Pridružen/a: 21. 01. 2008. (13:32:15) Postovi: (206)16
Spol:
Lokacija: Geto
|
|
[Vrh] |
|
ivica Forumaš(ica)
Pridružen/a: 30. 01. 2007. (14:06:45) Postovi: (15)16
Spol:
|
|
[Vrh] |
|
glava Forumaš(ica)
Pridružen/a: 28. 03. 2007. (18:48:16) Postovi: (89)16
Spol:
|
Postano: 10:11 uto, 16. 6. 2009 Naslov: |
|
|
u zadatku s klasom Rijec pise ovako:
+, koji "zbraja" slova s istim indeksom (preciznije njihove pozicije u abecedi, od 0 do 25) modulo 26. Ako se pri tom dođe do kraja jedne od riječi, slova druge riječi se samo prepisuju. Na primjer, Rijec("abcde")+Rijec("aez")=="afbde", jer je (0,1,2)+(0,4,25)=(0,5,1) modulo 26.
dali taj operator onda vraca string ili rijec?
hvala!
u zadatku s klasom Rijec pise ovako:
+, koji "zbraja" slova s istim indeksom (preciznije njihove pozicije u abecedi, od 0 do 25) modulo 26. Ako se pri tom dođe do kraja jedne od riječi, slova druge riječi se samo prepisuju. Na primjer, Rijec("abcde")+Rijec("aez")=="afbde", jer je (0,1,2)+(0,4,25)=(0,5,1) modulo 26.
dali taj operator onda vraca string ili rijec?
hvala!
|
|
[Vrh] |
|
Cobs Forumaš(ica)
Pridružen/a: 21. 01. 2008. (13:32:15) Postovi: (206)16
Spol:
Lokacija: Geto
|
|
[Vrh] |
|
ekatarina Forumaš(ica)
Pridružen/a: 25. 11. 2007. (19:22:50) Postovi: (161)16
Spol:
|
Postano: 11:28 uto, 16. 6. 2009 Naslov: |
|
|
[quote="glava"]u zadatku s klasom Rijec pise ovako:
+, koji "zbraja" slova s istim indeksom (preciznije njihove pozicije u abecedi, od 0 do 25) modulo 26. Ako se pri tom dođe do kraja jedne od riječi, slova druge riječi se samo prepisuju. Na primjer, Rijec("abcde")+Rijec("aez")=="afbde", jer je (0,1,2)+(0,4,25)=(0,5,1) modulo 26.
dali taj operator onda vraca string ili rijec?
hvala![/quote]
Rijec.
glava (napisa): | u zadatku s klasom Rijec pise ovako:
+, koji "zbraja" slova s istim indeksom (preciznije njihove pozicije u abecedi, od 0 do 25) modulo 26. Ako se pri tom dođe do kraja jedne od riječi, slova druge riječi se samo prepisuju. Na primjer, Rijec("abcde")+Rijec("aez")=="afbde", jer je (0,1,2)+(0,4,25)=(0,5,1) modulo 26.
dali taj operator onda vraca string ili rijec?
hvala! |
Rijec.
|
|
[Vrh] |
|
Ančica Forumaš(ica)
Pridružen/a: 01. 12. 2006. (16:12:53) Postovi: (F6)16
Spol:
|
|
[Vrh] |
|
|