C/C++ Prevod z jednej ciselnej sústavy do druhej

Programovacie jazyky, rady, poradňa...
hacklerkoch
Novice
Novice
Príspevky: 3
Registrovaný: 21 aug 2011, 12:49

C/C++ Prevod z jednej ciselnej sústavy do druhej

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

Dobrý den,
Mám otázku, ako môžem previesť ľubovoľne dlhe číslo z jednej ciselnej sústavy do druhej. Povedzme že miliarda cifier a nech su uložené v textovom súbore :)
Za odpovede ďakujem :)
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8222
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: C/C++ Prevod z jednej ciselnej sústavy do druhej

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

ulohy od esteu su nato aby si potrapil vlastnu hlavu
hacklerkoch
Novice
Novice
Príspevky: 3
Registrovaný: 21 aug 2011, 12:49

Re: C/C++ Prevod z jednej ciselnej sústavy do druhej

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

O eset mi vôbec nejde aj ked je pravda že ma inspiroval. V podstate ma to zaujíma preto lebo naozaj netuším ako take číslo spracovať, či uz rozlozit alebo akokoľvek inak s ním pracovať.
reDo
Star
Star
Používateľov profilový obrázok
Príspevky: 661
Registrovaný: 26 apr 2009, 18:36
Bydlisko: 00100100
Kontaktovať používateľa:

Re: C/C++ Prevod z jednej ciselnej sústavy do druhej

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

ani si nenapisal z akej do akej :roll:
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: C/C++ Prevod z jednej ciselnej sústavy do druhej

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

z ľubovolnej do ľubovolnej (od 2 po 36). Len pre úplnosť, tu je to zadanie: http://www.joineset.sk/number_transfer.html
Spixy
Professional
Professional
Používateľov profilový obrázok
Príspevky: 1334
Registrovaný: 24 okt 2010, 12:52

Re: C/C++ Prevod z jednej ciselnej sústavy do druhej

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

no, iný algoritmus je na prevod z nižšej sústavy na vyššiu a iný z vyššej sústavy na nižšiu
a ešte je rozdiel pri prevode desatinných čísel (oproti celým čislam)

plus keď máš miliardu cifier tak to môže byť trošku problém (pre CPU aj ram -a toľko array-ový char ti ani neskompiluje :) )
Trocha si pamätám čo sme robili v pascale na informatike ale neviem či ti to pomôže

opýtal si sa googla?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: C/C++ Prevod z jednej ciselnej sústavy do druhej

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

Spixy napísal:no, iný algoritmus je na prevod z nižšej sústavy na vyššiu a iný z vyššej sústavy na nižšiu
a ešte je rozdiel pri prevode desatinných čísel (oproti celým)

plus keď máš miliardu cifier tak to môže byť trošku problém (pre CPU aj ram -a toľko array-ový char ti ani neskompiluje :) )
Trocha si pamätám čo sme robili v pascale na informatike ale neviem či ti to pomôže

opýtal si sa googla?
a kto ti káže používať array? Použi lineárne zoznamy. Alebo vôbec, kto ti káže používať nejakú štruktúru? Stačí mi ten súbor čítať lineárne po časti a prevádzať. A prevod medzi sústavami vyššia/nižšia nie je vôbec problém, stačia dve základne funkcie (prevod dvojkovej z/do desiatkovej) a spravíš prevod medzi ľubovolnými
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8222
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: C/C++ Prevod z jednej ciselnej sústavy do druhej

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

Tak uloha je stavana tak aby si nemohol pouzivat polia znakov ci standardne algoritmy.
Dzmijak
Novice
Novice
Príspevky: 4
Registrovaný: 29 jún 2013, 19:53

Re: C/C++ Prevod z jednej ciselnej sústavy do druhej

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

harrison314 napísal:Tak uloha je stavana tak aby si nemohol pouzivat polia znakov ci standardne algoritmy.
Čžeee?

"""
Príklad vstupného súboru:
[1012222121310101]4=32
"""

mám to čítať sekvenčne takže nechápem ako mám zistiť v akej sústave je to číslo uložené a do akej sústavy ho chcú.

edit.: pozeral som nato a ok, som začiatočník a neviem to. ak by sem niekto niečo k tomu napísal tak by som bol vďačný. stačí napríklad ak vieme povedať aké máme sústavy ale ďalšia vec čo neviem je ako sa vysporiadám s tým že neviem aký dlhý je ten súbor(konkrétne neviem ako začať prevádzať)
Gregi
Light Star
Light Star
Príspevky: 224
Registrovaný: 24 mar 2005, 11:34

Re: C/C++ Prevod z jednej ciselnej sústavy do druhej

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

Ahoj,
v tom vzorovom priklade mas predsa podla zadania urcene co do coho prevadzat.
[1012222121310101]4=32
1012222121310101 = cislo na prevod
4 = zdrojova sutava (v tomto pripade 4-ova)
32 = cielova sutava (v tomto pripade 32-ova)
Mas proste prviest zo 4-kovej sustavy cislo "1012222121310101" do 32-kovej.
Sustav mas nekonecno. Je definovana poctom jedinecnych clenov. Napr. pri 2-ovej (1,0 - dva cleny), pri 16-ovej (1,2,3,4,5,6,7,8,9,0,A,B,C,D,E,F),
32-okva (bude napr. 1,2 ... 31,32).
kubaj
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 241
Registrovaný: 10 mar 2013, 20:16
Bydlisko: Brno

Re: C/C++ Prevod z jednej ciselnej sústavy do druhej

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

Gregi napísal: Sustav mas nekonecno. Je definovana poctom jedinecnych clenov. Napr. pri 2-ovej (1,0 - dva cleny), pri 16-ovej (1,2,3,4,5,6,7,8,9,0,A,B,C,D,E,F),
32-okva (bude napr. 1,2 ... 31,32).
32ková bude pravdepodobne 0,1,2,.....,U,V,W.

Je tam nejaká reálna šanca sa tam dostať? Čo som pozeral tie úlohy, tak nepripadajú mi byť moc zložité. Napr. je tam ten SMS logger pre Android/Symbian, tak som si to len tak z nudy spravil pre ten Android, zatiaľ mám za 2 hodiny spravené iba tú hlavnú úlohu, plus jednu doplnkovú, a to nejak aktívne neprogramujem pre Android.
Dzmijak
Novice
Novice
Príspevky: 4
Registrovaný: 29 jún 2013, 19:53

Re: C/C++ Prevod z jednej ciselnej sústavy do druhej

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

Gregi napísal:Ahoj...
Ahoj, asi nechápeš.

Narážam na to že ako to môžem sekvenčne čítať a zároveň prevádzať keď informácie o tom aká je to sústava sú až na konci. Nechápem ako to urobiť bez toho aby som si celý ten súbor musel niekde uložiť.

edit: ..teda podľa ľahkého profesionála:
harrison314 napísal:Tak uloha je stavana tak aby si nemohol pouzivat polia znakov ci standardne algoritmy.

Inak tie úlohy mi pripomínajú úlohy od jedného učiteľa u nás na škole. :D
pcsiete
Medium Star
Medium Star
Príspevky: 413
Registrovaný: 07 dec 2012, 18:47

Re: C/C++ Prevod z jednej ciselnej sústavy do druhej

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

fseek(file, 0, SEEK_END)
(a si na konci do cca 4.3 miliard cifier, potom je tam uz ina funkcia)
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8222
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: C/C++ Prevod z jednej ciselnej sústavy do druhej

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

tam bola podmineka, ze subor sa musi citat sekvencne, takze ziadne fseek,
mna napadla mylsienka, ze cislo by sa prevadzalo do internej reprezentacie uz pocas nacitavania,
napr. ak program narazí 7 a predtým boli len samé menšie čísla, tak mozme predpokladat ze cislo je v osmickovej sustave aj ked sme iba v polovici a previest vnutornu reprezentaciu
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: C/C++ Prevod z jednej ciselnej sústavy do druhej

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

Dzmijak napísal:..
Narážam na to že ako to môžem sekvenčne čítať a zároveň prevádzať keď informácie o tom aká je to sústava sú až na konci. ...
a kto ti bráni spraviť si funkciu, na sekvenčné čítanie súboru od konca? Hneď na začiatku čítania budeš vedieť o aký prevod ide, dokonca tento prevod môžeš aj robiť (vlastne ani neviem ako ste chceli robiť sekvenčne prevod z predu, keď neviete rád prvej cifry lebo neviete aké dlhé to číslo bude)
Dzmijak
Novice
Novice
Príspevky: 4
Registrovaný: 29 jún 2013, 19:53

Re: C/C++ Prevod z jednej ciselnej sústavy do druhej

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

audiotrack napísal: a kto ti bráni spraviť si funkciu, na sekvenčné čítanie súboru od konca? Hneď na začiatku čítania budeš vedieť o aký prevod ide, dokonca tento prevod môžeš aj robiť (vlastne ani neviem ako ste chceli robiť sekvenčne prevod z predu, keď neviete rád prvej cifry lebo neviete aké dlhé to číslo bude)
...myslím že mi v tom bráni zadanie.
"""
Program si nemôže vytvárať žiadny dočasný súbor a nemôže sa v súbore pohybovať inak ako sekvenčným načítavaním tohto súboru pomocou funkcie read.
Program musí byť vytvorený v jazyku ANSI C (nie C++). Zo systémových volaní alebo knižničných funkcii môže používať iba funkcie read, write, malloc, free. Žiadne iné funkcie nie sú povolene (žiadne fread, fwrite, getchar, realloc ...).
"""

..a má niekto aj nejaké tipy k tej úlohe?
pcsiete
Medium Star
Medium Star
Príspevky: 413
Registrovaný: 07 dec 2012, 18:47

Re: C/C++ Prevod z jednej ciselnej sústavy do druhej

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

Niesú read/write syscally v unixe? Do takej úlohy by sa mi nechcelo. Cygwin má podľa mňa nedostatky vo formátoch, MinGW neviem (niežeby som nemal na počítači linux, ale...)
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8222
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: C/C++ Prevod z jednej ciselnej sústavy do druhej

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

pcsiete napísal:Niesú read/write syscally v unixe? Do takej úlohy by sa mi nechcelo. Cygwin má podľa mňa nedostatky vo formátoch, MinGW neviem (niežeby som nemal na počítači linux, ale...)
Funguju aj na windowse su v io.h

//autoeditácia príspevku (02 Júl 2013, 8:36)
O tom to je, ze tato uloha nie je pre padavky :)
pcsiete
Medium Star
Medium Star
Príspevky: 413
Registrovaný: 07 dec 2012, 18:47

Re: C/C++ Prevod z jednej ciselnej sústavy do druhej

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

harrison314 napísal: Funguju aj na windowse su v io.h

//autoeditácia príspevku (02 Júl 2013, 8:36)
O tom to je, ze tato uloha nie je pre padavky :)
no tak ani praca v esete neni pre padavky (ci?), tak co si budeme nahovarat...
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8222
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: C/C++ Prevod z jednej ciselnej sústavy do druhej

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

pcsiete napísal: no tak ani praca v esete neni pre padavky (ci?), tak co si budeme nahovarat...
Za vyskusanie nic nedas, no mne sa vzdy podarilo vyriesit ina jeden priklad zo styroch, a dalsi som tusil, len sa mi s tym nechcelo trapit,
ale chcel som to tam poslat aspon koli tricku, ktore ponukali uspesnym riesitelom. Zial tento a ani minuly rok som nove ulohy od nich nepotrehol.
Napísať odpoveď