![]() |
Delphi-Version: 7
Zinsrechnung
Zinsrechnung mal anders: Wie berechne ich denn aus einem gegebenem Startkapital, dem Endkapital und dem Zinssatz die Laufzeit, bis zum gegebenen Endkapital?
Viel wichtiger: Wie codiere ich es? Ich habe mir nun eine Tabelle gemacht, 3 Editfenster und 2 Buttons. Allerdings verwirrt mich schon der einfache Rechenweg: Wie würde ichs denn im Matheunterricht lösen? Sitze sicher nur auf leitung^^ |
AW: Zinsrechnung
Startkapital: x
Endkapital: y Zinssatz: p -- Aufzinsungsfaktor: q = 1+p KapitalNachNJahren(n) := Startkapital * q^n Fallst du Derive hast, kannst du es wie folgt lösen:
Code:
Ansonsten müsstest du selbst umformen und dir n ausrechnen:
solve(Endkapital = Startkapital * q^n, n);
Endkapital/Starkapital = q^n | log log(Endkapital/Startkapital) = n*log(q) log(Endkapital/Startkapital)/log(q) = n |
AW: Zinsrechnung
Zitat:
|
AW: Zinsrechnung
|
AW: Zinsrechnung
Binde die Math Unit ein!
|
AW: Zinsrechnung
Delphi-Quellcode:
Müsste gehen :wink:
Uses Math;
FUNCTION lZeit(gWert,eWert,pSatz:Real): Real; var faktor : Real; BEGIN faktor := (pSatz / 100) + 1; result := (ln(eWert) - ln(gWert)) / ln(faktor); |
AW: Zinsrechnung
Zitat:
|
AW: Zinsrechnung
Um den Logarithmus wirst du nicht drumherum kommen!
Das ist notwendig, um die Potenz "runterzuziehen" und durchs Umformen dieselbe zu bestimmen! |
AW: Zinsrechnung
Zitat:
|
AW: Zinsrechnung
Zitat:
|
AW: Zinsrechnung
Klar darf man sowas im Unterricht anwenden. Wie will man es sonst herausbekommen?
// die Funktion hat jeder normale Taschenrecher... |
AW: Zinsrechnung
Ne, er meint, dass sie es nicht durchgearbeitet haben, was heißen soll, dass es durch ein anderes Verfahren zu lösen gilt.
Man kann es aber nicht ohne den Logarithmus lösen! |
AW: Zinsrechnung
Nun ja. Wir haben es auch auf eine andere art gelernt. Und zwar durch ausprobieren. Man denkt sich z.B. ein Jahr aus setzt es in die Formel ein und guckt wie weit es hinkommt, so probiert man immer weiter bis man auf das ungefähr richtige Jahr kommt. Aber z.B in der Abschlussprüfung in Mathe durfe ich die Formel mit (ln) benutzen, wenn man die angegeben hat und man die Rechnung nachvollziehen kann.
|
AW: Zinsrechnung
Natürlich geht es auch ohne logarithmus.
Einfach iterativ jährlich oder monatlich die Zinsen zum Kapital schlagen und die Schleife abbrechen, wenn das Endkapital erreicht ist. |
AW: Zinsrechnung
Nimm doch eine Schleife und rechne Jahr für Jahr das neue Kapital aus. In dem Jahr (Zähler), in welchem das EndKapital >= dem Zielkapital entspricht, hast Du es erreicht. Der Zähler enthält dann die Anzahl der Jahre. Zwar etwas umständlich, aber ohne Logarithmus...
SCRaT //EDIT: Grrr, idefix war schneller. Wo war der Kasten - Urlaub??? |
AW: Zinsrechnung
So gehts auch aber wieso das Rad neu erfinden?
Mit der Schleife würd ich mir das so vorstellen :
Delphi-Quellcode:
repeat
//zinsen berechnen anfangskapital := anfangskapital+zinsen jahr := jahr+1 until anfangskapital > endkapital |
AW: Zinsrechnung
Zitat:
Die Variable "anfangskapital" würde ich übrigens kapital nennen, weil die enthält ja nicht das Anfangskapital, sondern Kapital + Zinsen zum jeweiligen Zeitpunkt. Aber sonst geht es genau so. |
AW: Zinsrechnung
Zitat:
for Kapital to Endkapital do begin Zinsen:= Kapital * Zinssatz / 100; Kapital:= Kapital + Zinsen; end; // of for Die Ausgabe erfolgt dann in einer Tabelle. Danke. ich glaub ich hab jetzt den richtigen riecher. werds morgen codieren bzw. nochmal nachfragen. edit: Ah. Repeat until funktioniert also genauso. gut. danke :) |
AW: Zinsrechnung
Nun ja, somit approximierst du ja nur den Wert.
Aber wenn das reicht, dann von mir aus. |
AW: Zinsrechnung
Nachdem Zinsen im wirklichen Leben normalerweise nicht sekündlich, sondern immer am Ende einer Periode - Monat oder Jahr - berechnet und dem Kapital zugeschlagen werden, ist eine "exakte" Berechnung obsolet.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz