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
Stránky: 1
Čaute :)
Potreboval by som od Vás pomoc s nasmerovaním. Mám za úlohu naprogramovať v Pascale kalkulačku dlhých čísel (pomocou poľa), ktorá vie sčítať, odčítať a násobiť. Základné princípy ovládam, no robí mi problém sčítať napríklad čísla s rôznym počtom cifier, taktiež čísla "s prechodom cez desiatku" (9+2 mi vyhodí ako 1). Čo sa týka samotného násobenia, tak to fakt nemám šajnu ako na to.
Za každú radu som vďačný :)
Offline
Ahoj,
vem si kus papíru a sečti si dvě čísla (pod sebe, tak jako se to učí na základní škole). Poté až to budeš programovat, tak do každé buňky pole ukládej právě jednu číslici.
U násobení můžeš udělat to samé. Opět jako na základní škole - tam jsme se učili násobit vynásobit cifrou na místě jednotek, a když jsme násobili cifrou na místě desítek, tak stačilo připsat na nový řádek 0 a opět násobit jen jednou cifrou. Takže rozdělení čísel po číslicích v jednotlivých buňkách se hodí ;-)
Offline
To mi je jasné, tak som to takto urobil :)
Nejako takto c[E]:=((a[E]+b[E]) mod 10) + ((a[E+1]+b[E+1]) div 10).
Problém nastáva pri prvých cifrách: napr: 5555 + 6666 = 2221 .. jednotka na miestne desaťtisícok chýba. Netuším ako to opraviť.
Offline
ďakujem za rady, pomohlo mi to :) sčítavanie a odčítavanie funguje super :) nemali by ste nejaký typ na násobenie? Napadlo ma dvojrozmerné pole a z neho potom sčítať po riadkoch
143
x 426
_____
8 ,5, 8
2, 8, 6
5, 7, 2
__________
6, 0, 9, 1, 8 => 143 * 426 = 60918
Nejaký ľahšie zrealizovateľný nápad? :)
Offline
Stránky: 1