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
sexikäs :D:D...mut en jaCCa tesoo :P xD