Pieni koodinpätkä, joka aluksi pyytää käyttäjää kirjoittamaan jotakin. Sitten se kerää tekstistä kaikenlaista tietoa, mm. tekstin pituuden, konsonanttien, vokaalien, kirjainten ja sanojen määrän. Lopuksi koodi vielä toteaa pari asiaa tuloksien perusteella.
Sanojen laskemisesta sen verran, että koodi erehtyy, mikäli sille syötetään kummallisia merkkijonoja tai hymiöitä (esim. ".:);!?" tai ":)"). Tavallisen tekstin kanssa se pärjännee jokseenkin hyvin.
E: Parantelin hieman koodia ja korjasin virheenkäsittelyssä olleen virheen :D.
'Koodin on tehnyt Jare - saa käyttää ja muokata vapaasti
'ja nimeni voi laittaa johonkin jos haluaa, mutta ei
'ole pakko.
'ensinnä kaikkein tärkein:
ON ERROR GOTO OHJELMOINTIPUTKA 'Mikäli koodissa on jotain vikaa, hakekaa
'Ohjelmointiputkasta apua ;-)
CLS
PRINT "Kirjoita teksti:"
INPUT "", teksti$
vokaalit$ = "aeiouyåäö"
konsonantit$ = "bcdfghjklmnpqrstvwxz"
kirjaimet$ = "abcdefghijklmnopqrstuvwxyzåäö"
seursana$ = "abcdefghijklmnopqrstuvwxyzåäö.:;!?'`~()/&%$«" 'merkit, joiden jälkeinen väli
'tarkoittaa uuden sanan alkamista
FOR m = 1 TO LEN(teksti$)
edm$ = m$ 'otetaan talteen edellinen merkki, jotta nähdään, vaihtuuko sana
m$ = LCASE$(MID$(teksti$, m, 1))
isopieni$ = MID$(teksti$, m, 1)'tämä muuttuja muistaa kirjainten koot
FOR v = 1 TO 9 'tarkistetaan, onko merkki vokaali
v$ = MID$(vokaalit$, v, 1)
IF m$ = v$ THEN vokaaleja = vokaaleja + 1
IF isopieni$ = UCASE$(v$) THEN isoja = isoja + 1
IF isopieni$ = LCASE$(v$) THEN pienia = pienia + 1
NEXT v
FOR k = 1 TO 20 'tarkistetaan, onko merkki konsonantti
k$ = MID$(konsonantit$, k, 1)
IF m$ = k$ THEN konsonantteja = konsonantteja + 1
IF isopieni$ = UCASE$(k$) THEN isoja = isoja + 1
IF isopieni$ = LCASE$(k$) THEN pienia = pienia + 1
NEXT k
FOR a = 1 TO 29 'tarkistetaan, onko merkki kirjain
a$ = MID$(kirjaimet$, a, 1)
IF m$ = a$ THEN
kirjaimia = kirjaimia + 1
IF sanoja = 0 THEN sanoja = 1 'jos tekstistä löytyy kirjaimia, sanoja on oltava väh. yksi
END IF
NEXT a
IF m$ = CHR$(32) THEN 'tarkistetaan, alkaako uusi sana
FOR vl = 1 TO LEN(seursana$)
vl$ = MID$(seursana$, vl, 1)
IF edm$ = vl$ THEN sanoja = sanoja + 1
NEXT vl
END IF
NEXT m
muita = LEN(teksti$) - kirjaimia
PRINT
PRINT
PRINT "Tekstin analysointi:"
PRINT
PRINT "Kirjaimia:"; kirjaimia; "("; kirjaimia / (muita + kirjaimia) * 100; "%)"
PRINT "Muita merkkejä:"; muita; "("; muita / (muita + kirjaimia) * 100; "%)"
PRINT
PRINT "Vokaaleita:"; vokaaleja; "("; vokaaleja / (vokaaleja + konsonantteja) * 100; "%)"
PRINT "Konsonantteja:"; konsonantteja; "("; konsonantteja / (vokaaleja + konsonantteja) * 100; "%)"
PRINT
PRINT "Isoja kirjaimia:"; isoja; "("; isoja / (isoja + pienia) * 100; "%)"
PRINT "Pieniä kirjaimia:"; pienia; "("; pienia / (isoja + pienia) * 100; "%)"
PRINT
PRINT "Tekstin pituus:"; LEN(teksti$)
PRINT "Sanoja:"; sanoja
PRINT
PRINT
PRINT "Pari sanaa:"
PRINT
IF LEN(teksti$) = 0 THEN PRINT "Tekstissä ei ole kerrassaan mitään! :O"
IF sanoja = 0 AND muita > 0 THEN PRINT "Tekstissä ei ole sanoja!"
IF kirjaimia > 0 AND muita = 0 THEN PRINT "Tekstissä ei ole muita merkkejä kuin kirjaimia!"
IF sanoja >= 50 THEN PRINT "Aika paljon sanoja! :)"
IF konsonantteja > 0 AND vokaaleja > konsonantteja THEN PRINT "Vokaaleita on enemmän kuin konsonantteja."
IF vokaaleja > 0 AND vokaaleja < konsonantteja THEN PRINT "Konsonantteita on enemmän kuin vokaaleja, mikä on harvinaista! :O"
IF vokaaleja > 0 AND vokaaleja = konsonantteja THEN PRINT "Vokaaleita on yhtä monta kuin konsonantteja, mikä on harvinaista! :O"
IF vokaaleja = 0 AND konsonantteja > 0 THEN PRINT "Ei yhtään vokaalia! :O"
IF vokaaleja > 0 AND konsonantteja = 0 THEN PRINT "Ei yhtään konsonanttia! :O"
IF isoja > 0 AND pienia > isoja THEN PRINT "Pieniä kirjaimia on enemmän kuin isoja."
IF pienia > 0 AND pienia < isoja THEN PRINT "Isoja kirjaimia on enemmän kuin pieniä, mikä on harvinaista! :O"
IF pienia > 0 AND pienia = isoja THEN PRINT "Pieniä kirjaimia on yhtä monta kuin isoja kirjaimia, mikä on harvinaista! :O"
IF pienia = 0 AND isoja > 0 THEN PRINT "Ei yhtään pientä kirjainta! :O"
IF pienia > 0 AND isoja = 0 THEN PRINT "Ei yhtään isoa kirjainta! :O"
END
OHJELMOINTIPUTKA:
CLS
PRINT "Joku kusee :("
END
RESUMEHieno virheenkäsittely! ;)
Ihan kätevä analysointi.
Tuo virheenkäsittely on tosiaan hieno. :)
Hahaha, virheenkäsittely sai aikaan sen että aloin nauraa yhtäkkiä tunnilla ja mut poistettiin luokasta pois ;D
Jännä. :o
Virheenkäsittely on kyl tosiaan aika mielenkiintonen ;)
Hyvä eroorhandleri tosiaan :D
Kiitoksia.
Koodin on hyvä ja errorhandleri on äks dee.
Hieno virheekäsittelijä tosiaan =)
Hieno =)
Ja koodi on OK.
toimii... ja on hyvä virheenkäsittely oli hyvin tehty...
d_((^.^))_b
Hyvältä näyttää!
heheh... :D Virheenkäsittely... "Joku Kusee :("
Muuten ihan toimiva vinkki!
Aihe on jo aika vanha, joten et voi enää vastata siihen.