Vytvorenie algoritmu

Programovacie jazyky, rady, poradňa...
nitrox
Light Star
Light Star
Príspevky: 239
Registrovaný: 26 dec 2006, 21:18
Bydlisko: BJ
Kontaktovať používateľa:

Vytvorenie algoritmu

Príspevok od používateľa nitrox »

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ť.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

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.
nitrox
Light Star
Light Star
Príspevky: 239
Registrovaný: 26 dec 2006, 21:18
Bydlisko: BJ
Kontaktovať používateľa:

Príspevok od používateľa nitrox »

Ale niee, samozrejme že viem o čo tam ide, ale neviem ako to zakresliť, reba tam vytvoriť vývojový diagram programu, samotný matematický prevod nieje problém....
stanulik
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 729
Registrovaný: 20 okt 2007, 20:57

Príspevok od používateľa stanulik »

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.
T-tom
Amateur
Amateur
Príspevky: 13
Registrovaný: 07 dec 2009, 16:15
Kontaktovať používateľa:

Zaplatím

Príspevok od používateľa T-tom »

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]
Prílohy
ups.jpeg
picuge
Expert
Expert
Príspevky: 167
Registrovaný: 17 dec 2005, 20:38
Bydlisko: Bratislava/Martin

Príspevok od používateľa picuge »

Tak som skusil daco vytvorit...peniaze za to nechcem, lebo ani sam neviem, ci je to spravne :D(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.
Prílohy
Drawing2.jpg
T-tom
Amateur
Amateur
Príspevky: 13
Registrovaný: 07 dec 2009, 16:15
Kontaktovať používateľa:

Príspevok od používateľa T-tom »

picuge napísal:Tak som skusil daco vytvorit...peniaze za to nechcem, lebo ani sam neviem, ci je to spravne :D(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.
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
Expert
Expert
Príspevky: 167
Registrovaný: 17 dec 2005, 20:38
Bydlisko: Bratislava/Martin

Príspevok od používateľa picuge »

Skus jej to predviest na kalkulacke vo windowse...ak si ju prepnes na programatorsku, tak tam to vsetko pekne vyjde :D
T-tom
Amateur
Amateur
Príspevky: 13
Registrovaný: 07 dec 2009, 16:15
Kontaktovať používateľa:

Príspevok od používateľa T-tom »

picuge napísal:Skus jej to predviest na kalkulacke vo windowse...ak si ju prepnes na programatorsku, tak tam to vsetko pekne vyjde :D
takto to žiaľ nejde :D musím to odovzdať vytlačené :? Viem teoreticky ako by to malo vyzerať, čo všetko by tam malo byť, ale neviem to zapísať funkciami... cvičiaca 3x chýbala, takže sme algoritmy skoro vôbec nebrali.. povedala, že si to máme dobrať samoštúdiom :roll:
picuge
Expert
Expert
Príspevky: 167
Registrovaný: 17 dec 2005, 20:38
Bydlisko: Bratislava/Martin

Príspevok od používateľa picuge »

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 ;)
Prílohy
Drawing2.jpg
T-tom
Amateur
Amateur
Príspevky: 13
Registrovaný: 07 dec 2009, 16:15
Kontaktovať používateľa:

Príspevok od používateľa T-tom »

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 ;)
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ť..

a inak ten znak medzi 2 a 16 sa dá ako dať? aká kombinácia kláves..
picuge
Expert
Expert
Príspevky: 167
Registrovaný: 17 dec 2005, 20:38
Bydlisko: Bratislava/Martin

Príspevok od používateľa picuge »

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 ;)
T-tom
Amateur
Amateur
Príspevky: 13
Registrovaný: 07 dec 2009, 16:15
Kontaktovať používateľa:

Príspevok od používateľa T-tom »

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 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 ;)
OK, tak dík.. snád to cvičiaca bude chápať :) dík za snahu.. chceš za to niečo alebo nie?
picuge
Expert
Expert
Príspevky: 167
Registrovaný: 17 dec 2005, 20:38
Bydlisko: Bratislava/Martin

Príspevok od používateľa picuge »

Netreba...tak vela stastia pri odovzdavani :D. Hadam som nic neprehliadol.
T-tom
Amateur
Amateur
Príspevky: 13
Registrovaný: 07 dec 2009, 16:15
Kontaktovať používateľa:

Príspevok od používateľa T-tom »

picuge napísal:Netreba...tak vela stastia pri odovzdavani :D. Hadam som nic neprehliadol.
OK, ešte raz fakt dík.
Magnifikus
Novice
Novice
Príspevky: 1
Registrovaný: 01 dec 2011, 11:49

Re: Vytvorenie algoritmu

Príspevok od používateľa Magnifikus »

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
Napísať odpoveď