Ga naar inhoud

Programmeurs: help!


anoniem

Aanbevolen berichten

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.
Link naar reactie
[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)
Link naar reactie
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 ]
Link naar reactie
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 ]
Link naar reactie
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.
Link naar reactie
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 ]
Link naar reactie
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 ]
Link naar reactie
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 ]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...