Forum » Programiranje » Dvodimezionalna polja
Dvodimezionalna polja
strobos ::
Pozdrav,
že nekaj časa se mučim s problemom, ki mi ga ne uspe realizirat. Ta problem pa je : imam dvodimenzionalno polje, v tem polju moram vrstice razporediti tako, da bo prva vrstica imela najmanjšo vsoto svojih elementov, zadnja pa največjo. Uspelo mi je, da sem lahko izračunal vsoto posamezne vrstice in potem te vsote razporedil po vrsti, ne pa celih vrstic. Ali zna kdo to napisat v C++?
Lp
že nekaj časa se mučim s problemom, ki mi ga ne uspe realizirat. Ta problem pa je : imam dvodimenzionalno polje, v tem polju moram vrstice razporediti tako, da bo prva vrstica imela najmanjšo vsoto svojih elementov, zadnja pa največjo. Uspelo mi je, da sem lahko izračunal vsoto posamezne vrstice in potem te vsote razporedil po vrsti, ne pa celih vrstic. Ali zna kdo to napisat v C++?
Lp
CCfly ::
Dvodimenzionalna tabela ni ravno najboljsa za tole. V C++ si naredi objekt npr class vrstica kjer imas zapisano tabelo oz eno vrstico nato pa le-te dajaj v dvosmerni seznam ali pa v vector.
http://www.cppreference.com/
Drugace pa lahko skopiras celotno vrstico pac. Naredi si eno enodimenzionalno tabelo kot zacasno odlozisce. Iz vrstice1 skopiraj vse v to tabelo, potem iz vrstice 2 skopiraj vsebino v vrstico1 in spet iz zacasne tabele v vrstico2.
Ni treba reci da je tole izredno potratno. Ce bos se imel probleme pa odpisi nazaj.
http://www.cppreference.com/
Drugace pa lahko skopiras celotno vrstico pac. Naredi si eno enodimenzionalno tabelo kot zacasno odlozisce. Iz vrstice1 skopiraj vse v to tabelo, potem iz vrstice 2 skopiraj vsebino v vrstico1 in spet iz zacasne tabele v vrstico2.
Ni treba reci da je tole izredno potratno. Ce bos se imel probleme pa odpisi nazaj.
Zgodovina sprememb…
- spremenilo: CCfly ()
Vesoljc ::
točno tko, delo z več dimenzionalnimi polji zna biti precej umazano...
tuki lahko pogledaš kako naj bi zadeve laufale (predvsem 6.15 do 6.20)
tkole zna biti veliko bolje:
tole pa pljune vun:
vrstica 2
2 0 0 0 0 0 0 0 0 0
vrstica 3
0 3 0 0 0 0 0 0 0 0
zacasna
2 0 0 0 0 0 0 0 0 0
vrstica 2
0 3 0 0 0 0 0 0 0 0
vrstica 3
2 0 0 0 0 0 0 0 0 0
go with ++
tuki lahko pogledaš kako naj bi zadeve laufale (predvsem 6.15 do 6.20)
tkole zna biti veliko bolje:
#include <iostream> using namespace std; template<typename TIP, int VELIKOST> class Vrstica { public: Vrstica (); Vrstica<TIP, VELIKOST>& operator = (const Vrstica<TIP, VELIKOST>& rhs); void Print (); void Nastavi (int ldIndeks, TIP ldVrednost); private: TIP mdVrstica[VELIKOST]; }; template<typename TIP, int VELIKOST> Vrstica<TIP, VELIKOST>::Vrstica() { for(int i = 0; i < VELIKOST; ++i) mdVrstica[i] = 0; } template<typename TIP, int VELIKOST> Vrstica<TIP, VELIKOST>& Vrstica<TIP, VELIKOST>::operator =(const Vrstica<TIP, VELIKOST>& rhs) { for(int i = 0; i < VELIKOST; ++i) { this->mdVrstica[i] = rhs.mdVrstica[i]; } return(*this); } template<typename TIP, int VELIKOST> void Vrstica<TIP, VELIKOST>::Print() { for(int i = 0; i < VELIKOST; ++i) cout << mdVrstica[i] << " "; cout << endl; } template<typename TIP, int VELIKOST> void Vrstica<TIP, VELIKOST>::Nastavi(int ldIndeks, TIP ldVrednost) { mdVrstica[ldIndeks] = ldVrednost; } int main() { Vrstica<int,10> ldPolje[10]; Vrstica<int,10> ldZacasna; ldPolje[2].Nastavi(0,2); cout << "vrstica 2" << endl; ldPolje[2].Print(); ldPolje[3].Nastavi(1,3); cout << "vrstica 3" << endl; ldPolje[3].Print(); ldZacasna = ldPolje[2]; cout << "zacasna" << endl; ldZacasna.Print(); ldPolje[2] = ldPolje[3]; ldPolje[3] = ldZacasna; cout << "vrstica 2" << endl; ldPolje[2].Print(); cout << "vrstica 3" << endl; ldPolje[3].Print(); return(1); }
tole pa pljune vun:
vrstica 2
2 0 0 0 0 0 0 0 0 0
vrstica 3
0 3 0 0 0 0 0 0 0 0
zacasna
2 0 0 0 0 0 0 0 0 0
vrstica 2
0 3 0 0 0 0 0 0 0 0
vrstica 3
2 0 0 0 0 0 0 0 0 0
go with ++
Abnormal behavior of abnormal brain makes me normal...
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Vsota določenih elementov matrike [C]Oddelek: Programiranje | 1005 (693) | RatedR |
» | [c#] Vstavljanje vrednosti v tabeloOddelek: Programiranje | 1616 (1438) | Cvenemir |
» | osnove v Javi - zvezdiceOddelek: Programiranje | 3573 (2795) | Tutankhamun |
» | [C++] urejanje nizov po velikostiOddelek: Programiranje | 2283 (2064) | Matako |
» | [c++] stil kodiranja, informativnoOddelek: Programiranje | 1938 (1754) | CCfly |