algoritmus
algoritmus
PLS poradte mi ako mam vyriesit toto: Pre danú konečnú postupnosť riešte algoritmicky presun jej minima na koniec. pls musim to mat a neviem ani zatat z toho ak niekto vie poradte
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
najprv si vezmeš ako minimum prvý prvok ( a[1] ), a zapamätáš si jeho index. Potom prejdeš všetkými prvkami od druhého až po posledný a porovnávaš s minimálnym. Ak si našiel menší, zapamätáš si ako minimálny tento nový, inak ideš na ďalší prvok:
for i:=2 to n do if a<a[min] then min:=i
nakoniec posunieš všetky prvky od a[min+1] až po a[n] o jedna dolava, a do a[n] dáš a[min]
(zjednodušene povedané, programovo to budeš riešiť trošku inač, lebo po poslednom presúvaní už bude v a[min] niečo iné, preto si tú hodnotu musíš dať do nejakej pomocnej)
for i:=2 to n do if a<a[min] then min:=i
nakoniec posunieš všetky prvky od a[min+1] až po a[n] o jedna dolava, a do a[n] dáš a[min]
(zjednodušene povedané, programovo to budeš riešiť trošku inač, lebo po poslednom presúvaní už bude v a[min] niečo iné, preto si tú hodnotu musíš dať do nejakej pomocnej)
audiotrack napísal:najprv si vezmeš ako minimum prvý prvok ( a[1] ), a zapamätáš si jeho index. Potom prejdeš všetkými prvkami od druhého až po posledný a porovnávaš s minimálnym. Ak si našiel menší, zapamätáš si ako minimálny tento nový, inak ideš na ďalší prvok:
for i:=2 to n do if a<a[min] then min:=i
nakoniec posunieš všetky prvky od a[min+1] až po a[n] o jedna dolava, a do a[n] dáš a[min]
(zjednodušene povedané, programovo to budeš riešiť trošku inač, lebo po poslednom presúvaní už bude v a[min] niečo iné, preto si tú hodnotu musíš dať do nejakej pomocnej)
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
v akom jazyku to máš mať? ja som používal syntax pascalu aby som ti to objasnil, aj tak to asi nepomohlo 
no proste máš 10 čísel v poli (a[1] až a[10]). Ty máš najmenšie číslo presunúť na koniec, takže na začiatku si najmenšie zvolíš to číslo čo je v a[1]. Do premennej min si uložíš jednotku, lebo najmenšie (zatial najmenšie) sa nachádza v prvom prvku pola. Potom prejdeš celým polom (for I:=2 to 10). Stačí prechádzať od druhého prvku, lebo prvý nemusím porovnávať keď som ho zvolil za minimálny. Pri každom prvku sa pozrem či je menší ako ten môj (či je a menšie ako a[min] //v min mame stale tu jednotku). Ak áno, tak si do min uložím i (teda index aktuálneho prvku). Po prejdení takýmto cyklom mám teraz v min index najnižšieho prvku. Dajme tomu že je to 5, tak a[5] má najnižšiu hodnotu. Nakoniec si a[min] (teda teraz naše a[5] uložím do pomocnej premennej, napríklad pom:=a[min]) a všetky prvky od min+1 až po posledný posuniem. Čiže šiesty prvok príde na pozíciu piateho, siedmy na pozíciu šiesteho, ôsmy na pozíciu siedmeho.... a na konci pola mi ostane volné miesto, kde priradím hodnotu z pom (a[10] := pom). neviem ako ti to lepšie objasniť, asi fakt len keby hodím hotový program, ale to by som ti asi spravil celú úlohu, a to nechcem. Chcem ťa iba nasmerovať aby si si to spravil sám. Navyše ani stále neviem v akom jazyku to máš programovať (ak to vôbec máš programovať, lebo píšeš iba o algoritme)
no proste máš 10 čísel v poli (a[1] až a[10]). Ty máš najmenšie číslo presunúť na koniec, takže na začiatku si najmenšie zvolíš to číslo čo je v a[1]. Do premennej min si uložíš jednotku, lebo najmenšie (zatial najmenšie) sa nachádza v prvom prvku pola. Potom prejdeš celým polom (for I:=2 to 10). Stačí prechádzať od druhého prvku, lebo prvý nemusím porovnávať keď som ho zvolil za minimálny. Pri každom prvku sa pozrem či je menší ako ten môj (či je a menšie ako a[min] //v min mame stale tu jednotku). Ak áno, tak si do min uložím i (teda index aktuálneho prvku). Po prejdení takýmto cyklom mám teraz v min index najnižšieho prvku. Dajme tomu že je to 5, tak a[5] má najnižšiu hodnotu. Nakoniec si a[min] (teda teraz naše a[5] uložím do pomocnej premennej, napríklad pom:=a[min]) a všetky prvky od min+1 až po posledný posuniem. Čiže šiesty prvok príde na pozíciu piateho, siedmy na pozíciu šiesteho, ôsmy na pozíciu siedmeho.... a na konci pola mi ostane volné miesto, kde priradím hodnotu z pom (a[10] := pom). neviem ako ti to lepšie objasniť, asi fakt len keby hodím hotový program, ale to by som ti asi spravil celú úlohu, a to nechcem. Chcem ťa iba nasmerovať aby si si to spravil sám. Navyše ani stále neviem v akom jazyku to máš programovať (ak to vôbec máš programovať, lebo píšeš iba o algoritme)
fu teraz tomu lepsie chapem aspon podstatu ako o co tam ide. ale nam nic nevraveli ze to mame programovat. Iba mam riesit tu postupnost presunu na koniec. A neviem ani, to sa robi aj v dakom programe?? a ako ukladam tie cisla? to mmi dako pocita? ako mozno si myslis ze som uplny idiot
ale neviem som z toho mimo ako to mam robit a v com.
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
sformuluj, to mam napisat nieco ako ty? ja neviem ako zatvorky atd. pocuvaj ja neviem jedno zadanie mame taketo a brat to ani dalej nebudeme tak mi pls povec ako to mam zapisat.audiotrack napísal:slovný algoritmus som ti už napísal (v dvoch verziách - kratšia, a pre debila) takže to iba zformuluj, daj tomu slovenskú gramatiku a koniec. Ak to nepotrebuješ programovať. Ale bolo by dobre keby si tomu porozumel a opísal ho možno vlastnými slovami
omg..., su tam dve verzie, obe maximalne jasne.
ako zistis najmensi prvok? jedine porovnavanim.
ako porovnas vsetky prvky? jeden za druhym, hladas minimum, teda ta zaujima len ten, ktory je mensi
1.krok: nech je prvy prvok minimum
2.krok: porovnas prvy prvok s druhym prvkom, ak je druhy mensi, minimum je ten druhy (ak nie, tak minimum ti ostava prvy)
3.krok: porovnas minimum s tretim prvkom, zapamatas minimum
... porovnavas postupne tvoj "aktualny minimalny prvok" so vsetkymi prvkami
zaver: mas ulozene minimum (jeho index) a vymenis ho s poslednym prvkom
ako zistis najmensi prvok? jedine porovnavanim.
ako porovnas vsetky prvky? jeden za druhym, hladas minimum, teda ta zaujima len ten, ktory je mensi
1.krok: nech je prvy prvok minimum
2.krok: porovnas prvy prvok s druhym prvkom, ak je druhy mensi, minimum je ten druhy (ak nie, tak minimum ti ostava prvy)
3.krok: porovnas minimum s tretim prvkom, zapamatas minimum
... porovnavas postupne tvoj "aktualny minimalny prvok" so vsetkymi prvkami
zaver: mas ulozene minimum (jeho index) a vymenis ho s poslednym prvkom
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
dobre to uz chapem, diky ale zapisujem to ako? pomocou dakych zatvoriek alebo ako?johny_sk napísal:omg..., su tam dve verzie, obe maximalne jasne.
ako zistis najmensi prvok? jedine porovnavanim.
ako porovnas vsetky prvky? jeden za druhym, hladas minimum, teda ta zaujima len ten, ktory je mensi
1.krok: nech je prvy prvok minimum
2.krok: porovnas prvy prvok s druhym prvkom, ak je druhy mensi, minimum je ten druhy (ak nie, tak minimum ti ostava prvy)
3.krok: porovnas minimum s tretim prvkom, zapamatas minimum
... porovnavas postupne tvoj "aktualny minimalny prvok" so vsetkymi prvkami
zaver: mas ulozene minimum (jeho index) a vymenis ho s poslednym
prvkom
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
-
neutronmind
Expert
- Príspevky: 189
- Registrovaný: 05 aug 2008, 14:17