Kaymen: Vokabeltrainer wie programmieren

Hallo liebe Selfhtml-User,

ich gehe in die 9. Klasse eines Gymnasiums und habe als Wahlpflichtfach Informatik,

dort habe ich nun die folgende Aufgabe gestellt bekommen:

Erstelle einen Vokabeltrainer, der so aufgebaut ist: <a href="http://img183.imageshack.us/my.php?image=1234y.png"> Vokabeltrainer</a>

Hierbei sollte der Trainer so funktionieren:

Es gibt 2 Arrays mit den Englischen und Deutschen Vokabeln, diese sind als globale Variablen eingesetzt.

Button 1( Los Gehts Eng) sollte ein zufälliges englisches Wort aus dem Array mit den Englischen Vokabeln in das Textfeld 1 eingeben, das Textfeld 2 wird/bleibt dabei leer.

Button 2(los Gehts De) sollte ein zufälliges deutsches Wort aus dem Array mit den Englischen Vokabel in das Textfeld 2 eingeben, das Textfeld 1 wird/bleibt dabei auch leer. Dabei sollten beide Buttons über die gleiche Funktion laufen.

Beispiel:
1)
Klickt man auf Button 1, so erscheint im Textfeld 1 das Wort "hat". Das Textfeld 2 wird geleert. Nun können wir die Übersetzung von "hat" in Textfeld 2 hineinschreiben.

Klickt man auf Button 2, so erscheint im Textfeld 2 das Wort "Hut". Das Textfeld 1 wird geleert. Nun können wir die Übersetzung von "Hut" in Textfeld 1 hineinschreiben.

Der Button 3 ( Prüfen) soll nun prüfen ob die jeweilige Übersetzung richtig ist. Bei einer korrekten Übersetzung soll in Textfeld 3 "Richtig" ausgegeben werden, bei einer falschen Übersetzung sollte " Falsch, das richtige Wort lautet..." stehen, also ein Falsch mit den Korrektur der Übersetzung. Und falls noch keine Übersetzung eingegeben wurde so soll " Bitte Übersetzung angeben" erscheinen.

So das wars erstmal, ich danke schon mal allen im voraus für die Vorschläge und hoffe das ihr mir helfen könnt.

Mfg
Kaymen

  1. Hi,

    ich gehe in die 9. Klasse eines Gymnasiums und habe als Wahlpflichtfach Informatik,

    Und da lernst du hoffentlich auch was ...?

    dort habe ich nun die folgende Aufgabe gestellt bekommen:

    OK.

    So das wars erstmal, ich danke schon mal allen im voraus für die Vorschläge und hoffe das ihr mir helfen könnt.

    Wo ist dein Ansatz?

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
  2. OK hier mein Ansatz:

    var ListeENG = new Array ("hat", "pet", "let", "get", "wet",  "my");
    var ListeDE  = new Array ("Hut", "Tier", "lassen", "bekommen", "feucht", "mein" );

    function vokabeln(ENG, DE){
         var a;
    a= Math.floor(ListeDE.length*Math.random()) ;

    var ENG = ListeENG[a] ;
    document.Umgebung.textfeld1.value= ListeENG[a] ;

    var DE = ListeDE [a];
    document.Umgebung.textfeld2.value=  ListeDE[a] ;

    }

    Wie man sieht, bin ich nicht mal bis zum Button 3 gekommen weil ich das Problem habe, dass ich es nicht hinbekomme ein Textfeld zu füllen, während das andere leer wird/bleibt.
    Hoffe ihr könnt mir helfen.

    Mfg
    Kaymen

    1. Lieber Kaymen,

      OK hier mein Ansatz:

      na, das ist doch schonmal was!

      var ENG = ListeENG[a] ;
      document.Umgebung.textfeld1.value= ListeENG[a] ;

      var DE = ListeDE [a];
      document.Umgebung.textfeld2.value=  ListeDE[a] ;
      [...]
      Wie man sieht, bin ich nicht mal bis zum Button 3 gekommen weil ich das Problem habe, dass ich es nicht hinbekomme ein Textfeld zu füllen, während das andere leer wird/bleibt.

      Deine Funktion wird wann und wodurch ausgeführt? Und was macht sie dann? Sie ermittelt eine Zufallszahl (a) und ermittelt das deutsche _und_ englische Wort, um dann _sofort_ _beide_ in die entsprechenden Felder zu schreiben.

      Du brauchst einen Mechanismus, der Dir eine Funktion aufruft, wenn Du einen Button klickst. Dazu interessiert Dich sicherlich das onclick-Event, das man als onclick-Attribut einem Button hinzufügen kann, um darüber dann eine Funktion ausführen zu lassen.

      Findest Du etwas über "onclick" in SELFHTML?

      Liebe Grüße,

      Felix Riesterer.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
      1. Lieber Felix Riesterer

        Du brauchst einen Mechanismus, der Dir eine Funktion aufruft, wenn Du einen Button klickst. Dazu interessiert Dich sicherlich das onclick-Event, das man als onclick-Attribut einem Button hinzufügen kann, um darüber dann eine Funktion ausführen zu lassen.

        Findest Du etwas über "onclick" in SELFHTML?

        Liebe Grüße,

        Felix RiestererFelix Riesterer.

        Ich kenne mich mit dem Prinzip des Onclicks aus, jedoch ist mein Problem die Funktion mit dem Bezeichner

        Vielleicht hilft dir der Bodybereich um zu verstehen wa sich meine:

        <body>

        <form name="Umgebung">

        <input type="TEXT" name="button1"></input>
        <input type="BUTTON" name="textfeld1" value="LOS GEHTS ENG" onclick='vokabeln("ListeENG[a]")'> </input>

        <input type="TEXT" name="button2"></input>
        <input type="BUTTON" name="textfeld2" value="LOS GEHTS DE" onclick='vokabeln("ListeDE[a]")'> </input>

        </br>
        <input type="BUTTON" name="button3" value="PRüFEN" onclick="pruf ()"> </input>
        <input type="TEXT" name="prufe"></input>
        </form>
        </body>

        Mfg
        Kaymen

        1.   
          function vokabeln(ENG, DE){  
           var a = Math.floor(ListeDE.length * Math.random());  
            
           if(ENG && !DE) { // WENN ENG == true UND DE == false  
            var ENG = ListeENG[a] ;  
            document.Umgebung.textfeld1.value = ListeENG[a];  
           }  
           else if(!ENG && DE) { // WENN ENG == false UND DE == true  
            var DE = ListeDE[a];  
            document.Umgebung.textfeld2.value = ListeDE[a];  
           }  
          }  
          
          
            
          <body>  
           <form name="Umgebung">  
            <input type="text" name="button1" value="" />  
            <input type="button" name="textfeld1" value="LOS GEHTS ENG" onclick="vokabeln(true, false);" />  
            
            <input type="text" name="button2" value="" />  
            <input type="button" name="textfeld2" value="LOS GEHTS DE" onclick="vokabeln(false, true);" />  
            
            <br />  
            
            <input type="button" name="button3" value="PRÜFEN" onclick="pruf();" />  
            <input type="text" name="prufe" value="" />  
           </form>  
          </body>  
          
          

          </br>

          Was ist das?

          <input type="TEXT" name="button2"></input>

          Besser <input type="text" name="button2" value="" />

        2. Ich kenne mich mit dem Prinzip des Onclicks aus, jedoch ist mein Problem die Funktion mit dem Bezeichner

          Übergebe der Funktion doch 'ENG' für englisch und 'DE' für deutsch.

          In der Funktion nimmst du einen Parameter »sprache« entgegen und fragst dann ab: if (sprache == 'ENG') {...} else {...}

          http://de.selfhtml.org/javascript/sprache/funktionen.htm
          http://de.selfhtml.org/javascript/sprache/bedingt.htm

          Das hingegen:

          onclick='vokabeln("ListeENG[a]")'
          onclick='vokabeln("ListeDE[a]")'

          macht keinen Sinn. Die Funktion weiß bereits, in welchen Arrays die Wörter gespeichert sind, du brauchst ihr keinen JavaScript-Ausdruck übergeben - nur, in welchem Modus sie arbeiten soll.

          Mathias

          1. Mahlzeit molily,

            Übergebe der Funktion doch 'ENG' für englisch und 'DE' für deutsch.

            Ich würde entweder "EN" und "DE" oder "ENG" und "DEU" vorschlagen ... irgendwelcher Mischmasch ist eigentlich nie empfehlenswert.

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
            1. @@EKKi:

              nuqneH

              Ich würde entweder "EN" und "DE" oder "ENG" und "DEU" vorschlagen ...

              Entweder. "en" und "de" sind die Sprachkürzel (in Kleinschreibung).

              Qapla'

              --
              Bildung lässt sich nicht downloaden. (Günther Jauch)
              1. Mahlzeit Gunnar Bittersmann,

                »» Ich würde entweder "EN" und "DE" oder "ENG" und "DEU" vorschlagen ...

                Entweder. "en" und "de" sind die Sprachkürzel (in Kleinschreibung).

                Achja? (ISO 639-2 bzw. 639-3)

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                1. @@EKKi:

                  nuqneH

                  »» Entweder. "en" und "de" sind die Sprachkürzel (in Kleinschreibung).

                  Achja? (ISO 639-2 bzw. 639-3)

                  Ja.

                  “The namespace of language tags and their subtags is administered by the Internet Assigned Numbers Authority (IANA) […]” [RFC4646 §2.2]

                  “Note: For languages that have both an ISO 639-1 two-character code and an ISO 639-2 three-character code, only the ISO 639-1 two-character code is defined in the IANA registry.” [RFC4646 §2.2.1]

                  Qapla'

                  --
                  Bildung lässt sich nicht downloaden. (Günther Jauch)
                  1. Aha. Und was sagt uns das? IANA gut, ISO doof?

                    Mathias

                    1. @@molily:

                      nuqneH

                      Aha. Und was sagt uns das? IANA gut, ISO doof?

                      Nein. Nach meinem Verständnis sagt uns das: IANA aktuell, ISO obsolet.

                      Die ISO 639-x dienten als Grundlage für die IANA Language Subtag Registry. Es sollte für jede Sprache nur ein Kürzel verwendet werden: das in der IANA Language Subtag Registry angegebene. Für viele Sprachen ist dieses zweibuchstabig (de, en, …), für viele andere dreibuchstabig (dsb, tlh, …).

                      Qapla'

                      --
                      Bildung lässt sich nicht downloaden. (Günther Jauch)
                  2. Mahlzeit Gunnar Bittersmann,

                    “Note: For languages that have both an ISO 639-1 two-character code and an ISO 639-2 three-character code, only the ISO 639-1 two-character code is defined in the IANA registry.” [RFC4646 §2.2.1]

                    Ja und? Wieso ist "deu" und "eng" dann keine gute Idee? Nenne mir mindestens einen sinnvollen Grund, warum man die dreibuchstabigen Abkürzungen nicht verwenden sollte (immerhin ist damit eine erheblich differenziertere Unterscheidung möglich - wenn gewünscht).

                    MfG,
                    EKKi

                    --
                    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                    1. Hallo,

                      Wieso ist "deu" und "eng" dann keine gute Idee?

                      da ist nichts dagegen zu sagen, auch wenn mir das zweibuchstabige Schema eher liegt. Aber dann bitte konsequent: de und en sind ebenso okay wie deu und eng. Aber de und eng zu verwenden ist ein Durcheinander.

                      So long,
                       Martin

                      --
                      Wenn zwei dasselbe tun, sind sie vielleicht bald zu dritt.
                      1. Mahlzeit Der Martin,

                        »» Wieso ist "deu" und "eng" dann keine gute Idee?

                        da ist nichts dagegen zu sagen,

                        Anscheinend doch - <http://de.selfhtml.org/http://forum.de.selfhtml.org/?t=187532&m=1246911@title=zumindest Gunnar nach zu urteilen> ... wobei ich noch nicht verstanden habe, warum.

                        auch wenn mir das zweibuchstabige Schema eher liegt.

                        Mir auch.

                        Aber dann bitte konsequent: de und en sind ebenso okay wie deu und eng. Aber de und eng zu verwenden ist ein Durcheinander.

                        <http://de.selfhtml.org/http://forum.de.selfhtml.org/?t=187532&m=1246796@title=Meine Meinung> ...

                        MfG,
                        EKKi

                        --
                        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                    2. @@EKKi:

                      nuqneH

                      Nenne mir mindestens einen sinnvollen Grund, warum man die dreibuchstabigen Abkürzungen nicht verwenden sollte

                      Es sollte für jede Sprache nur ein Kürzel verwendet werden. Siehe meine Antwort auf molily.

                      Qapla'

                      --
                      Bildung lässt sich nicht downloaden. (Günther Jauch)
        3. ein paar Änderungen hier

          function vokabeln(sprache){
           var ListeENG = new Array ("hat", "pet", "let", "get", "wet",  "my");
           var ListeDE  = new Array ("Hut", "Tier", "lassen", "bekommen", "feucht", "mein" );
           var a= Math.floor(ListeDE.length*Math.random()) ;
           if (sprache=="ENG") {
            document.Umgebung.textfeld1.value= ListeENG[a] ;
            document.Umgebung.textfeld2.value= "" ;
           }
           else {
           document.Umgebung.textfeld2.value= ListeDE[a] ;
           document.Umgebung.textfeld1.value= "" ;
           }
          }

          und da

          <form name="Umgebung">
          <input type="TEXT" name="textfeld1"></input>
          <input type="BUTTON" value="LOS GEHTS ENG" onclick='vokabeln("ENG")'> </input>

          <input type="TEXT" name="textfeld2"></input>
          <input type="BUTTON" value="LOS GEHTS DE" onclick='vokabeln("DE")'> </input>

          </br>
          <input type="BUTTON" name="button3" value="PRüFEN" onclick="pruf ()"> </input>
          <input type="TEXT" name="prufe"></input>
          </form>

          und nun musst du nur noch eine Vergleichsfunktion unterbringen

  3. @@Kaymen:

    nuqneH

    ich danke schon mal allen im voraus für die Vorschläge

    Mein Vorschlag ist: Du gehst zu deinem Lehrer und sagst, dass du zu faul bist, deine Hausaufgaben zu erledigen. Das wäre zumindest ehrlich.

    Qapla'

    --
    Bildung lässt sich nicht downloaden. (Günther Jauch)
    1. Mein Vorschlag ist: Du gehst zu deinem Lehrer und sagst, dass du zu faul bist, deine Hausaufgaben zu erledigen. Das wäre zumindest ehrlich.

      Aber mit Ehrlichkeit kommt man im Berufsleben später nicht weiter. Also lieber nicht...

  4. So ich habe nun die Function einigermaßen fertig, was mich aber trotzdem noch stört ist die Variable "a". Diese lässt sich nur einmal bestimmen und bei der Abfrage kommt somit immer nur das gleiche Wort. Wie kann ich die Funktion schreiben, so dass sich "a" verändert. Sie sollte aber bei den functions "vokabeln(sprache)" und "prif()" gleich sein.

    Hier der Quelltext:

    var ListeENG = new Array ("hat", "pet", "let", "get", "wet",  "my");
    var ListeDE  = new Array ("Hut", "Tier", "lassen", "bekommen", "feucht", "mein" );
    var a = Math.floor(ListeDE.length*Math.random())  ;

    function vokabeln(sprache){

    if (sprache=="ENG") {
      document.Umgebung.textfeld1.value= ListeENG[a] ;
      document.Umgebung.textfeld2.value= "" ;

    }
    else {
     document.Umgebung.textfeld2.value= ListeDE[a] ;
     document.Umgebung.textfeld1.value= "" ;

    }

    }

    function pruf()  {

    if ( document.Umgebung.textfeld2.value == ListeDE[a] &&   document.Umgebung.textfeld1.value== ListeENG[a] )
        {   document.Umgebung.textfeld3.value = "Richtig!!!";}

    else { document.Umgebung.textfeld3.value = "Falsch!"+ "--->"  +" "+ ListeDE[a]  +" "+ "heisst" +" " +ListeENG[a] ;
    }

    }

    Bedanke mich im Vorraus

    Mfg
    Kaymen

    1. Lieber Kaymen,

      die Variable "a". Diese lässt sich nur einmal bestimmen und bei der Abfrage kommt somit immer nur das gleiche Wort. Wie kann ich

      gehen wir das Ganze einmal etwas strukturierter an. Wenn uns das Bedienungs-Szenario klar ist, dann können wir auch sinnvollen Code generieren.

      1.) User klickt einen Button. Daraufhin muss entweder ein englisches oder deutsches Wort erscheinen, zu dem der User dann das jeweils andere ergänzen soll, stimmt's?

      Also:

      • "Los geht's ENG" -> schlage ein zufälliges Wort in englisch vor.
      • "Los geht's DE"  -> schlage ein zufälliges Wort in deutsch vor.

      Das bedeutet, wir brauchen eine Funktion "schlage_vor(sprache)", die je nach Button ein Wort (zufällig!) vorschlägt und das Eingabefeld der jeweils anderen Sprache leer lässt.

      2.) Wenn der Button "prüfen" betätigt wird, soll die Übereinstimmung der beiden Wörter geprüft werden, simmt's?

      Also:

      • "prüfen" -> Überprüfe die Kombination der beiden Eingaben und gib eine Meldung aus.

      Das bedeutet, wir brauchen eine (zweite) Funktion "pruefen()", die das Zusammenpassen der Eingaben überprüft und eine entsprechende Ausgabe macht. Diese Funktion wird Dir noch einiges Kopfzerbrechen machen, aber wenn Du bis dahin gekommen bist, dann wirst Du schon um einiges klarer sehen.

      Die Buttons "Los geht's..." bekommen ein onclick="schlage_vor('ENG')" oder ein onclick="schlage_vor('DE')".

      Der Button "prüfen" bekommt ein onclick="pruefen()".

      Wo ist jetzt Dein Problem?

      Liebe Grüße,

      Felix Riesterer.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
      1. Wo ist jetzt Dein Problem?

        Liebe Grüße,

        Felix Riesterer.

        Mein Problem ist, dass bei einem Aufruf der Funktion die Variable a, also eine Zufallszahl immer gleich beleibt und ich möchte das ändern. Die Variable sollte aber für die beiden Funktionen trotzdem gleich bleiben aber bei jedem Betätigen der "vokabeln(ENG)" sollte a neugeneriert werden.

        Hoffe du verstehst was ich meine.

        Mfg
        Kaymen

        1. Lieber Kaymen,

          Mein Problem ist, [...]

          Hoffe du verstehst was ich meine.

          ich habe den Umgang mit JavaScript inzwischen ein Bisschen wenigstens verstanden. Von daher ist mir sonnenklar, was Du brauchst, was Du vorhast, und wo Deine Denkfehler liegen.

          Dir aber nicht. Du willst meine Hilfen nicht annehmen, da Du meinst, Deine Gedankengänge wären zielführend. Das sind sie aber nicht. Und das lässt Du Dir leider auch nicht sagen. Schade eigentlich. Mit etwas mehr Gedankenstruktur wärst Du längst mit Deinem Vokabeltrainer fertig...

          Liebe Grüße,

          Felix Riesterer.

          --
          ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
          1. Und das lässt Du Dir leider auch nicht sagen. Schade eigentlich. Mit etwas mehr Gedankenstruktur wärst Du längst mit Deinem Vokabeltrainer fertig...

            Liebe Grüße,

            Felix Riesterer.

            Viellicht hast du meine Lösung übersehen und zwar die hier:

            var ListeENG = new Array ("hat", "pet", "let", "get", "wet",  "my");
            var ListeDE  = new Array ("Hut", "Tier", "lassen", "bekommen", "feucht", "mein" );
            var a = Math.floor(ListeDE.length*Math.random())  ;

            function vokabeln(sprache){

            if (sprache=="ENG") {
              document.Umgebung.textfeld1.value= ListeENG[a] ;
              document.Umgebung.textfeld2.value= "" ;

            }
            else {
             document.Umgebung.textfeld2.value= ListeDE[a] ;
             document.Umgebung.textfeld1.value= "" ;

            }

            }

            function pruf()  {

            if ( document.Umgebung.textfeld2.value == ListeDE[a] &&   document.Umgebung.textfeld1.value== ListeENG[a] )
                {   document.Umgebung.textfeld3.value = "Richtig!!!";}

            else { document.Umgebung.textfeld3.value = "Falsch!"+ "--->"  +" "+ ListeDE[a]  +" "+ "heisst" +" " +ListeENG[a] ;
            }

            }

            Wie du siehst gibt es hier ein Button der Wörter vorgibt und dabei das andere Feld leer lässt, es gibt auch ein Button der die Angaben prüft.
            Jedoch ist mein Problem nun die Variable "a" nur einmal generiert wird und somit Button 1 und Button 2 immer das  gleiche Wort anzeigen. Somit möchte ich wissen wie ichs es hinkriege, dass "a" immer neudefeniert wird und "a" für Button 1, Button 2 und Button 3 gleich ist.

            Ich hoffe ich habe dich korrekt verstanden, wenn nicht, dann bitte ich um Entschuldigung. Denn ich bin in Informatik nicht der beste und lasse mich gerne von anderen Beraten der auch Belehren

            Mfg
            Kaymen

            1. Lieber Kaymen,

              Viellicht hast du meine Lösung übersehen und zwar die hier:

              var ListeENG = new Array ("hat", "pet", "let", "get", "wet",  "my");
              var ListeDE  = new Array ("Hut", "Tier", "lassen", "bekommen", "feucht", "mein" );
              var a = Math.floor(ListeDE.length*Math.random())  ;

              function vokabeln(sprache){

              und Du hast meinen Lösungsgedanken nicht zu Ende gedacht. Ich zitiere meinen Vorschlag:

              | Das bedeutet, wir brauchen eine Funktion "schlage_vor(sprache)", die je nach Button ein Wort (zufällig!) vorschlägt und das Eingabefeld der jeweils anderen Sprache leer lässt.

              Was hindert Dich denn einzusehen, dass Du die Zufallsvariable auch von Deine Funktion "vokabeln" erzeugen lassen kannst? Wenn sie zuvor global definiert wurde, dann ist sie das innerhalb der Funktion immer noch (m.W. im Gegensatz zu anderen Sprachen).

              Liebe Grüße,

              Felix Riesterer.

              --
              ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
              1. Hallo Felix,

                Wenn sie zuvor global definiert wurde, dann ist sie das innerhalb der Funktion immer noch (m.W. im Gegensatz zu anderen Sprachen).

                nein, nicht "im Gegensatz". Es ist durchaus üblich, dass global deklarierte Variablen auch von innerhalb einer Funktion ansprechbar sind. Das heißt ja schließlich "global" im Sinne von "überall verfügbar".
                PHP ist die einzige mir bekannte Sprache, die das anders versteht.

                So long,
                 Martin

                --
                Ein Snob ist ein Mensch, der sich auf ein Stachelschwein setzt, ohne eine Miene zu verziehen - nur weil ihm jemand gesagt hat, das sei ein Designersessel.
              2. Lieber Kaymen,

                und Du hast meinen Lösungsgedanken nicht zu Ende gedacht. Ich zitiere meinen Vorschlag:

                »» | Das bedeutet, wir brauchen eine Funktion "schlage_vor(sprache)", die je nach Button ein Wort (zufällig!) vorschlägt und das Eingabefeld der jeweils anderen Sprache leer lässt.

                Was hindert Dich denn einzusehen, dass Du die Zufallsvariable auch von Deine Funktion "vokabeln" erzeugen lassen kannst? Wenn sie zuvor global definiert wurde, dann ist sie das innerhalb der Funktion immer noch (m.W. im Gegensatz zu anderen Sprachen).

                Liebe Grüße,

                Felix Riesterer.

                Das Problem ist, dass wenn ich das Zufallswort mit einer Zahl definiere, also Variable a, diese aber...

                1. Wenn ich sie als globe Variable definiere, sie sich nicht von alleine verändert und somit immer das gleiche Wort rausgegeben wird.

                2. Wenn ich "a" in der 1. Funktion definiere, so ist sie in der 2. Funktion nicht mehr verfügbar.

                Und daraus entsteht mein Problem.

                Um deinen Ansatz zu verfolgen würde das ganze so aussehen:

                var ListeENG = new Array ("hat", "pet", "let", "get", "wet",  "my");
                var ListeDE  = new Array ("Hut", "Tier", "lassen", "bekommen", "feucht", "mein" );

                function vokabeln(sprache){

                var a = Math.floor(ListeDE.length*Math.random())  ;

                if (sprache=="ENG") {
                  document.Umgebung.textfeld1.value= ListeENG[a] ;
                  document.Umgebung.textfeld2.value= "" ;

                }
                else {
                 document.Umgebung.textfeld2.value= ListeDE[a] ;
                 document.Umgebung.textfeld1.value= "" ;

                }

                }

                function pruf()  {

                if ( document.Umgebung.textfeld2.value == ListeDE[a] &&   document.Umgebung.textfeld1.value== ListeENG[a] )
                    {   document.Umgebung.textfeld3.value = "Richtig!!!";}

                else { document.Umgebung.textfeld3.value = "Falsch!"+ "--->"  +" "+ ListeDE[a]  +" "+ "heisst" +" " +ListeENG[a] ;
                }

                }

                Hoffe du kannst mit weiterhelfen

                Mfg
                Kaymen

                1. Lieber Kaymen,

                  Wenn Du a global definierst (mit dem "var a;" am Anfang Deines Scripts), dann ist a in den Funktionen als Variable bekannt. In der ersten Funktion änderst Du a nach Belieben, in der zweiten Funktion kannst Du es dann wieder weiterverwenden.

                  Hoffe du kannst mit weiterhelfen

                  Hoffentlich hilft das obige tatsächlich weiter.

                  Liebe Grüße,

                  Felix Riesterer.

                  --
                  ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
                  1. Lieber Kaymen,

                    Wenn Du a global definierst (mit dem "var a;" am Anfang Deines Scripts), dann ist a in den Funktionen als Variable bekannt. In der ersten Funktion änderst Du a nach Belieben, in der zweiten Funktion kannst Du es dann wieder weiterverwenden.

                    »» Hoffe du kannst mit weiterhelfen

                    Hoffentlich hilft das obige tatsächlich weiter.

                    Liebe Grüße,

                    Felix Riesterer.

                    Ich kann mir dies nur schlecht vorstellen, wie sehe die Funktion dann aus?

                    Denn bei meinem Gedankengang gibt es ein Problem: Nämlich die 2. Funktion.

                    Hier der Quelltext zu deinem/meinem Gedankengang:

                    var ListeENG = new Array ("hat", "pet", "let", "get", "wet",  "my");
                    var ListeDE  = new Array ("Hut", "Tier", "lassen", "bekommen", "feucht", "mein" );
                    var a;

                    function vokabeln(sprache){

                    a = Math.floor(ListeDE.length*Math.random())  ;

                    if (sprache=="ENG") {
                      document.Umgebung.textfeld1.value= ListeENG[a] ;
                      document.Umgebung.textfeld2.value= "" ;

                    }
                    else {
                     document.Umgebung.textfeld2.value= ListeDE[a] ;
                     document.Umgebung.textfeld1.value= "" ;

                    }

                    }

                    function pruf()  {

                    Was sollte man nun hier schreiben damit das "a"  gleich deffeniert ist wie in der 1. Function?

                    if ( document.Umgebung.textfeld2.value == ListeDE[a] &&   document.Umgebung.textfeld1.value== ListeENG[a] )
                        {   document.Umgebung.textfeld3.value = "Richtig!!!";}

                    else { document.Umgebung.textfeld3.value = "Falsch!"+ "--->"  +" "+ ListeDE[a]  +" "+ "heisst" +" " +ListeENG[a] ;
                    }

                    }

                    Danke schon mal für deine vorherige Hilfe

                    Mfg
                    Kaymen

                    1. Lieber Kaymen,

                      var ListeENG = new Array ("hat", "pet", "let", "get", "wet",  "my");
                      var ListeDE  = new Array ("Hut", "Tier", "lassen", "bekommen", "feucht", "mein" );
                      var a;

                      function vokabeln(sprache){
                      [...]
                      }

                      function pruf()  {

                      Was sollte man nun hier schreiben damit das "a"  gleich deffeniert ist wie in der 1. Function?
                      [...]
                      }

                      na, da ist a doch längst definiert, eben weil es global ist! Du kannst es sofort nutzen, ohne es erst definieren zu müssen!

                      Liebe Grüße,

                      Felix Riesterer.

                      --
                      ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
                      1. na, da ist a doch längst definiert, eben weil es global ist! Du kannst es sofort nutzen, ohne es erst definieren zu müssen!

                        Liebe Grüße,

                        Felix Riesterer.

                        Dann ist die Funktion also jetzt richtig und sollte das tun, was ich zuvor genannt habe?

                        Mfg
                        Kaymen

                        1. Lieber Kaymen,

                          Dann ist die Funktion also jetzt richtig und sollte das tun, was ich zuvor genannt habe?

                          ja hast Du es denn nicht längst ausprobiert?

                          Liebe Grüße,

                          Felix Riesterer.

                          --
                          ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
                          1. ja hast Du es denn nicht längst ausprobiert?

                            Liebe Grüße,

                            Felix Riesterer.

                            Ja und in der 2. Function also die, die Prüfen soll ist die Varibale a undefiniert, da sie nicht mit der Varibalen "a" in der 1. Funktion verbunden ist.

                            Wie kann ich sie verbinden?

                            Mfg
                            Kaymen

                            1. Mahlzeit Kaymen,

                              Ja und in der 2. Function also die, die Prüfen soll ist die Varibale a undefiniert,

                              wie kommst Du darauf?

                              da sie nicht mit der Varibalen "a" in der 1. Funktion verbunden ist.

                              "Verbunden"? Seit wann muss man Variablen "verbinden"? Und was verstehst Du darunter?

                              Wie kann ich sie verbinden?

                              Gar nicht. Zeige bitte lieber mal den aktuellen Stand Deines Quellcodes - komplett.

                              MfG,
                              EKKi

                              --
                              sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                              1. Mahlzeit Kaymen,

                                »» Ja und in der 2. Function also die, die Prüfen soll ist die Varibale a undefiniert,

                                wie kommst Du darauf?

                                MfG,
                                EKKi

                                Ich habs ausprobiert?

                                Hier der komplette Queltext:

                                <html>
                                <head>

                                <script language="JavaScript">
                                var ListeENG = new Array ("hat", "pet", "let", "get", "wet",  "my");
                                var ListeDE  = new Array ("Hut", "Tier", "lassen", "bekommen", "feucht", "mein" );
                                var a, ;
                                a = Math.floor(ListeDE.length*Math.random())  ;

                                function vokabeln(sprache){

                                if (sprache=="ENG") {
                                  document.Umgebung.textfeld1.value= ListeENG[a] ;
                                  document.Umgebung.textfeld2.value= "" ;

                                }
                                else {
                                 document.Umgebung.textfeld2.value= ListeDE[a] ;
                                 document.Umgebung.textfeld1.value= "" ;

                                }

                                }

                                function pruf()  {

                                if ( document.Umgebung.textfeld2.value == ListeDE[a] &&   document.Umgebung.textfeld1.value== ListeENG[a] )
                                    {   document.Umgebung.textfeld3.value = "Richtig!!!";}

                                else { document.Umgebung.textfeld3.value = "Falsch!"+ "--->"  +" "+ ListeDE[a]  +" "+ "heisst" +" " +ListeENG[a] ;
                                }

                                }
                                </script>
                                </head>
                                 <body>

                                <form name="Umgebung">

                                <input type="TEXT" name="textfeld1"/>
                                <input type="BUTTON" name="button1" value="LOS GEHTS ENG" onclick='vokabeln("ENG")'/>

                                <input type="TEXT" name="textfeld2"/>
                                <input type="BUTTON" name="button2" value="LOS GEHTS DE" onclick='vokabeln("DE")'/>
                                </br>

                                <input type="BUTTON" name="button3" value="PR&uuml;FEN" onclick="pruf()"/>
                                <input type="TEXT" name="textfeld3" size="60"/ >
                                </form>
                                </body>

                                </html>

                                Hierbei ist nun das Problem, dass "a" nur einmal definiert wird.

                                Mfg
                                Kaymen

                                1. Lieber Kaymen,

                                  function vokabeln(sprache){

                                  if (sprache=="ENG") {
                                    document.Umgebung.textfeld1.value= ListeENG[a] ;
                                    document.Umgebung.textfeld2.value= "" ;

                                  }
                                  else {
                                  document.Umgebung.textfeld2.value= ListeDE[a] ;
                                  document.Umgebung.textfeld1.value= "" ;

                                  }

                                  }

                                  wo gibst Du a da einen neuen Wert?

                                  Liebe Grüße,

                                  Felix Riesterer.

                                  --
                                  ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
                                  1. wo gibst Du a da einen neuen Wert?

                                    Liebe Grüße,

                                    Felix Riesterer.

                                    Ich habe es mit dem hier versucht:

                                    function vokabeln(sprache){

                                    a=a+1;

                                    if (sprache=="ENG") {
                                      document.Umgebung.textfeld1.value= ListeENG[a] ;
                                      document.Umgebung.textfeld2.value= "" ;

                                    }
                                    else {
                                     document.Umgebung.textfeld2.value= ListeDE[a] ;
                                     document.Umgebung.textfeld1.value= "" ;

                                    }

                                    }

                                    Aber irgendwann ist ja "a" zu groß und ist undefiniert.
                                    Ich teste meine Queltexte mit Firefox und IE.

                                    Mfg
                                    Kaymen

                                    1. Lieber Kaymen,

                                      | wo gibst Du a da einen neuen Wert?

                                      a=a+1;

                                      Hirn einschalten! Die Lösung ist so einfach und greifbar nahe, dass Du nur noch Deine allgemeine Verwirrung durch logisches Kombinieren ersetzen musst. Alles, was Du brauchst, ist bereits vorhanden!

                                      Liebe Grüße,

                                      Felix Riesterer.

                                      --
                                      ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
                                      1. Lieber Kaymen,

                                        »» | wo gibst Du a da einen neuen Wert?
                                        »»
                                        »» a=a+1;

                                        Hirn einschalten! Die Lösung ist so einfach und greifbar nahe, dass Du nur noch Deine allgemeine Verwirrung durch logisches Kombinieren ersetzen musst. Alles, was Du brauchst, ist bereits vorhanden!

                                        Liebe Grüße,

                                        Felix Riesterer.

                                        Vielleich eine Vorschleife die vor das a=a+1 eingebaut ist?

                                        Entschuldige aber mein Wissenstand von Informatik ist leider sehr weit unten.

                                        Mfg
                                        Kaymen

                                2. Lieber Kaymen,

                                  var a, ;
                                  a = Math.floor(ListeDE.length*Math.random())  ;

                                  das Komma nach "var a" gibt Ärger. Du solltest auf jeden Fall zuerst einen Blick in die Fehlerkonsole Deines Browsers werfen, bevor Du auf Fehlersuche gehst! Und mit welchem Browser testest Du Deine Scripts?

                                  Liebe Grüße,

                                  Felix Riesterer.

                                  --
                                  ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
                                3. Mahlzeit Kaymen,

                                  Ich habs ausprobiert?

                                  ... aber nicht verstanden. Das ist schlecht. Ändere das umgehend - indem Du <http://de.selfhtml.org/javascript/intro.htm@title=die Grundlagen> lernst:

                                  <html>
                                  <head>

                                  Es fehlt die Angabe eines http://de.selfhtml.org/html/allgemein/grundgeruest.htm#dokumenttyp@title=Dokumenttyps.

                                  <script language="JavaScript">

                                  Es fehlt das <http://de.selfhtml.org/html/referenz/attribute.htm#script@title=zwingend erforderliche "type"-Attribut>.

                                  var a, ;

                                  <http://de.selfhtml.org/javascript/sprache/variablen.htm#definieren@title=Was soll das Komma an dieser Stelle?>

                                  a = Math.floor(ListeDE.length*Math.random())  ;

                                  Warum legst Du den Wert der Variablen a hier EINMALIG während des Ladens des Dokuments (denn zu diesem Zeitpunkt wird dieser Teil des Javascript-Codes ausgeführt) fest?

                                  Sollte die Variable nicht lieber JEDESMAL, wenn der Benutzer auf einen der Knöpfe drückt, also beim Aufruf der Funktion ...

                                  function vokabeln(sprache){

                                  ... <http://de.selfhtml.org/javascript/sprache/variablen.htm#aendern@title=mit einem neuen, zufälligen Wert gefüllt werden>?

                                  Jetzt darfst Du genau einmal raten, wo diese Zuweisung also stehen müsste.

                                  Hierbei ist nun das Problem, dass "a" nur einmal definiert wird.

                                  Das ist in keinster Weise ein Problem. Ein Problem ist, dass Du der Variablen nur einmal (und das an einer ziemlich falschen Stelle) einen Wert zuweist.

                                  MfG,
                                  EKKi

                                  --
                                  sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  5. ich gehe in die 9. Klasse eines Gymnasiums und habe als Wahlpflichtfach Informatik,
    dort habe ich nun die folgende Aufgabe gestellt bekommen:
    Erstelle einen Vokabeltrainer,

    sag' Deinem Lehrer bitte, daß Vokabeltrainer nichts taugen. Sie dienen nur dazu, die kleinkarierten Krämerseelen der Lehrer zu befriedigen. Gepaukte Vokabeln kann man nämlich so schön abfragen und dann Punkte zählen. Eine SPRACHE lernt man so nicht. Aber was sollen wir schon von Lehrern erwarten, die von dem Berufsfeld, das sie unterrichten in der Regel nicht die Bohne verstehen - haben sie doch außer Schule in Ihrem Leben meist nichts anderes gesehen.