home *** CD-ROM | disk | FTP | other *** search
/ Flop Magazin 33 / Flop_Magazin_33_1995_01_Raster_cs_Side_B.atr / reseni32.cap < prev    next >
Text File  |  2023-02-26  |  3KB  |  1 lines

  1.      Popis @e&en) hlavolamu z '. 32¢¢     Jako obvykle &lo o to ud%lat program, kter` by po')tal co nejrychleji.¢     Proto(e v`sledek obsahuje mnoho cifer, bylo nutn[ jej "uskladnit" do @et%zce a napsat rutinu, kter* by co nejefektivn%ji n*sobila t@eba stocifern[ ')slo.¢     Nejefektivn%j&) bude z@ejm% zp+sob, kdy toho co nejv)ce vyn*sob) p@)mo BASIC tak, aby n*sobil z*rove co nejm[n%kr*t.¢     Za t)mto ]'elem jsem pou(il n%co jako "desetitis)covkovou" ')selnou soustavu. Jde vlastn% o to, (e jsem bral 'ty@cifern[ ')slo jako jedinou "')slici". Tato soustava je jak`msi vy&&)m syst[mem pro b%(nou des)tkovou soustavu, stejn% jako soustava &estn*ctkov* ╱hexadecim*ln)$ pro soustavu dvojkovou ╱bin*rn)$.¢     Pokud n*sob)m dv% 'ty@cifern* ')sla, v`sledek je v(dy maxim*ln% osmicifern` ╱dvojcifern` v 10000-soustav%$. Tento v`sledek se je&t% do BCD kdu vejde cel`. Tak(e k`(en` postup je takov`, (e b%(n% n*sob)m 1✓2✓3✓4... dokud je v`sledek je&t% 'ty@cifern`. Potom jej vyn*sob)m s t@eba 40-ticifern`m @et%zcem jako bych n*sobil 10-ticifern[ ')slo jednocifern`m. V tomto p@)pad% vysta')m s deseti n*soben)mi a dev)ti p@ipo'ten)mi p@enos+ oproti jinak pot@ebn`m 4✓40 nasoben)m ⇩ 4✓39 p@enosy a n*sledn`m se'ten)m 'ty@ v)ce ne( 40-ticifern`ch meziv`sledk+. Nav)c celou n*sob)c) rutinu vol*m m[n% 'asto!¢     Pokud nebyl v`klad p@)li& jasn` snad pom+(e popis programu:¢¢10-80   Hlavi'ka¢90      Dimenzace @et%zce pro v`sledek a pomocn[ho @et%zce¢100-110 Nastaven) @et%zce na "000...001" a nastaven) pomocn`ch prom%nn`ch¢130-180 Zad*n) ')sla N╱1-100$190     Vynulov*n) TIME◆ a za'*tek hlavn)ho cyklu¢200-240 Postupn[ n*soben) ')sel I. V`sledek se ukl*d* do M. Pokud je M>10000, vezme se p@edchoz) hodnota v Q a pust) se n*sob)c) rutina. Pokud je I=N ╱posledn) ')slo$, pust) se n*sob)c) rutina naposledy s n)m¢250-390 N*sob)c) rutina¢250     Do W je pomoc) logaritmu ulo(en po'et cifer v`sledku. Spust) se cyklus J popisuj)c) odzadu po 4 aktu*ln) pozici v @et%zci v`sledku a( kam je t@eba vzhledem k jeho d[lce.¢260     Do POM◆ je ulo(ena vy@)znut* '*st meziv`sledku vyn*soben* ')slem Q plus je&t% p@enos ╱v prvn)m kroku nulov`, viz d*le$ z p@edchoz)ho kroku.¢290     Pokud je v`sledek pr*v% 'ty@cifern`, je nalepen do VYSL◆¢310-320 Je-li krat&), je p@edt)m zep@edu dopln%n nulami.¢340     A p@enos P je nastaven na 0¢360-370 Je-li POM◆ naopak del&), ulo() se jeho doln) 4 cifry a horn) 1 a( 4 cifry slou() jako p@enos pro n*soben) dal&) 'tve@ice.¢390     Konec cyklu J. Te⇦ budeme n*sobit dal&) ╱vy&&)$ 'ty@cifernou '*st meziv`sledku.¢400     Konec cyklu I. P@edchoz) ')slo Q je ji( vyn*sobeno s @et%zcem VYSL◆, postupujeme tedy d*le, dokud I=N.¢420-490 V`pis kone'n[ho v`sledku ╱bez nev`znamn`ch nul na za'*tku.¢500     V`pis pot@ebn[ho 'asu.¢¢     N*sob)c) rutinu by &lo asi je&t% v)ce optimalizovat. Zrychlen) by ale nebylo p@)li& v`razn[ a bylo by to na ]kor jej) srozumitelnosti, kter* je u( i tak asi mal*. Snad se V*m bude n%kdy hodit, a( budete pot@ebovat vyn*sobit nap@. dva velmi dlouh[ @et%zce...¢¢                      Jan Walla¢