Muhammet Caglak: Rechnen

Hallo allerseits

Ich brauche Hilfeee. Komme leider nicht mehr, denke aber, dass ich irgendwo einen Gedankenfehler mache. Nur aber wo?

Für eine Projektarbeit muss ich einen Rechner, schlussendlich einen Annuitätenrechner entwickeln.
Schwierigkeit nur ein Zeile für Ein- und Ausgabe, wie bei einem HP-Finanztaschenrechner. Im unteren Code versuche ich zwei variablen zu definieren und diese dann zu multiplizieren. Aber es funzt leider nicht.

Kann mir jemand helfen?

Gruss Muhi

<html>
<head>
<title>Ein</title>
<SCRIPT LANGUAGE="JavaScript">
<!--
/******************************************************************
   Funktion zum variable einlesen
   und anschliessend berechnen
   Author: Muhammet Caglak
   Date Created: 25.04.2002
*******************************************************************/
function calc()
 {
document.myform.einaus.value= v2*v1;
 }
function erstevariable()
 {
var v1=document.myform.einaus.value;
return v1
  }
function zweitevariable()
 {
var v2=document.myform.einaus.value;
return v2
 }
//-->
</SCRIPT>

</head>
<body>
<form name="myform">
<p><input type="text" name="einaus" size="20" id="einaus">
<label for="einaus">Ein-und
Ausgabe</label></p>
<table border="1" width="100">
  <tr>
    <td><input type="button" value="erstevariable" name="v2"></td>
    <td><input type="button" value="zweitevariable" name="v1"></td>
    <td><input type="button" value="rechne" name="calc"></td>
  </tr>
</table>
</form>

</body>

</html>

  1. Hallo Muhi

    Ich brauche Hilfeee. Komme leider nicht mehr, denke aber, dass ich irgendwo einen Gedankenfehler mache. Nur aber wo?

    Ich versuche es mal zu erklären.

    function calc()
      {
     /* Dies ist deine Berechnungsfunktion. Sie greift auf die globalen Variablen v2 und v1 zu.*/
     document.myform.einaus.value= v2*v1;
      }

    function erstevariable()
      {
      /*diese Funktion liest den Inhalt des Formualelementes in eine   lokale Variable v1 und gibt auch diesen Wert zurück*/

    var v1=document.myform.einaus.value;
     return v1
       }
     function zweitevariable()
      {
     /*diese Funktion liest den Inhalt des Formualelementes in eine   lokale Variable v2 und gibt auch diesen Wert zurück*/

    var v2=document.myform.einaus.value;
     return v2
      }

    Wenn du meine Kommentare aufmerksam liest, so siehst du, dass du in der Funktion calc()auf globale Variablen zurückgreifst.

    In den beiden anderen Funktionen erzeugst du jedoch nur lokale Variablen. Globale Variablen gelten immer im gesamten Dokument. Lokale Variablen nur innerhalb der Funktion.

    Eine lokale Variable innerhalb einer Funktion erzeugt man durch das Schlüsselwort var. Fehlt dieses Schlüsselwort entsteht eine globale Variable.

    Rückgabewerte einer Funktion können weiterverarbeitet werden. Benötigt man keine Weiterverarbeitung, dann braucht auch kein Wert zurückgegeben werden.

    <input type="button" value="erstevariable" name="v2">
    <input type="button" value="zweitevariable" name="v1">

    Diese Button sollen bewirken, dass die Variablen v1 und v2 gesetzt werden. Du versuchst dies zu lösen, indem du den Value des Buttons den Namen der Funktion gibst und den Button mit den gesuchten Variablennamen belegst.

    Hier liegt ein grundsätzlicher Denkfehler vor. Buttons sind HTML und kein JavaScript. Sie können auch keine Berechnungswerte speichern (zu mindest nicht ohne einigen Aufwand).

    Du möchstest erreichen, dass ein Klick auf den jeweiligen Button die jeweilige Variable setzt. Das erreichst du, indem du den Klick auf den Button überwachst und wenn eine solche Aktion eintritt, deine Funktionen aufrufst.

    Zur Überwachung kannst du den Eventhandler onclick verwenden. http://selfhtml.teamone.de/javascript/sprache/eventhandler.htm#onclick

    Ändere auch den Namen der Button, damit du klar zwischen den gesetzten (unsichtbaren) Variablen, welche du für die Berechnung benötigst und der Buttonaufgabe unterscheiden kannst.

    Ich habe bewußt keine komplette Lösung gepostet. Ich denke, es hilft dir weiter, wenn du die Materie auch verstehst. Solltest du weitere Fragen (die zu deinem Projekt gehören) haben, dann frage ruhig in diesem Thread weiter.

    Viele Grüße

    Antje

    1. Hallo Antje

      Vielen Dank für deine Bemühungen.

      Den zweiten Teil habe ich kapiert, mein Fehler, habe den Eventhandler onclick vergessen.:-(

      Was ich noch nicht ganz verstehe sind die lokalen und globalen Variablen in Verbindung mit Funktionen.

      Hast du einen guten Link?

      Gruss Muhi

      1. Hallo Muhi

        Vielen Dank für deine Bemühungen.

        gern geschehen, leute die lernen und verstehen wollen helfe ich ausgesprochen gern

        Den zweiten Teil habe ich kapiert, mein Fehler, habe den Eventhandler onclick vergessen.:-(

        Was ich noch nicht ganz verstehe sind die lokalen und globalen Variablen in Verbindung mit Funktionen.

        Hast du einen guten Link?

        leider nein, ich stelle es mal an einem anderen Beispiel dar:

        <script type="text/javascript">
        <!--

        var x=12;

        function gebe_globale_Variable()
        {
          alert(x);

        }

        function mache_lokale_Variable()
        {
         var x=50;
         alert(x);

        }

        function mache_globale_Variable()
        {
          x=87;
          alert(x)

        }
        //-->
        </script>
        <a href="javascript:gebe_globale_Variable()">Globale Variable ausgeben</a>

        <a href="javascript:mache_lokale_Variable()">Lokale Variable erzeugen</a>

        <a href="javascript:mache_globale_Variable()">Globale Variable erzeugen</a>

        Klicke zuerst auf den Link globale Variable ausgeben
        Klicke dann auf den Link lokale Variable erzeugen
        Klicke zuerst auf den Link globale Variable ausgeben
        Klicke dann auf den Link globale Variable erzeugen
        Klicke zuerst auf den Link globale Variable ausgeben
        Klicke dann auf den Link lokale Variable erzeugen
        Klicke zuerst auf den Link globale Variable ausgeben

        Du wirst sehen, was da passiert.

        Viele Grüße

        Antje

        1. <html>
          <head>
          <title>Ein</title>
          <SCRIPT LANGUAGE="JavaScript">
          <!--
          /******************************************************************
             Funktion zum variable einlesen
             und anschliessend berechnen
             Author: Muhammet Caglak
             Date Created: 25.04.2002
          *******************************************************************/

          function rechne()
           {

          v1 = document.myform.tf1.value;
          v2 = document.myform.tf2.value;

          document.myform.einaus.value= v1*v2;

          }

          //-->
          </SCRIPT>

          </head>
          <body>
          <form name="myform">
          <input type="text" name="tf1" size="20" id="tf1"> *
          <input type="text" name="tf2" size="20" id="tf2"> =
          <input type="text" name="einaus" size="20" id="einaus">
          <table border="1" width="100">
            <tr>
               <td><input type="button" value="RECHNE" name="calc" onClick="javascript:rechne()"></td>
            </tr>
          </table>
          </form>

          </body>

          </html>