TRANSformator
Grünschnabel
Moin,
danke, hab das jetzt mal versucht umzusetzen, scheitere aber an der Fallunterscheidung. Wie muss ich die programmieren?
Und wie ist das mit der Genauigkeit? Welcher Wert bietet sich da an? Habe jetzt 0.005 gewählt. Ich muss bis auf zwei Kommastellen genau berechnen.
Vll kannst du mal eben nen Blick auf den Code werfen:
danke, hab das jetzt mal versucht umzusetzen, scheitere aber an der Fallunterscheidung. Wie muss ich die programmieren?
Und wie ist das mit der Genauigkeit? Welcher Wert bietet sich da an? Habe jetzt 0.005 gewählt. Ich muss bis auf zwei Kommastellen genau berechnen.
Vll kannst du mal eben nen Blick auf den Code werfen:
Code:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <ctype.h>
void main (void)
{
float rn, n, r, p, a0, b0, c0, f(a0), f(b0), f(c0);
int i;
i = 1.0;
printf ("\n\t Z i n s s a t z\n");
printf ("\t _______________\n\n\n\n");
printf ("\t Geben Sie bitte folgende Variablen an:\n\n\n");
printf ("\t Rentenendwert in Euro: \t"); scanf ("%f", &rn);
printf ("\t Rate in Euro: \t\t\t"); scanf ("%f", &r);
printf ("\t Laufzeit in Jahren: \t\t"); scanf ("%f", &n);
a0 = 0;
b0 = pow ( rn / (r * n),1 / n);
b0 = (b0 * 2) - 1;
f(a0) = r * (pow (a0,n) - 1) - rn;
f(b0) = r * (pow (b0,n) - 1) - rn;
c0 = ((a0 * f(b0) - b0 * f(a0)) / (f(b0) - f(a0));
f(c0) = r * (pow (c0,n) - 1) - rn;
while ( f(c0) > 0.005 ) {
// Ermittle a und b durch Ersetzen mit c (Fallunterscheidung notwendig)
c0 = ((a0 * f(b0) - b0 * f(a0)) / (f(b0) - f(a0));
f(c0) = r * (pow (c0,n) - 1) - rn;
}
p = (c0 - 1.0) * 100.0;
printf ("\n\n\t Iterationsschritte: \t\t\t%d", i);
printf ("\n\t Der Zinssatz betraegt: \t"); printf ("%10.2f", p); printf (" Prozent\n\n\n");
}