anoniem Geplaatst: 6 februari 2002 Delen Geplaatst: 6 februari 2002 Ik ben op school met een taalspelletje bezig. Nu zoek ik een programmaatje, dat van een ingetypt woord de woordwaarde berekent (a=1, b=2,..,z=26). Bijvoorbeeld: sta=19+20+1=40 punten. Wie o wie helpt? Of wie kent zo een programmaatje? Quote Link naar reactie
anoniem Geplaatst: 6 februari 2002 Auteur Delen Geplaatst: 6 februari 2002 Ik zou beginnen met een 2-dimensionale array, waarin je alle letters met hun waarden zet. Vervolgens lees je de input en je zet ze om naar kleine of hoofdletters (afhankelijk van wat in je array staat). Dan ga je letter voor letter na wat de bijbehorende waarde in de array is, zoiets als dit, en je telt het hele zaakje bij elkaar op. Een beetje pseudo-taal: string letters[26,2] int totaal = 0 letters[0,0] = "a" letters[0,1] = "1" letters[1,0] = "b" letters[1,1] = "2" // enz. Misschien met een lusstructuur of zo inputstring = lcase(...) // iets wat de gebruiker heeft ingevoerd, omgezet naar kleine letters (lowercase) For each letter in inputstring // elke letter bekijken for j = 0 to 25 if letters(j, 0) = letter then totaal = totaal + letters(j, 1) next next print totaal Nou ff vertalen naar een echte programmeertaal. Quote Link naar reactie
anoniem Geplaatst: 6 februari 2002 Auteur Delen Geplaatst: 6 februari 2002 Bedankt voor het meedenken. Alleen.... ik heb geen programmeerervaring in Windows. Alleen Basic heb ik 20 jaar geleden gebruikt... Welke programmeertaal hebbik er voor nodig?? Quote Link naar reactie
anoniem Geplaatst: 6 februari 2002 Auteur Delen Geplaatst: 6 februari 2002 Ik zat hier even naar te kijken en vroeg me af of je hiervoor niet iets in javascript in elkaar kunt zetten. Zo maak je én een htmlpaginaatje, met formulieren om woorden in te vullen en zo, én je hebt een beetje het programmaatje (scriptje) om datgene te doen wat je graag wilt. Quote Link naar reactie
anoniem Geplaatst: 7 februari 2002 Auteur Delen Geplaatst: 7 februari 2002 Zal wel ff wat in elkaar zetten in javascript. .... Quote Link naar reactie
anoniem Geplaatst: 7 februari 2002 Auteur Delen Geplaatst: 7 februari 2002 Big Foot, Waarom maak je een 2 dimensionaal array en niet gewoon een 1 dimensionaal array?? Als je bv: [code:1:8af8ec6126]letters(1)="a" letters(2)="b" letters(3)="c" etc etc[/code:1:8af8ec6126] Als je de positie weet weet je ook gelijk de waarde (a=pos 1, dus waarde 1 - b=pos 2 etc etc) Dat scheelt weer geheugen.... Quote Link naar reactie
anoniem Geplaatst: 7 februari 2002 Auteur Delen Geplaatst: 7 februari 2002 Je hoeft zelf geen waarde toe te kennen aan een letter. Je vraagt de ASCII waarde op. A=41, B=42 enz. Als je hier veertig van aftrek heb je lijst al. Quote Link naar reactie
anoniem Geplaatst: 7 februari 2002 Auteur Delen Geplaatst: 7 februari 2002 [quote:18af9a5538] Op 07-02-2002 12:01, schreef Rude: Je hoeft zelf geen waarde toe te kennen aan een letter. Je vraagt de ASCII waarde op. A=41, B=42 enz. Als je hier veertig van aftrek heb je lijst al. [/quote:18af9a5538] Nog beter.... Maar je moet dan wel ff rekening houden met hoofdletters en kleine letters.... (Of alles eerst omzetten naar kleine/hoofd letters LCASE/UCASE) Quote Link naar reactie
anoniem Geplaatst: 7 februari 2002 Auteur Delen Geplaatst: 7 februari 2002 In Visual Basic zou dit worden: [code:1:db60842dff]Option Explicit Private s As String Private t As Integer Sub Main() BerekenWoordWaarde If MsgBox(s & " = " & t & vbCrLf & "Nog een keer?", vbQuestion + vbYesNo) = vbYes Then Main End If End Sub Private Sub BerekenWoordWaarde() Dim l As Long Dim x As Long t = 0 s = LCase(InputBox("Geef het volgende woord")) l = Len(s) For x = 1 To l t = t + Asc(Mid(s, x, 1)) - 96 Next x End Sub[/code:1:db60842dff] Geen Form nodig, slechts 1 Module, lekker simpel. Dit voorbeeld maakt alle letters klein en houdt geen rekening met cijfers of leestekens. _________________ I used to have an open mind but my brains kept falling out. [ Dit Bericht is bewerkt door: DarkScribe op 2002-02-07 21:34 ] Quote Link naar reactie
anoniem Geplaatst: 8 februari 2002 Auteur Delen Geplaatst: 8 februari 2002 eindelijk de tijd gehad om een snel en slordig html paginaatje in elkaar te zetten. [code:1:60e334aae7] <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Leiwa Inc. Homepage</title> <script language="JavaScript"> <!-- hide script for older browsers var arLetterWaarde = new Array(); arLetterWaarde[0] = 0; arLetterWaarde[1] = 1; arLetterWaarde[2] = 2; arLetterWaarde[3] = 3; arLetterWaarde[4] = 4; arLetterWaarde[5] = 5; arLetterWaarde[6] = 6 arLetterWaarde[7] = 7; arLetterWaarde[8] = 8; arLetterWaarde[9] = 9; arLetterWaarde[10] = 10; arLetterWaarde[11] = 11; arLetterWaarde[12] = 12; arLetterWaarde[13] = 13; arLetterWaarde[14] = 14; arLetterWaarde[15] = 15; arLetterWaarde[16] = 16; arLetterWaarde[17] = 17; arLetterWaarde[18] = 18; arLetterWaarde[19] = 19; arLetterWaarde[20] = 20; arLetterWaarde[21] = 21; arLetterWaarde[22] = 22; arLetterWaarde[23] = 23; arLetterWaarde[24] = 24; arLetterWaarde[25] = 25; arLetterWaarde[26] = 26; function waardeer() { var intWoordLengte = 0; var intWoordWaarde = 0; var intOudWaarde = 0; var intLetter = 0; var intArLetter = 0; var teller = 0; strOudWoord = document.formulier1.woord.value; strWoord = strOudWoord.toUpperCase(); intWoordLengte = strWoord.length; while (teller<intWoordLengte) { intLetter = strWoord.charCodeAt(teller); if (intLetter>64) { if (intLetter<91) { intArLetter = intLetter - 64; intWoordWaarde = intWoordWaarde + arLetterWaarde[intArLetter]; } } teller++; } document.formulier1.woordlengte.value = intWoordLengte; document.formulier1.woordwaarde.value = intWoordWaarde; } // --> </script> </head> <body> <p> Vul het woord in: <br> <form name="formulier1"> <input type="text" size="30" name="woord"> <br> Woordlengte : <input type="text" name="woordlengte" size="10" onFocus="blur()"> <br> Woord waarde: <input type="text" name="woordwaarde" size="30" onFocus="blur()"> <br> <input type="button" Value="Waardering" onClick="waardeer()"> <input type="Reset" Value="Wissen"> </form> </body> </html> [/code:1:60e334aae7] Kopieer dit in kladblok, kies Bestand, Opslaan als..., kies bij 'Opslaan als type' voor 'Alle bestanden' kies als naam bijv. 'letters.html' (let op: met de punt en html erachter). Dan zou het moeten werken, want in verkenner zie je als het goed is een bestand letters die je met internet explorer kan openen (gewoon op het bestand dubbelklikken) [i:60e334aae7]edit[/i:60e334aae7] Je kunt eventueel de waardes van de letters wijzigen, waarbij arLetterWaarde[1] de waarde van 'A' is en arLetterWaarde[26] de waarde van 'Z'. Let erop dat er geen letters met accenten worden gebruikt, die worden genegeerd (dus waarde = 0). [i:60e334aae7]edit ca 22:50[/i:60e334aae7] Ik had iets vergeten, dat heb ik even rechtgetrokken.... in de formule om de letterwaardes op te tellen heb ik vergeten te verwijzen naar de Array, en de array werd niet goed ingevuld.... shame on me.... :wink: [ Dit Bericht is bewerkt door: WillyF op 2002-02-08 22:53 ] Quote Link naar reactie
anoniem Geplaatst: 8 februari 2002 Auteur Delen Geplaatst: 8 februari 2002 Subliem! Knap dat je dat zo kunt. En ik vraag nu rustig naar het vervolg. De kinderen typen nu om de beurt woorden in van diverse lengte (te beginnen bij 4, eindigend bij 15). Is het nu mogelijk om van elke woordlengte een top 5 te maken, die telkens verandert als er een woord met meer waarde wordt ingevoerd? En is het dan mogelijk om die top 5 op schijf te bewaren en per keer gewoon bij te laten werken, als er weer een woord wordt ingegeven? Geweldig, dat jullie trouwens zo meedenken. Quote Link naar reactie
anoniem Geplaatst: 8 februari 2002 Auteur Delen Geplaatst: 8 februari 2002 Kleinigheidje. Het vullen van die array zou ik in een lus doen. Scheelt een paar regels, dus: [code:1:f531a5a403] function vulArray() { var arLetterWaarde = new Array(); var teller; for (teller = 0; teller < 26; teller++) arLetterWaarde[teller] = teller; } [/code:1:f531a5a403] Quote Link naar reactie
anoniem Geplaatst: 8 februari 2002 Auteur Delen Geplaatst: 8 februari 2002 Een Top-5 maken lijkt me niet zo'n probleem. Je zet alle woordlengtes in een array en elke keer tel je alle voorkomens van de waarden 4 t/m 15 in die array. Je kunt 't met Javascript echter niet op schijf opslaan. [edit] Altijd leuk om te horen dat ik geweldig ben. :wink: [/edit] [ Dit Bericht is bewerkt door: Bigfoot op 2002-02-08 22:31 ] Quote Link naar reactie
anoniem Geplaatst: 8 februari 2002 Auteur Delen Geplaatst: 8 februari 2002 Yikes... ik zie dat ik een klein foutje heb gemaakt..... btw, bigfoot, ik het het zo omslachtig gedaan, omdat ik niet zeker wist wat voor waardes al die letters zouden moeten krijge... Als je ziet, dat bovenstaande code van me, is gewijzid (edit om ca. 22:53) dan is dat de goede.... excuses :eek: [i:8e0bfb4c86]edit[/i:8e0bfb4c86] het een en ander is gewijzigd, er is meer gewijzigd dan ik had gedacht, als je het nog wil gebruiken, kun je de eerdere versies wel weggooien en de versie gebruiken, die nu bovenstaat.... [ Dit Bericht is bewerkt door: WillyF op 2002-02-08 22:56 ] Quote Link naar reactie
anoniem Geplaatst: 8 februari 2002 Auteur Delen Geplaatst: 8 februari 2002 [quote:60110ff813] Op 06-02-2002 22:16, schreef Theo Legters: Nu zoek ik een programmaatje, dat van een ingetypt woord de woordwaarde berekent [b:60110ff813](a=1, b=2,..,z=26)[/b:60110ff813]. [/quote:60110ff813] :wink: Quote Link naar reactie
anoniem Geplaatst: 8 februari 2002 Auteur Delen Geplaatst: 8 februari 2002 Oh, niet gelezen :grin: Nou, ja... maar ik blijf erbij, op deze manier kun je (overdreven) zeggen dat bijv. de letter Q, waarde 30 meekrijgt. :grin: Quote Link naar reactie
anoniem Geplaatst: 8 februari 2002 Auteur Delen Geplaatst: 8 februari 2002 Kun je 't zo veranderen dat je de Q ook als K mag gebruiken? :smile: Quote Link naar reactie
anoniem Geplaatst: 12 februari 2002 Auteur Delen Geplaatst: 12 februari 2002 ok, dan nog een klein stukje van mijn kant. Is wat minder code. [code:1:668a58f6c4] <script language="javascript"> var intA = 1; var intB = 2; var intC = 3; var intD = 4; var intE = 5; var intF = 6; var intG = 7; var intH = 8; var intI = 9; var intJ = 10; var intK = 11; var intL = 12; var intM = 13; var intN = 14; var intO = 15; var intP = 16; var intQ = 17; var intR = 18; var intS = 19; var intT = 20; var intU = 21; var intV = 22; var intW = 23; var intX = 24; var intY = 25; var intZ = 26; function returnValue() { var strWoord = document.frmText.txtInput.value; var chrLetter; var intValue = 0; var intCurrentValue = 0; for (var i = 0; i < strWoord.length; i++) { chrLetter = strWoord.charAt(i); eval("intCurrentValue = int" + chrLetter.toUpperCase()); intValue = intValue + intCurrentValue; } alert('De waarde van het woord is ' + intValue); } </script> [/code:1:668a58f6c4] Heeft even geduurd, maar had het erg druk op mijn werk. Nog steeds, maar kon me even losweken... Suc6 _________________ Live is all about priorities<P>Tazzie was formely known as Taz4fun or Taz44fun [ Dit Bericht is bewerkt door: Tazzie op 2002-02-12 08:15 ] Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen