Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

Programmeurs: help!

Tazzie
17 antwoorden
  • 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?
  • 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.
  • 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??
  • 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.
  • Zal wel ff wat in elkaar zetten in javascript.

    ….
  • 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….
  • 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]
    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)
  • 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 ]
  • 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 ]
  • 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.
  • 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]
  • 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 ]
  • 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: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:
  • 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:
  • Kun je 't zo veranderen dat je de Q ook als K mag gebruiken? :smile:

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.