Kirjautuminen

Haku

Tehtävät

Koodit: QB: Suomen kielen lukusana luvuksi

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

Kommentit

Jaakko [26.07.2002 16:19:29]

#

ohoh! antti, biljoona=billion=miljardi

Einstein [02.08.2002 02:01:33]

#

Miljardi, Biljoona, Triljoona...eli yksi, kaksi (bi) ja kolme (tri)

herkko [24.06.2004 14:59:40]

#

Biljoona tulee englanninkielen sanasta "billion", joka taas on suomeksi "miljardi". Kysykää vaikka matematiikan opettajalta Esa K:lta.

Fisher [27.07.2004 22:26:44]

#

miljoona, miljarti, biljoona, triljoona, kvadriljoona, kvintiljoona, sekstiljoona, septiljoona, oktiljoona, noviljoona, dekiljoona, undekiljoona, duodekiljoona, tredekiljoona, kvattuordekiljoona, kvindekiljoona, sedekiljoona, septendekiljoona, duodevigintiljoona,undevigintiljoona, vigintiljoona...

phadej [01.01.2005 16:25:08]

#

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ä.

GorkkiusSuuri [13.01.2005 19:53:40]

#

Ja noista luvuistahan tässä kannattaakin keskustella.

Kirjoita kommentti

Muista lukea kirjoitusohjeet.
Tietoa sivustosta