Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 09. 05. 2010 22:27 — Editoval Honzis (09. 05. 2010 22:28)

Honzis
Zelenáč
Příspěvky: 1
Reputace:   
 

Projekt v C++ | trida HugeInteger a nasledne mat. operace.

Dobry den, nasla by se nejaka hodna duse, ktera by mi pomohla, popripadne nejakym zpusobem nasmerovala v mojem projektu.
Poradne jsem totiz nepochopil zadani, je tak trosku zvlastne napsane.

Zadani:

Code:

1. příklad – Zadání
Implementujte třídu HugeInteger, které bude reprezentovat až 200 ciferné celé
číslo. Pro tuto třídu implementujte metodu pro tisk v dekadickém tvaru, a ope-
race sčítání, odečítání, násobení, celočíselné dělení a zbytek po celočíselném
dělení. Tyto operace fungují stejným způsobem, jakým se provádějí na papír při
písemném sčítání, odečítání, násobení a dělení. Pro efektivní výpočet je vhodné
zvolit vhodný základ soustavy, ve kterém budete reprezentovat tato čísla. Je
možné zvolit libovolný základ, od 10 na který jsme zvyklí až po takové číslo,
aby se dala správně provádět operace násobení1 (např. 100, 1000, 10000).

Poznámky
• Program bude očekávat zadání vstupního a výstupního souboru pomocí
parametrů příkazové řádky.
VasProgram Vstup Vystup
• Program pro otestování správné implementace bude číst ze vstupního sou-
boru zadání příkladů a do výstupního souboru bude ukládat výsledky vý-
počtů. Zadání příkladu bude vždy ve tvaru
<velké číslo><mezera><operátor><mezera><velké číslo>
tedy například
1234567890123 + 3210987654321
• Dělení lze sice provádět postupným odečítáním, ale tento postup je příliš
náročný na procesor a velmi neefektivní na což bude brán při hodnocení
zřetel. Implementujte radši proto dělení stejně jako se dělá na papír.

podle toho co jsem pochopil by program mohl fungovat nasledujicim zpusobem:

Program nacte jednotlivy znaky zadaneho cisla a po jednom je ulozi do pole o velikosti 200.
Ale ulozil by je napriklad jako 12345678912300000000000000000000000000000000000000000000000.... az do pole 200 nuly.
Pak bych to nejak (nevim jak) otocil aby to bylo 000000000000000000000000000000000000(nuly do 200)123456789123.
Pri zadavani cisla bych udelal nejake pocitadlo aby vedel po jaky prvek doleva az ma jit, at treba neskonci u nuly a za ni by bylo jeste dalsi cislo.
Kazde cislo by bylo v samostatnem prvku pole( 3jka napr na miste[199] ).
no a pak uz provadet operace jako scitani,odcitani,atd jako na papir : [prvek1 na 199] + [prvek1 na 199], sepise se dolu,kdyz > nez 9, [prvek1 na 198 vetsi o +1], atd az by to doslo na konec rady cisel...
nacitani ze souboru a ukladani do souboru uz mam hotove.
Jde mi o to ze poradne nevim jak udelat to, aby mi to zadane cislo bral po jednotliviych znakach a ukladal je na spravna mista do pole.

za jakekoliv rady bych byl nesmirne vdecny.

Offline

  • (téma jako vyřešené označil(a) byk7)

#2 10. 05. 2010 18:17

cimo
Zelenáč
Příspěvky: 2
Reputace:   
 

Re: Projekt v C++ | trida HugeInteger a nasledne mat. operace.

Tak s nasobenim, scitavanim a delenim by nebol problem ako s tym, ako urobit delenie takeho velkeho cisla druhym velkym bez toho aby si pouzil metodu postupeho odcitavania.

Offline

 

#3 10. 05. 2010 18:32

Stýv
Vrchní cenzor
Příspěvky: 5710
Reputace:   215 
Web
 

Re: Projekt v C++ | trida HugeInteger a nasledne mat. operace.

však ti to tam píšou:

Implementujte radši proto dělení stejně jako se dělá na papír.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson