[GastForen Programmierung/Entwicklung JavaScript bin Anfänger und hab n Problem

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

bin Anfänger und hab n Problem

Anonym
Beiträge gesamt: 22827

13. Nov 2004, 14:19
Beitrag # 1 von 17
Bewertung:
(4262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Bin am verzweifeln, ich muss bei diesem Beispiel das Kapital ausrechnen und da gibt es schon 2 Probleme

a) er setzt das (Komma) falsch
b) ich bekam eine Aufgabe gestellt die ich nicht hinbekomm, ich muss ausrechnen wie lange es braucht bis es sich verdoppelt

könn ihr mir da weiterhelfen, wie gesagt ich bin Anfänger und könntet ihr es so einfach wie möglich halten

Danke

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.Stil5 {font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold; }
-->
</style>
</head>

<body>

<script type="text/javascript">
<!--
function berechnen() {
var Kapital = document.form1.frm_kapital.value;
var Prozent = document.form1.frm_zinssatz.value;
var Jahre = document.form1.frm_laufzeit.value;
var Zinsen, Kest;
document.write("<table>");
for(var i = 1; i <= Jahre; i++)
{
Zinsen = Kapital * Prozent / 100;
Kest = Zinsen * 0.25;
Kapital = Kapital + Zinsen - Kest;
document.write("<tr><td><b>" + i + ". Jahr</b></td><td>Kapital: " + Kapital + "</td><td>Zinsen: " + Zinsen + "</td><td>Kest: " + Kest + "</td></tr>");
}
document.write("</table>");
}
// -->
</script>

<form name="form1" method="post" action="">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="14%"><span class="Stil5">Startkapital</span></td>
<td width="86%"><input name="frm_kapital" type="text" id="frm_kapital"></td>
</tr>
<tr>
<td><span class="Stil5">Zinssatz</span></td>
<td><input name="frm_zinssatz" type="text" id="frm_zinssatz"></td>
</tr>
<tr>
<td><span class="Stil5">Laufzeit</span></td>
<td><input name="frm_laufzeit" type="text" id="frm_laufzeit"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input name="btn_rechnen" type="button" id="btn_rechnen" value="Berechnen!" onClick="berechnen()"></td>
</tr>
</table>
</form>


</body>
</html>
X

bin Anfänger und hab n Problem

Intermedia
Beiträge gesamt: 1287

13. Nov 2004, 14:29
Beitrag # 2 von 17
Beitrag ID: #124218
Bewertung:
(4262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

dein Problem ist folgendes:

1. du kannst mit einem Komma nicht rechnen, die Zahl muß mit einem Punkt getrennt sein.
Das kannst du so machen z.B.: Prozent = Prozent.replace(',','.');

2. wenn du ein Formularfeld mit einer Zahl auslesen willst und die dann noch addieren willst wird die "Zahl" als String behandelt und damit wird das Ergebnis als Zeichenkette verarbeitet.
Um das zu umgehen schlage ich folgendes vor, jeden Wert aus den Feldern in eine Zahl umwandeln z.B.: Prozent = Number(Prozent);

Ich hoffe es hilft weiter.

Gruß Sven


als Antwort auf: [#124216]

bin Anfänger und hab n Problem

Anonym
Beiträge gesamt: 22827

13. Nov 2004, 14:52
Beitrag # 3 von 17
Beitrag ID: #124221
Bewertung:
(4262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi
danke für deine antwort nur leider bring ichs nicht zusammen
der erste punkt funktioniert auch gar nicht
wie gesagt in solchen dingen bin ich nicht besonders gut


als Antwort auf: [#124216]

bin Anfänger und hab n Problem

Anonym
Beiträge gesamt: 22827

13. Nov 2004, 15:35
Beitrag # 4 von 17
Beitrag ID: #124230
Bewertung:
(4262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
könntet ihr mir bitte die Befehle aufschreiben
wenn es nicht zu viele umstände macht
danke


als Antwort auf: [#124216]

bin Anfänger und hab n Problem

Intermedia
Beiträge gesamt: 1287

13. Nov 2004, 15:43
Beitrag # 5 von 17
Beitrag ID: #124233
Bewertung:
(4262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
ich empfehle als Nachschlagewerk mal http://selfhtml.teamone.de/

Hier ist die Funktion Step by Step:

function berechnen() {
var Kapital = document.form1.frm_kapital.value;
// Komma in Punkt umwandlen fürs rechnen
Kapital = Kapital.replace(',','.');
// Variable in eine Zahl umwandeln
Kapital = Number(Kapital);
var Prozent = document.form1.frm_zinssatz.value;
Prozent = Prozent.replace(',','.');
Prozent = Number(Prozent);
var Jahre = document.form1.frm_laufzeit.value;
Jahre = Jahre.replace(',','.');
Jahre = Number(Jahre);
var Zinsen, Kest;
document.write("<table>");
for(var i = 1; i <= Jahre; i++)
{
Zinsen = Kapital * Prozent / 100;
Kest = Zinsen * 0.25;
Kapital = Kapital + Zinsen - Kest;
document.write("<tr><td><b>" + i + ". Jahr</b></td><td>Kapital: " + Kapital + "</td><td>Zinsen: " + Zinsen + "</td><td>Kest: " + Kest + "</td></tr>");
}
document.write("</table>");
}

Es geht natürlich auch eleganter.;-)

Gruß Sven


als Antwort auf: [#124216]

bin Anfänger und hab n Problem

Anonym
Beiträge gesamt: 22827

13. Nov 2004, 15:57
Beitrag # 6 von 17
Beitrag ID: #124240
Bewertung:
(4262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
passt danke Sven hat perfekt funktioniert


als Antwort auf: [#124216]

bin Anfänger und hab n Problem

Anonym
Beiträge gesamt: 22827

13. Nov 2004, 16:05
Beitrag # 7 von 17
Beitrag ID: #124242
Bewertung:
(4262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Du bist der Dude
ich hätte noch eine weitere Frage:

ich muss ein weiteres Feld machen und herausfinden wie lange es braucht bis sich das Kapital verdoppelt

wie stell ich das am besten an??


als Antwort auf: [#124216]

bin Anfänger und hab n Problem

Intermedia
Beiträge gesamt: 1287

13. Nov 2004, 17:24
Beitrag # 8 von 17
Beitrag ID: #124256
Bewertung:
(4262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

mein Wissen in der Finanzmathematik ist sehr begrenzt. Kurz gesagt,
ich hab keine Ahnung wie man sowas berechnet.

Mit einer Formel ist das dann schon lösbar.

Mit dem was du jetzt hast, deiner Formel für die Berechnung und
ein wenig lesen solltest du es hinbekommen.

Gruß Sven


als Antwort auf: [#124216]

bin Anfänger und hab n Problem

Markus Walker
Beiträge gesamt: 494

14. Nov 2004, 12:05
Beitrag # 9 von 17
Beitrag ID: #124316
Bewertung:
(4262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Anonymus

>ich muss ein weiteres Feld machen und herausfinden wie lange es braucht bis sich das Kapital verdoppelt
Um diese Fragen zu beantworten muss ein Griff zu einer Formel-Sammlung getan werden. Das Stichwort heisst Zinseszins und führt zu folgender Formel:

G_n = G_0 * q POW n

wobei q = 1 + p / 100

Da hier leider kein hoch- bzw. tiefstellen möglich ist, hier die Erklärungen:
_n _0 ist als Index zu lesen
q POW n ist als «q hoch n» zu lesen

Dabei gilt:
G_n = Guthaben/Kapital nach n Zinsperioden
G_0 = Guthaben/Kapital zu Beginn
q = Zinsfaktor
n = Anzahl Zinsperioden (z.B. Anzahl Jahre bei jährlicher Verzinsung)
p = Zinssatz in Prozent


Also muss obige Formel nach n aufgelöst werden, da gemäss Aufgabenstellung G_n / G_0 = 2 ist (Guthaben soll sich verdoppeln).

q POW n = G_n / G_0

daraus folgt:
n = log_q G_n / G_0

Dabei gilt:
log_q G_n / G_0 = Logarithmus Basis q und Numerus G_n / G_0


Nun muss das Ganze noch in JavaScript umgesetzt werden. Da JavaScript im Math Objekt bloss den natürliche Logarithmus (Basis e) kennt, muss die Formelsammlung nochmals bemüht werden, diesmal mit dem Stichwort Logarithmensysteme. Dort findet man:
log_a x = log_b x / log_b a

Deshalb gilt:
log_q G_n / G_0 = (ln g_n / G_0) / ln q

Dabi gilt:
ln q = natürlicher Logarithmus aus q


Daraus folgt folgende allgemeine Formel in JavaScript:

n = Math.log(G_n / G_0) / Math.log(q);

Da wie oben schon erwähnt G_n / G_0 == 2 kann diese Formel für die vorliegende Aufgabe vereinfacht werden:
n = Math.log(2) / Math.log(q);

Wenn nun q auch noch aufgelösst wird, entsteht folgende Formel:
n = Math.log(2) / Math.log(1 + p / 100);


HTH


als Antwort auf: [#124216]

bin Anfänger und hab n Problem

Anonym
Beiträge gesamt: 22827

15. Nov 2004, 14:09
Beitrag # 10 von 17
Beitrag ID: #124605
Bewertung:
(4262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
danke für deine sehr umfangreiche Ausführung ich bin es durchgegangen aber mit keinem Ergebnis
hab heute von einem Freund erfahren das man das leicht mit einer While - Schleife lösen kann
ist das möglich???


als Antwort auf: [#124216]

bin Anfänger und hab n Problem

Anonym
Beiträge gesamt: 22827

15. Nov 2004, 17:59
Beitrag # 11 von 17
Beitrag ID: #124690
Bewertung:
(4263 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Brauche Hilfe bitte


als Antwort auf: [#124216]

bin Anfänger und hab n Problem

Anonym
Beiträge gesamt: 22827

15. Nov 2004, 18:00
Beitrag # 12 von 17
Beitrag ID: #124691
Bewertung:
(4263 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
brauche unbedingt hilfe


als Antwort auf: [#124216]

bin Anfänger und hab n Problem

Markus Walker
Beiträge gesamt: 494

15. Nov 2004, 21:33
Beitrag # 13 von 17
Beitrag ID: #124741
Bewertung:
(4263 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieber Anonymus

Hast Du schon einmal einen Blick zum Titel dieses Forums geworfen? Genau, oben rechts, da steht «Hilf Dir selbst»! Und dies ist das Motto hier. Also nicht drängeln und alle paar Minuten eine neue Anfrage starten und neue Threads eröffnen (habe ich wieder gelöscht), bevor nicht die zur Verfügung gestellten Tipps probiert wurden.

Zum Problem:
Falls Deine Aufgabenstellung war eine while-Schlaufe zu porgrammiren, sollte dies schon mitgeteilt werden. Natürlich kann man für das vorgestellte Problem eine while-Schlaufe benutzen, dies ist aber eher «EDV zu Fuss». Aussehen täte dies etwas so, wobei nur ganze Jahre berücksichtigt werden:

G_0 = Guthaben/Kapital zu Beginn;
p = Zinssatz in Prozent;

function verdoppelungszeit (G_0, p) {

var G_n = G_0; //Initialisierung von G_n
var n = 0; //Anzahl Zinsperioden (z.B. Anzahl Jahre bei jährlicher Verzinsung)

while (G_n / G_0 < 2) {
G_n += G_n * p / 100;
n++;
} //while(G_n / G_0 < 2)

return(n); // n == Anzahl Jahre bis G_n / G_0 >= 2

} //function verdoppelungszeit


HTH


als Antwort auf: [#124216]

bin Anfänger und hab n Problem

Anonym
Beiträge gesamt: 22827

14. Feb 2005, 08:04
Beitrag # 14 von 17
Beitrag ID: #144524
Bewertung:
(4263 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Kann mir jemand sagen, was JavaScript überhaupt ist?
Ich soll das lernen, habe aber nicht die geringste Ahnung davon! Bräuchte so ein paar Grundlagen, wofür das überhaupt gut ist! Danke


als Antwort auf: [#124216]

bin Anfänger und hab n Problem

Markus Walker
Beiträge gesamt: 494

14. Feb 2005, 18:26
Beitrag # 15 von 17
Beitrag ID: #144726
Bewertung:
(4263 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Anonymus

Für neue Fragen gibt's einen Button «Neues Thema».

Aber bevor Du weiter frägst, schau Dich mal hier um:
http://de.selfhtml.org/javascript/index.htm

Viel Spass beim lesen!


als Antwort auf: [#124216]
X