|
Programiranje Programski jezici, tehnike, alatke... |
|
Alatke vezane za temu | Vrste prikaza |
14.6.2014, 20:54 | #1 |
Član
Član od: 19.9.2013.
Poruke: 52
Zahvalnice: 13
Zahvaljeno 0 puta na 0 poruka
|
Pomoc oko jednostavnog zadatka..
-Pozdrav ljudi, imam problem oko jednog jednostavnog zadatka, naime, zadatak trazi da se unesu 3 broja i da ih on sortira od najmanjeg ka najvecem. S' obzirom da ucim iz knjige "Programming - BjarneStroustrup", tako nesto, naisao sam na prvi problem, secam se iz srednje skole da je iz 'C' jezika bio preslikan problem, i da je bio lagan, ali sad ne mogu da ga resim, vrtim se u krug i nerviram se, posebno sto po knjizi su predjeni samo:
*Stringovi (i to tipa, unesite vase ime, kako se zovete, broj godina, da li ste muskarac ili zena itd, znaci jednostavni primeri) *Par stvari sa 'while petljom' *IF nareba (a ovaj zadatak sluzi za vezbu, takodje bio je i neki zadatak koji pretvara kilometre u milje, ali to je bas lagano, pa sam to uspeo da odradim iako cini mi se nijedan takav primer nije bio u knjizi do chapter 4, dokle sam stigao) -Tako da ovakav slican primer nije ni bio, pa sam se pogubio.. Znaci ako unesete: 4, 10, 5 on treba da ispise 4, 5, 10, ako unesete 4, 5 , 4, treba da ispise 4, 4, 5 itd. #include "Bjarne_Code.h" // Posto iz njegove knjige ucim, on je napravio ovaj header za pocetnike da nam bude lakse int main() { int a,i=0; cout << "Unesi brojeve! \n"; while (i<3) { cin >> a; i++; } system("Pause"); return 0; } *I ovo mi je bio jedan pokusaj, ali ovo ne radi nista, sem sto prihvata 3 broja koja sam uneo sa tastature, takodje, pre ovoga sam imao jos jedan pokusaj gde sam napisao program koji nalazi najveci (ili najmanji) unet broj, ali ni tu nisam imao previse srece.. Poslednja ispravka: Gam3r (14.6.2014 u 21:02) |
14.6.2014, 21:29 | #2 |
V.I.P. Zaštita
Član od: 30.9.2007.
Lokacija: Hypnos Control Room, Tokyo Metropolitan Government Building
Poruke: 5.914
Zahvalnice: 1.181
Zahvaljeno 1.320 puta na 1.094 poruka
|
Re: Pomoc oko jednostavnog zadatka..
Unesene brojeve treba da smjestiš u niz intova i onda da taj niz sortiraš i ispišeš. Prouči nizove ako već nisi.
|
14.6.2014, 21:51 | #3 |
Član
Član od: 19.9.2013.
Poruke: 52
Zahvalnice: 13
Zahvaljeno 0 puta na 0 poruka
|
Re: Pomoc oko jednostavnog zadatka..
Pa nisam, nizovi se nisu ni spominjali, zato se i nerviram, mozes li li ti ispises niz? Preko primera cu najbolje razumeti, prodjem kroz kod i vidim korak po korak sta i kako radi, pa cu se time voditi dok ne dodjem do nizova. Verujem da je kod za ovakav zadatak vrlo kratak, 7-8 linija i kraj..
|
14.6.2014, 22:31 | #4 |
Starosedelac
Član od: 4.11.2007.
Poruke: 1.726
Zahvalnice: 1.753
Zahvaljeno 629 puta na 363 poruka
|
Re: Pomoc oko jednostavnog zadatka..
Edit: ispravljeno na sugestiju ivan90BG
Na ovoj stranici imas objasnjenje u slikama, sto ce ti verovatno vise pomoci od onog sto ja ovde budem napisao, ali pokusacu. http://www.algolist.net/Algorithms/Sorting/Bubble_sort Dakle, kada napunis vektor nekim vrednostima, moras i da ih poredis. Poredices parove vrednosti. Ako imas 5, 1, 4, 6, 3, krenuces od prvog para. Poredis vrednosti, pa obzirom da je 1 < 5, zamenis ih, i dobices 1, 5, 4, 6, 3. U svakoj sledecoj iteraciji poredices sledeca dva para (u ovom slucaju 5 i 4 bi bio sledeci), dok ne dodjes do sortiranog niza. Dakle imas duplu petlju. Kod:
for(size_t i = 0 ; i < vec.size(); ++i) { for(size_t j = 0; j < vec.size() - i - 1; ++j) { } } Ako ne znas kako funkcionisu ugnjezdene petlje, to izgleda ovako: i = 0, j = 0 i = 0, j = 1 i = 0, j = 2 i = 1, j = 0 i = 1, j = 1 ... Da bi u svakoj iteraciji preuzimao i poredio dva susedna broja, morao bi da iskoristis jedan brojac, gde bi indeksiranjem uzeo trenutni element, a zatim na taj indeks dodas 1, da bi preuzeo njegov susedni (kada bi iskoristio j -1, uzeo bi prethodni). Kod:
if(vec[j] < (ili >) vec[j + 1]) Sada kada imas i uslov za poredjenje, jednostavno odradis swap vrednosti pomocu neke privremene promenljive. Kod:
int temp = vec[j]; vec[j] = vec[j + 1]; vec[j + 1] = temp; Poslednja ispravka: Krilce (15.6.2014 u 2:58) |
14.6.2014, 22:37 | #5 |
Starosedelac
Član od: 10.8.2007.
Lokacija: Temples of Syrinx
Poruke: 2.193
Zahvalnice: 417
Zahvaljeno 1.006 puta na 568 poruka
|
Re: Pomoc oko jednostavnog zadatka..
Da ume da koristi vektor, umeo bi i da reši zadatak.
Učitaj ta 3 broja u tri promenljive a, b, c. Učio si if naredbu, par if else provera koji je manji, taj prvi ispišeš i eto. Pa kad odmakneš još vrati se i pročitaj ovo što Krilce napisa. |
Sledeći korisnik se zahvaljuje korisniku Sun Tzu na korisnoj poruci: | ||
Teva (19.6.2014) |
14.6.2014, 22:54 | #6 |
Član
Član od: 19.9.2013.
Poruke: 52
Zahvalnice: 13
Zahvaljeno 0 puta na 0 poruka
|
Re: Pomoc oko jednostavnog zadatka..
Nasao sam na yt, neke C++ tutorijale:
https://www.youtube.com/watch?v=4f3rcjZedm4 Ima nekih 100 koliko sam video, pa kad sve prodjem (par dana, dok sve pregledam) cu se vratiti na knjigu, ali hvala momci za pomoc. A sto se poslednjeg komentara tice, znam da mogu da uporedjujem svaki sa svakim, ali smara i neprakticno je, nije to resenje, sta da trebam recimo 5, ili 10 clanova da uporedjujem? Zato i nisam hteo tako da ga resim. |
14.6.2014, 23:07 | #7 |
Veteran
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
|
Re: Pomoc oko jednostavnog zadatka..
@Krilce: Algoritam za sortiranje ti ne valja. Prva iteracija spoljne petlje će recimo dovesti namanji na prvu poziciju (i ispreturati malo ostatak niza), a sledeća iteracija će ga dovesti na durugu poziciju, tako da će na kraju najmanji biti na poslednjoj poziciji, a ostaka niza ispreturan na neki način. Treba svaki element da se poredi samo sa onim koji slede posle njega (da se ne dira sortirani deo niza).
|
Sledeći korisnik se zahvaljuje korisniku ivan90BG na korisnoj poruci: | ||
Krilce (15.6.2014) |
14.6.2014, 23:24 | #8 |
Starosedelac
Član od: 10.8.2007.
Lokacija: Temples of Syrinx
Poruke: 2.193
Zahvalnice: 417
Zahvaljeno 1.006 puta na 568 poruka
|
Re: Pomoc oko jednostavnog zadatka..
|
14.6.2014, 23:53 | #9 |
Veteran
|
Re: Pomoc oko jednostavnog zadatka..
@Gam3r
Sortiranje nizova je jedna od početnih i osnovnih stvari programiranja. Međutim, kako kažeš da niste radili nizove vrlo teško možeš da uradiš sortiranje brojeva, ako ne razumeš nizove. Zavisno od tvog interesovanja ka programiranju i vremena koje imaš na raspolaganju možeš da odabereš jedan od dva načina da rešiš tvoj problem. 1. Nađeš neku knjigu ili tutorijal na netu gde su nizovi obrađeni na samom početku. Potrošiš dan-dva da pređeš to i uradiš sortiranje po svojoj logici, mislim da nema potrebe da se zamaraš optimizovanim algoritmima sortiranja. Ako ti treba pomoć oko pronalaska odgovarajućeg materijala javi se. 2. Da nađeš na netu gotovo rešenje i da ga prekopiraš bez previše razumevanja. Kao što sam ti rekao sortiranje je jedna od bitnih osnova, i verujem da nema programskog jezika za koji ne možeš da nadješ primer sortiranja brojeva. |
15.6.2014, 0:01 | #10 |
Član
Član od: 19.9.2013.
Poruke: 52
Zahvalnice: 13
Zahvaljeno 0 puta na 0 poruka
|
Re: Pomoc oko jednostavnog zadatka..
Pa ne bih da samo prekorpiram, vec da razumem to, do sada, sve sto je bilo u knjizi sam razumeo, neke kodove koji su tamo dati kao primer sam sam menjao, isprobavao svasta nesto, tako da sam taj pocetak bas lepo razumeo, i onda kada sam radio takozvane 'drilove' na kraju chaptera, sam zapeo, posto to nije predjeno. Sada sam resio da pogledam ovih 100 (tako nesto) tutorijala sto sam video na netu, pa cu se vratiti na zadatke, verujem da cu razumeti nizove kad dodjem dotle (oko 40-50. tutorial je po redu), pa cu da nastavim po knizi da radim. To mi je neki plan za sada.
|
15.6.2014, 3:01 | #11 | |
Starosedelac
Član od: 4.11.2007.
Poruke: 1.726
Zahvalnice: 1.753
Zahvaljeno 629 puta na 363 poruka
|
Re: Pomoc oko jednostavnog zadatka..
Citat:
|
|
15.6.2014, 8:58 | #12 |
Veteran
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
|
Re: Pomoc oko jednostavnog zadatka..
Trebalo mi je malo vremena da razmislim šta si napisao. Napisao si bubble sort (samo bez provere sortiranosti tokom rada). Radi, ali nije baš najjednostavniji za početnika da razume.
Cenim da je ovo najjednostavniji: Kod:
for (int i = 0; i < vec.size()-1; ++i) { for (int j = i+1; j < vec.size(); ++j) { if (vec[i] < vec[j]) { int temp = vec[i]; vec[i] = vec[j]; vec[j] = temp; } } } |
15.6.2014, 9:55 | #13 |
Starosedelac
Član od: 27.11.2012.
Lokacija: Novi Bečej/Sad
Poruke: 1.569
Zahvalnice: 134
Zahvaljeno 406 puta na 371 poruka
|
Re: Pomoc oko jednostavnog zadatka..
Evo par klipova o Selection i Bubble sortu koji su mi pomogli da ih lepo razumem
https://www.youtube.com/watch?v=y3hf_dU9mlE https://www.youtube.com/watch?v=dUHlCZ6qCus |
19.6.2014, 17:19 | #14 |
Starosedelac
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
|
Re: Pomoc oko jednostavnog zadatka..
Pa ne gine upoređivanje članova Bubble i selection sortovi pomenuti su manje više upoređivanje svakog sa svakim
|
Bookmarks sajtovi |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Procena računara | alien | Šta da kupim? | 6942 | 17.12.2023 10:28 |
Gledanje filmova putem Android telefona? Pomoc hitno | Kobilic | Aparati i oprema | 34 | 13.8.2015 11:24 |
pomoc eksel (rešavanje zadataka) | boza16v | Aplikativni softver | 0 | 1.12.2012 19:12 |
Samsung gt-S5230 Aplikacije??? Pomoc | Kobilic | Aparati i oprema | 26 | 17.9.2012 18:38 |
Pomoc oko pravljenja programa(C) | RUSuper | Programiranje | 14 | 20.4.2012 17:35 |