Vytvorenie algoritmu
-
nitrox
Light Star
- Príspevky: 239
- Registrovaný: 26 dec 2006, 21:18
- Bydlisko: BJ
- Kontaktovať používateľa:
Vytvorenie algoritmu
Prosím pomožte, dostal som zadanie na vytvorenie algoritmu:
Navrhnite algoritmus na prevod desiatkového čísla do inverzného kódu na 16 bitoch. Výsledok má byť reprezentovaný ako vektor
ale neviem vobec čo z tým mám robiť, som v 1. roč. na TUKE, tak by to nemalo byť nič zložité, ale neviem ani náhodou čo tam mám robiť.
Navrhnite algoritmus na prevod desiatkového čísla do inverzného kódu na 16 bitoch. Výsledok má byť reprezentovaný ako vektor
ale neviem vobec čo z tým mám robiť, som v 1. roč. na TUKE, tak by to nemalo byť nič zložité, ale neviem ani náhodou čo tam mám robiť.
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
prvý semester a už to nezvládaš? Potom by si sa mal zamyslieť prečo si išiel práve na informatiku. Prevedieš číslo do dvojkovej sústavy, ak bude kratšie ako 16 bitov tak ho doplníš zpredu nulami, a nakoniec z toho spravíš inverzný kod. Ak nevieš čo je inverzný kod a ako sa tvorí, tak pohladaj v prednáškach (určite ste to mali) alebo na nete.
audiotrack, nam na tej skole dali totalne voloviny robit, vies i ten moj vyvoj. diagram... ide o to, ze viem programovat v delphi, ale ani za boa neviem v Cecku a uz vobec neviem kreslit vyvojove diagramy, takze nemam potuchy ako to mam zakreslit a co sa tam zakresli. proste strasne zalezi i od cviciaceho.
a btw. poopravil si mi ten vyvojovy diagram ? prevod z 8ckovej do 2kovej, co vcera si nakreslil, len si robil iny prevod, prosim ta bud taky dobry
edit: nitrox, ty poriadne pozeraj a nezakladaj zbytocne temy, uz su tu minimalne 2 o tom istom, staci ak napises do niektorej z nich.
a btw. poopravil si mi ten vyvojovy diagram ? prevod z 8ckovej do 2kovej, co vcera si nakreslil, len si robil iny prevod, prosim ta bud taky dobry
edit: nitrox, ty poriadne pozeraj a nezakladaj zbytocne temy, uz su tu minimalne 2 o tom istom, staci ak napises do niektorej z nich.
Zaplatím
Zdravím, mám spraviť presne tento istý vývojový diagram, ale ani ja si s tým neviem rady (meškáme s učivom a preto sme si väčšinu informácií o algoritmoch a vývojových diagramoch mali naštudovať sami). Stvoril som niečo takéto (vid obrázok), ale to je zrejme totálne zle.. Chcel som to spraviť tak, že ak pri delení n dvojkou bude nejaký zvyšok, tak sa do premennej n_2 pridá na začiatok jednotka, v opačnom prípade 0ka.
Samozrejme to ešte nemám dokončené (keďže si s tým neviem dať rady).
Prosím o pomoc, vytvorenie diagramu, prípadne aspoň radu.
//autoeditácia príspevku ( 12 Dec 2009, 11:30 )
Zaplatím človeku, ktorý mi vyššie uvedený vývojový diagram do zajtrajšieho rána (13. 12., 10:00) spraví. Platba na b. ú. alebo paypal. Na cene sa dohodneme. ICQ: 392170031, email: [email protected]
Samozrejme to ešte nemám dokončené (keďže si s tým neviem dať rady).
Prosím o pomoc, vytvorenie diagramu, prípadne aspoň radu.
//autoeditácia príspevku ( 12 Dec 2009, 11:30 )
Zaplatím človeku, ktorý mi vyššie uvedený vývojový diagram do zajtrajšieho rána (13. 12., 10:00) spraví. Platba na b. ú. alebo paypal. Na cene sa dohodneme. ICQ: 392170031, email: [email protected]
Tak som skusil daco vytvorit...peniaze za to nechcem, lebo ani sam neviem, ci je to spravne
(Neviem ci mozes pouzit xor).
Na vysvetlenie ako to funguje:
Ak je cislo zaporne, tak ho zmenis na kladne a vyxorujes. Xor ti vrati 0 ak su obidva operandy rovnake, inak vrati 1. Pracuje na urovni bitov, takze ked to zadane cislo vyxorujem 2^16-1, tak to zinvertuje kazdy bit.
Na konci prevediem vysledne do BIN, pricom vypisujem po jednom cisla v takom poradi ako by som mal, takze to nemusim ukladat do ziadneho pola, ani nicoho podobneho.
V celom priklade sa spolieham na to, ze na vstup dostanem cislo, ktore neni vacsie ako 2^16 -1, ak by si to chcel mat na pevno osetrene musis si pridat jednu podmienku na zaciatok, ale to uz dufam zvladnes.
Na vysvetlenie ako to funguje:
Ak je cislo zaporne, tak ho zmenis na kladne a vyxorujes. Xor ti vrati 0 ak su obidva operandy rovnake, inak vrati 1. Pracuje na urovni bitov, takze ked to zadane cislo vyxorujem 2^16-1, tak to zinvertuje kazdy bit.
Na konci prevediem vysledne do BIN, pricom vypisujem po jednom cisla v takom poradi ako by som mal, takze to nemusim ukladat do ziadneho pola, ani nicoho podobneho.
V celom priklade sa spolieham na to, ze na vstup dostanem cislo, ktore neni vacsie ako 2^16 -1, ak by si to chcel mat na pevno osetrene musis si pridat jednu podmienku na zaciatok, ale to uz dufam zvladnes.
Ufff.. tak takto zložito cez xor to asi nemá byť... len nejak klasicky ako v mojom vyššie uvedenom diagrame... ale dík za snahu... ak mi to spravíš jednoduchšie (tak aby to pochopila aj moja cvičiaca, u ktorej mám občas pocit, že je z algoritmov viac mimo ako študenti), tak fakt zaplatím... min. 3€picuge napísal:Tak som skusil daco vytvorit...peniaze za to nechcem, lebo ani sam neviem, ci je to spravne(Neviem ci mozes pouzit xor).
Na vysvetlenie ako to funguje:
Ak je cislo zaporne, tak ho zmenis na kladne a vyxorujes. Xor ti vrati 0 ak su obidva operandy rovnake, inak vrati 1. Pracuje na urovni bitov, takze ked to zadane cislo vyxorujem 2^16-1, tak to zinvertuje kazdy bit.
Na konci prevediem vysledne do BIN, pricom vypisujem po jednom cisla v takom poradi ako by som mal, takze to nemusim ukladat do ziadneho pola, ani nicoho podobneho.
V celom priklade sa spolieham na to, ze na vstup dostanem cislo, ktore neni vacsie ako 2^16 -1, ak by si to chcel mat na pevno osetrene musis si pridat jednu podmienku na zaciatok, ale to uz dufam zvladnes.
takto to žiaľ nejdepicuge napísal:Skus jej to predviest na kalkulacke vo windowse...ak si ju prepnes na programatorsku, tak tam to vsetko pekne vyjde
No myslim ,ze toto bude fungovat tiez. Aj ked skus si radsej par cisel dosadit, ci to tiez sedi, lebo uplne isty si nie som 
//este som si vsimol, ze niekde sa hovori, ze inverzny kod je len otoceny priamy a znamienkovy bit, tam ani neuvadzaju a niekde je pekne pred cislom uvedeny. Tak si pozri ako ste sa to vy ucili. Ak tam mas mat aj ten znamienkovy bit, tak staci pridat jeden vypis do podmienky NUM je mensie ako nula a jeden ak ta podmienka neni splnena
//este som si vsimol, ze niekde sa hovori, ze inverzny kod je len otoceny priamy a znamienkovy bit, tam ani neuvadzaju a niekde je pekne pred cislom uvedeny. Tak si pozri ako ste sa to vy ucili. Ak tam mas mat aj ten znamienkovy bit, tak staci pridat jeden vypis do podmienky NUM je mensie ako nula a jeden ak ta podmienka neni splnena
Síce tomu nie celkom chápem (prečo je tam tá 16ka? a kde je pridanie 0 pred číslo v priamom kode, kedže to má byť na 16 bitoch... v tom 2 16?), ale to je zrejme môj problém, neučili sme sa to, takže neviem.. ale verím ti, že to tak má byť..picuge napísal:No myslim ,ze toto bude fungovat tiez. Aj ked skus si radsej par cisel dosadit, ci to tiez sedi, lebo uplne isty si nie som
//este som si vsimol, ze niekde sa hovori, ze inverzny kod je len otoceny priamy a znamienkovy bit, tam ani neuvadzaju a niekde je pekne pred cislom uvedeny. Tak si pozri ako ste sa to vy ucili. Ak tam mas mat aj ten znamienkovy bit, tak staci pridat jeden vypis do podmienky NUM je mensie ako nula
a inak ten znak medzi 2 a 16 sa dá ako dať? aká kombinácia kláves..
No ked mas napr. cislo -558 zakodovane do dvojkovej -0000 0010 0010 1110, tak ked to zinvertujes dostanes 1111 1101 1101 0001 = 64 977 a toto iste si mozes vypocitat ako 2^16-1-558=65 535-558=64 977
A tie 0 tam su zapisane, lebo cislo ktore dostanes delis postupne od 2^15 po 2^0 a zapisujes zvysky(cize aj nuly).
Napr. ked mas 558 tak to delis:
NUM div 2^15 = 0 (NUM=558)
..
NUM div 2^10 = 0 (NUM=558)
NUM div 2^9 = 1 (NUM=558-512=46)
NUM div 2^8 = 0
NUM div 2^7 = 0
NUM div 2^6 = 0 (NUM=46)
NUM div 2^5 = 1 (NUM=46-32=14)
NUM div 2^4 = 0
NUM div 2^3 = 1 (NUM=14-8=6)
NUM div 2^2 = 1 (NUM=6-4=2)
NUM div 2^1 = 1 (NUM=2-2=0)
NUM div 2^0 = 0 (NUM=0)
Hadam pochopis...
A ten vypis toho jedneho bitu tam asi bude treba..inak by bolo rovnako zakodovane cislo 64 977 ako -588, takze to tam radsej pridaj
znak je ALT+94, aj ked to je len na vyznacenie, inak to zavisi od jazyku, v ktorom by si to programoval
Napr. ked mas 558 tak to delis:
NUM div 2^15 = 0 (NUM=558)
..
NUM div 2^10 = 0 (NUM=558)
NUM div 2^9 = 1 (NUM=558-512=46)
NUM div 2^8 = 0
NUM div 2^7 = 0
NUM div 2^6 = 0 (NUM=46)
NUM div 2^5 = 1 (NUM=46-32=14)
NUM div 2^4 = 0
NUM div 2^3 = 1 (NUM=14-8=6)
NUM div 2^2 = 1 (NUM=6-4=2)
NUM div 2^1 = 1 (NUM=2-2=0)
NUM div 2^0 = 0 (NUM=0)
Hadam pochopis...
A ten vypis toho jedneho bitu tam asi bude treba..inak by bolo rovnako zakodovane cislo 64 977 ako -588, takze to tam radsej pridaj
znak je ALT+94, aj ked to je len na vyznacenie, inak to zavisi od jazyku, v ktorom by si to programoval
OK, tak dík.. snád to cvičiaca bude chápaťpicuge napísal:No ked mas napr. cislo -558 zakodovane do dvojkovej -0000 0010 0010 1110, tak ked to zinvertujes dostanes 1111 1101 1101 0001 = 64 977 a toto iste si mozes vypocitat ako 2^16-1-558=65 535-558=64 977A tie 0 tam su zapisane, lebo cislo ktore dostanes delis postupne od 2^15 po 2^0 a zapisujes zvysky(cize aj nuly).
Napr. ked mas 558 tak to delis:
NUM div 2^15 = 0 (NUM=558)
..
NUM div 2^10 = 0 (NUM=558)
NUM div 2^9 = 1 (NUM=558-512=46)
NUM div 2^8 = 0
NUM div 2^7 = 0
NUM div 2^6 = 0 (NUM=46)
NUM div 2^5 = 1 (NUM=46-32=14)
NUM div 2^4 = 0
NUM div 2^3 = 1 (NUM=14-8=6)
NUM div 2^2 = 1 (NUM=6-4=2)
NUM div 2^1 = 1 (NUM=2-2=0)
NUM div 2^0 = 0 (NUM=0)
Hadam pochopis...
A ten vypis toho jedneho bitu tam asi bude treba..inak by bolo rovnako zakodovane cislo 64 977 ako -588, takze to tam radsej pridaj![]()
znak je ALT+94, aj ked to je len na vyznacenie, inak to zavisi od jazyku, v ktorom by si to programoval
OK, ešte raz fakt dík.picuge napísal:Netreba...tak vela stastia pri odovzdavani. Hadam som nic neprehliadol.
-
Magnifikus
Novice
- Príspevky: 1
- Registrovaný: 01 dec 2011, 11:49
Re: Vytvorenie algoritmu
zdravim neviem či možem reagovať ešte na tuto temu alebo si mam založit novy topic?
ale mam to iste zadanie
Rozmyšlal som to vypracovať v inom poradi :
a to nasledovne :
1. prevod čisla do binarneho na 16 bitoch- to už mam
2. prevod toho 16-koveho čisla do inverzneho kodu- a tu je problem
Aky algoritmus použijem u zaporneho čisla?
Matematický postup viem: 1 sa nezmení a ostatne čisla sa invertuju 0 na 1 a 1 na 0
ale ako to zapíšem vo vývojovom diagrame ? akym algoritmom?
diky moc za akekolvek typy
ale mam to iste zadanie
Rozmyšlal som to vypracovať v inom poradi :
a to nasledovne :
1. prevod čisla do binarneho na 16 bitoch- to už mam
2. prevod toho 16-koveho čisla do inverzneho kodu- a tu je problem
Aky algoritmus použijem u zaporneho čisla?
Matematický postup viem: 1 sa nezmení a ostatne čisla sa invertuju 0 na 1 a 1 na 0
ale ako to zapíšem vo vývojovom diagrame ? akym algoritmom?
diky moc za akekolvek typy