Nem iskolai feladat, hanem programozói. Mivel egy programomban a kijelző max. 11 karaktert tud ábrázolni, a túl nagy pontszámot átírnám exponenciális alakba. Hogyan tudnám kiszámolni?
Vagy, ha probléma a szám hossza, akkor 10-es alapú logaritmusát veszed, és ha >=11, akkor veszed az exponenciális alakot, tehát:
y=int(lg(x)) vagy y=floor(lg(x)), és ha y>=11 akkor x/10^y-t jelenítesz meg y kitevővel.
Először is, nem exponenciális alak, hanem normálalak. Másrészt normálalakból is van több; a normálalak minden (nemnulla) szám kéttényezős szorzata, az első tényezőt mantisszának, a másikat karakterisztikának hívjuk, ez utóbbi minden esetben 10 valamilyen egész kitevőjű hatványa. A különböző normálalakok eredendően a mantisszában térnek el;
-az iskolában úgy tanuljuk, hogy a mantisszának (abszolútértéke) 1 és 10 közé kell esnie (1 lehet, de 10 már nem).
-a mérnökök ugyanezt a mantisszát 1 és 1000 közé szeretik tenni. Ez azért van, mert a mérnökök azt a 10-hatványt szeretik, ami 3-mal osztható (nem tudom, hogy ez miért jó, miért praktikus, de ez nekik jó).
-valamint az informatikában 0,1 és 1 közé esik a mantissza.
-illetve te magad is definiálhatsz bármilyen normálalakot, annak függvényében, hogy neked mi a kényelmes.
Akármelyiket is választod, ezek között mindig lesz átjárhatóság, tehát az egyik átírható a másik alakba, pusztány 10-hatványokkal kell szorozni-osztani.
Alapvetően mi a problémád a problémával? Nem tudod a programmal leszámoltatni a számjegyeket, vagy a normálalakot nem tudod felírni? A másik kérdés, hogy jó, hogy vannak "túl nagy" eredmények, de vannak-e "túl kicsi" (0-hoz "közeli") eredmények is? Mert akkor azokkal is kellene valamit kezdenie a programodnak.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!