Kirjautuminen

Haku

Tehtävät

Koodit: QB: Tavutusohjelma

Kirjoittaja: Antti Laaksonen

Kirjoitettu: 06.04.2002 – 06.04.2002

Tagit: teksti, koodi näytille, vinkki

Tämä ohjelma tavuttaa suomenkielisiä sanoja tai lauseita vaihtelevalla menestyksellä. Peruskäytössä ohjelma toimii ihan hyvin, mutta tavutusohjelmien perinteiset heikkoudet löytyvät tästäkin:

1. Ohjelmalla ei ole yhdyssanasanastoa, joten esimerkiksi maanosa taipuu maa-no-sa

2. Jos konsonantteja on kolme peräkkäin (harvinaista suomenkielessä), kuten sanoissa strutsi ja myrsky, ohjelma ei tavuta oikein

DIM SHARED vokaalit AS STRING
DIM SHARED konsonantit AS STRING

CLS
vokaalit = "aeiouyäö"
konsonantit = "bcdfghjklmnpqrstvwxz"

LINE INPUT "Kirjoita tavutettava sana/lause: ", sana$

sana$ = sana$ + SPACE$(50)

FOR i = 2 TO LEN(sana$) - 1
  IF OnKonsonantti(MID$(sana$, i - 1, 1)) AND OnKonsonantti(MID$(sana$, i, 1)) AND MID$(sana$, i, 1) = MID$(sana$, i - 1, 1) THEN
    sana$ = LEFT$(sana$, i - 1) + "-" + MID$(sana$, i)
  END IF
NEXT

FOR i = 2 TO LEN(sana$) - 1
  IF OnVokaali(MID$(sana$, i - 1, 1)) AND OnKonsonantti(MID$(sana$, i, 1)) AND OnVokaali(MID$(sana$, i + 1, 1)) THEN
    sana$ = LEFT$(sana$, i - 1) + "-" + MID$(sana$, i)
  END IF
NEXT

FOR i = 2 TO LEN(sana$) - 1
  IF OnVokaali(MID$(sana$, i - 1, 1)) AND OnKonsonantti(MID$(sana$, i, 1)) AND OnKonsonantti(MID$(sana$, i + 1, 1)) AND MID$(sana$, i + 2, 1) <> "-" THEN
    sana$ = LEFT$(sana$, i) + "-" + MID$(sana$, i + 1)
  END IF
NEXT

FOR i = 2 TO LEN(sana$) - 1
  IF OnVokaali(MID$(sana$, i - 1, 1)) AND OnVokaali(MID$(sana$, i, 1)) AND OnVokaali(MID$(sana$, i + 1, 1)) THEN
    sana$ = LEFT$(sana$, i - 1) + "-" + MID$(sana$, i)
  END IF
NEXT

PRINT sana$

FUNCTION OnKonsonantti% (kirjain$)
  IF INSTR(konsonantit, LCASE$(kirjain$)) > 0 THEN OnKonsonantti% = 1
END FUNCTION

FUNCTION OnVokaali% (kirjain$)
  IF INSTR(vokaalit, LCASE$(kirjain$)) > 0 THEN OnVokaali% = 1
END FUNCTION

Kommentit

darkest [26.03.2005 15:08:58]

#

sexikäs :D:D...mut en jaCCa tesoo :P xD

Kirjoita kommentti

Muista lukea kirjoitusohjeet.
Tietoa sivustosta