Kirjoittaja: Antti Laaksonen
Kirjoitettu: 02.02.2002 – 02.02.2002
Tagit: teksti, koodi näytille, vinkki
Tämä ohjelma toimii täysin päinvastoin, kuin aiempi Luku kirjoitettuna. Se muuntaa kirjoitetun luvun numeroiksi seuraavaan tapaan:
tuhatsatakolmekymmentä -> 1130
Yläraja on tässä hiukan tiukempi, mutta kuitenkin varmasti riittävä 900 biljoonaa.
DIM luvut(0 TO 24) AS STRING DIM osat(1 TO 50) AS INTEGER DIM tulos AS CURRENCY DIM kerroin AS CURRENCY, ikerroin AS CURRENCY FOR i = 0 TO 24 READ luvut(i) NEXT CLS INPUT "Anna luku: ", luku$ osai = 0 DO WHILE LEN(luku$) > 0 ok = 0 FOR i = 24 TO 0 STEP -1 IF LEFT$(luku$, LEN(luvut(i))) = luvut(i) THEN osai = osai + 1 osat(osai) = i IF LEN(luku$) = LEN(luvut(i)) THEN EXIT DO luku$ = MID$(luku$, LEN(luvut(i)) + 1) ok = 1 END IF NEXT IF LEFT$(luku$, 1) = " " THEN luku$ = MID$(luku$, 2) ok = 1 END IF IF ok = 0 THEN PRINT "Tunnistamattomia sanoja!": END LOOP FOR i = 1 TO osai SELECT CASE osat(i) CASE 1, 2, 3, 4, 5, 6, 7, 8, 9 kerroin = osat(i) CASE 10 kerroin = kerroin + 10 CASE 11 ikerroin = ikerroin + 10 + kerroin kerroin = 0 CASE 12 ikerroin = ikerroin + kerroin * 10 kerroin = 0 CASE 13 ikerroin = 100 kerroin = 0 CASE 14 ikerroin = ikerroin + kerroin * 100 kerroin = 0 CASE 15, 17, 19, 21 tulos = tulos + 10 ^ ((osat(i) - 15) * (1.5) + 3) CASE 16, 18, 20, 22 ikerroin = ikerroin + kerroin tulos = tulos + ikerroin * 10 ^ ((osat(i) - 1 - 15) * (1.5) + 3) ikerroin = 0 kerroin = 0 END SELECT NEXT IF ikerroin <> 0 THEN tulos = tulos + ikerroin IF kerroin <> 0 THEN tulos = tulos + kerroin PRINT tulos DATA nolla, yksi, kaksi, kolme, neljä, viisi, kuusi, seitsemän DATA kahdeksan, yhdeksän, kymmenen, toista, kymmentä, sata DATA sataa, tuhat, tuhatta, miljoona, miljoonaa, miljardi, miljardia DATA biljoona, biljoonaa, triljoona, triljoonaa
ohoh! antti, biljoona=billion=miljardi
Miljardi, Biljoona, Triljoona...eli yksi, kaksi (bi) ja kolme (tri)
Biljoona tulee englanninkielen sanasta "billion", joka taas on suomeksi "miljardi". Kysykää vaikka matematiikan opettajalta Esa K:lta.
miljoona, miljarti, biljoona, triljoona, kvadriljoona, kvintiljoona, sekstiljoona, septiljoona, oktiljoona, noviljoona, dekiljoona, undekiljoona, duodekiljoona, tredekiljoona, kvattuordekiljoona, kvindekiljoona, sedekiljoona, septendekiljoona, duodevigintiljoona,undevigintiljoona, vigintiljoona...
http://www.jimloy.com/math/billion.htm
jenkien ja muiden systeemi on vähän eri tai ainakin näin mun matikanopettaja sanoi meille viel joskus aikoja sitten.
ja muutenkin jos menee turhan pieneksi / suureksi kannattaa vaan käyttää kymmenenpotensseja. Säästyy kaikki päänsärystä.
Ja noista luvuistahan tässä kannattaakin keskustella.