Rechnen
Muhammet Caglak
- javascript
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>
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
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
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
<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>