|
Programiranje Programski jezici, tehnike, alatke... |
|
Alatke vezane za temu | Vrste prikaza |
26.3.2009, 18:08 | #1 |
Novi član
Član od: 24.10.2008.
Lokacija: Sarajevo
Poruke: 26
Zahvalnice: 5
Zahvaljeno 3 puta na 3 poruka
|
Jedan zadatak C++. Hitno!
Neki element matrice naziva se njeno sedlo, ukoliko je on ujedno najveći element u redu u kojem se nalazi i najmanji element u koloni u kojoj se nalazi, ili obrnuto (tj. najmanji element u redu u kojem se nalazi i najveći element koloni u kojoj se nalazi). Pojam sedla matrice od velikog je značaja u teoriji igara. Nemaju sve matrice sedlo, a neke ih mogu imati i više.
Napišite funkciju koja kao parametar prima matricu organiziranu kao vektor vektôrā, a koja kao rezultat vraća koliko sedala posjeduje ta matrica (odnosno 0 ukoliko matrica ne posjeduje niti jedno sedlo). Ukoliko preneseni parametar nema strukturu matrice (tj. ukoliko svi redovi proslijeđenog vektora vektôrā nemaju isti broj elemenata), funkcija treba baciti izuzetak. Napisanu funkciju testirajte u glavnom programu na primjeru matrice čije se dimenzije i elementi unose sa tastature. Treba mi samo ona petlja kada idem korz matricu, ništa više.... :-( |
26.3.2009, 20:17 | #2 |
Drug Član
Član od: 12.7.2006.
Lokacija: SSH - Selendra Supreme HQ
Poruke: 7.147
Zahvalnice: 772
Zahvaljeno 2.267 puta na 1.686 poruka
|
Re: Jedan zadatak C++. Hitno!!
Shta ti je sedlo?
Pa ugnezdi dve petlje: Kod:
for(int i =0; i<x; i++){ for(int j=0; j<y; j++){ vektor[i][j]; // ovde radi sa njim shta ocesh } } |
26.3.2009, 21:03 | #3 |
Novi član
Član od: 24.10.2008.
Lokacija: Sarajevo
Poruke: 26
Zahvalnice: 5
Zahvaljeno 3 puta na 3 poruka
|
Re: Jedan zadatak C++. Hitno!!
sedlo, ukoliko je on ujedno najveći element u redu u kojem se nalazi i najmanji element u koloni u kojoj se nalazi, ili obrnuto (tj. najmanji element u redu u kojem se nalazi i najveći element koloni u kojoj se nalazi)
Ma znam ja to da trebam dvije petlje, i da koristim .length() (tačnije koristim .size(), zbog int tipa, ispravnije je). Elem, problem mi je kako da obiđem sve elemente matrice odjednom na dva načina. Dakle da nađem sedlo(sedla) i za red-kolona i kolona-red odjednom. Kontaš? evo npr. trazenje za red kolona Kod:
int SedloPrviSlucaj(vector<vector<double> > matrica){ int x; int sedlo=0; for(int i=0; i<matrica.size(); i++){ x=0; double max=matrica[i][0]; for(int j=1; j<matrica[0].size(); j++){ if(matrica[i][j]>max){ max=matrica[i][j]; x=j; } } int t=0; for(int k=0; k<matrica.size(); k++){ if(matrica[k][x]>matrica[i][x]) t++; } if(t==matrica.size()-1){ sedlo++; } } return sedlo; } |
27.3.2009, 0:23 | #4 |
Deo inventara foruma
Član od: 29.1.2008.
Poruke: 20.482
Zahvalnice: 433
Zahvaljeno 4.007 puta na 3.729 poruka
|
Re: Jedan zadatak C++. Hitno!!
Možda treba dvodimenzionalni niz?Mada meni ovde nije ništa jasno
|
27.3.2009, 2:11 | #5 |
Starosedelac
|
Re: Jedan zadatak C++. Hitno!!
Kod:
int SedloPrviSlucaj(vector<vector<double> > matrica) { int x, y, t, w; int sedlo = 0; if (matrica[0].size() != matrica.size()) throw "greska"; for (int i = 0; i < matrica.size(); i++) { x = 0; y = 0; double max = matrica[i][0]; double min = matrica[i][matrica.size() - 1]; for (int j = 0; j < matrica[0].size(); j++) { if (matrica[i][j] > max) { max = matrica[i][j]; x = j; } if (matrica[i][j] < min) { min = matrica[i][j]; y = j; } t = 0; w = 0; for (int k = 0; k < matrica.size(); k++) { if (matrica[k][x] > max) t++; if (matrica[k][y] < min) w++; } if (t == matrica.size() - 1) sedlo++; if (w == matrica.size() - 1) sedlo++; } } return sedlo; } ako u istom redu imamo dve dvojke, i u obe kolone je najmanji broj 4 2 6 3 2 x 5 x x 4 x 6 x x 7 x 3 x x 9 x 7 x x 8 dakle obe dvojke su sedlo? ukoliko je to sluchaj mora funkcija malo da se zakomplikuje |
Sledeći korisnik se zahvaljuje korisniku EclipsE na korisnoj poruci: | ||
RuSkO_17 (27.3.2009) |
27.3.2009, 8:49 | #6 | |
Novi član
Član od: 24.10.2008.
Lokacija: Sarajevo
Poruke: 26
Zahvalnice: 5
Zahvaljeno 3 puta na 3 poruka
|
Re: Jedan zadatak C++. Hitno!!
Pa piše ti da treba da koristiš vektor vektora, ne vidim sta je tu nejasno. :-)
Citat:
1 2 3 4 mi ispisuje da matrica ima čak 4 sedla, a ona ustvari ima 2 sedla (brojevi 2 i 3), vidi se da je broj 2 najveći u redu matrice, a najmanji u svojoj koloni, a vidi se i da broj 3 je najveći u svojoj koloni, a najmanji u svom redu. Valjda vam je sad kristalno jasno šta je sedlo, mada zadatak nije urađen. :-D a ova tvoja matrica 4 2 6 3 2 x 5 x x 4 x 6 x x 7 x 3 x x 9 x 7 x x 8 nema sedlo uopće, te dvice nisu sedla, bili bi sedla (obje) da su najveće u svom redu, dakle da prvi red izgleda ovako: 1 2 1 1 2 |
|
27.3.2009, 12:11 | #7 |
Starosedelac
|
Re: Jedan zadatak C++. Hitno!!
a nisam obracao paznju
Kod:
int SedloPrviSlucaj(vector<vector<double> > matrica) { int x, y, t, w; int sedlo = 0; if (matrica[0].size() != matrica.size()) throw "greska"; for (int i = 0; i < matrica.size(); i++) { x = 0; y = 0; double max = matrica[i][0]; double min = matrica[i][matrica.size() - 1]; for (int j = 0; j < matrica[0].size(); j++) { if (matrica[i][j] > max) { max = matrica[i][j]; x = j; } if (matrica[i][j] < min) { min = matrica[i][j]; y = j; } } t = 0; w = 0; for (int k = 0; k < matrica.size(); k++) { if (matrica[k][x] > max) t++; if (matrica[k][y] < min) w++; } if (t == matrica.size() - 1) sedlo++; if (w == matrica.size() - 1) sedlo++; } return sedlo; } |
27.3.2009, 15:50 | #8 |
Novi član
Član od: 24.10.2008.
Lokacija: Sarajevo
Poruke: 26
Zahvalnice: 5
Zahvaljeno 3 puta na 3 poruka
|
Re: Jedan zadatak C++. Hitno!!
Bravo, savršeno radi!
Biće bodova... Poslednja ispravka: RuSkO_17 (27.3.2009 u 16:03) |
Bookmarks sajtovi |
Alatke vezane za temu | |
Vrste prikaza | |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Hitno! Pomoć oko temperature GPU! | Andrija_22 | Overklok | 44 | 1.7.2012 23:34 |
Kviz na Pinku - matematički zadatak! | stevan10 | Brbljaonica | 15 | 18.3.2009 13:00 |
Hitno! Koje napajanje mi je potrebno? Napajanje izgleda gori | mozdani | ŠDK - Osnovne komponente | 7 | 25.6.2008 12:10 |
Jedan nalog za Net iskorišćen na dva mesta | EHHO | Komunikacioni uređaji i umrežavanje | 7 | 26.5.2008 16:32 |
Kako dodati još jedan HDD? | Tetanus | Nosači podataka | 20 | 11.12.2007 19:06 |