Kezdőoldal » Tudományok » Egyéb kérdések » Nem iskolai feladat, hanem...

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?

Figyelt kérdés
Adott egy szám, pl. 112233445566. Ezt kellene átszámolnom exponenciális alakba. Persze tudom, hogy 1.1223x10#11 lesz, de hogyan számoljam ki általánosan?

2020. jún. 20. 13:16
 1/4 anonim ***** válasza:
87%
A gep kiszamolja, neked csak annyit kell tenned, hogy megvizsgaltatod vele a pontszam hosszat, es ha tobb mint 11 karakter, akkor exp alakban jelenitse meg.
2020. jún. 20. 13:18
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:
82%

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.

2020. jún. 20. 13:34
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:
67%

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.

2020. jún. 20. 14:00
Hasznos számodra ez a válasz?
 4/4 anonim ***** válasza:
Milyen programnyelven? C-ben (és "leánykáiban") printf (és környéke sprintf és ennek különböző verziói) megfelelő paraméterezéssel megcsinálják.
2020. jún. 22. 16:50
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!