C# :: Aufgabe #215
3 Lösungen

Die beste Darlehensart berechnen
Anfänger - C#
von Exception
- 04.06.2018 um 17:06 Uhr
Schreibe ein Programm welches folgende Parameter übergeben bekommt:
- Nominalzins p.a.
- Laufzeit (Jahre)
- Darlehen (€)
Berechne dann anhand dieser Parameter welche der drei folgenden Darlehensarten am besten für den Kreditnehmer ist:
- Fälligkeitsdarlehen
- Ratendarlehen
- Annuitätendarlehen
... und gib die Ergebnisse aus, auch inwiefern sie sich untereinander unterscheiden - jeder Cent zählt! ;)
- Nominalzins p.a.
- Laufzeit (Jahre)
- Darlehen (€)
Berechne dann anhand dieser Parameter welche der drei folgenden Darlehensarten am besten für den Kreditnehmer ist:
- Fälligkeitsdarlehen
- Ratendarlehen
- Annuitätendarlehen
... und gib die Ergebnisse aus, auch inwiefern sie sich untereinander unterscheiden - jeder Cent zählt! ;)
Lösungen:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Darlehen { class Program { static void Main(string[] args) { double betrag1, betrag2, betrag3; Console.WriteLine("Bitte Nominalzins eingeben:"); double zins; while (!(double.TryParse(Console.ReadLine(), out zins))) { Console.WriteLine("Eingabe ungültig! Bitte wiederholen"); } Console.WriteLine("Bitte Laufzeit in ganzen Jahren eingeben"); int jahre; while (!(int.TryParse(Console.ReadLine(), out jahre))) { Console.WriteLine("Eingabe ungültig! Bitte wiederholen"); } Console.WriteLine("Bitte darlehen in Euro eingeben!"); double betrag; while (!(double.TryParse(Console.ReadLine(), out betrag))) { Console.WriteLine("Eingabe ungültig! Bitte wiederholen"); } betrag1 = faelligkeitsdarlehen(zins, jahre, betrag); betrag2 = ratendarlehen(zins, jahre, betrag); betrag3 = annuitaetendarlehen(zins, jahre, betrag); vergleiche(betrag1, betrag2, betrag3); Console.ReadLine(); } static double faelligkeitsdarlehen(double zinsen, int zeit, double darlehen) { double endbetrag; endbetrag = (darlehen * (zinsen / 100) * zeit) + darlehen; return endbetrag; } static double ratendarlehen(double zinsen, int zeit, double darlehen) { double zins = 0; double tilgung = darlehen / zeit; double endbetrag = darlehen; for (int i = 0; i < zeit; i++) { zins += darlehen * (zinsen / 100); darlehen -= tilgung; } endbetrag += zins; return endbetrag; } static double annuitaetendarlehen(double zinsen, int zeit, double darlehen) { double annuitaet = darlehen; double temp = Math.Pow(1 + (zinsen / 100), zeit); double KWF = (temp * (zinsen / 100)) / (temp - 1); annuitaet *= KWF; annuitaet *= zeit; return annuitaet; } static void vergleiche(double x1, double x2, double x3) { double[] array = new double[3] { x1, x2, x3 }; Console.WriteLine("Fälligkeitsdarlehen:\t{0:f2}", x1); Console.WriteLine("Ratendarlehen:\t\t{0:f2}", x2); Console.WriteLine("Annuitätendarlehen:\t{0:f2}", x3); Console.WriteLine(""); Console.WriteLine("Dér günstigste Endbetrag ist {0:f2}", array.Min()); } } }

using System; using static System.Console; namespace aufgabe_215 { class Program { static void Main() { string NL = Environment.NewLine; bool bo_ready = false; do { double Nominalzins = 0, Laufzeit = 0, Darlehen = 0; bool bo_input_ok = false; while (!bo_input_ok) { Write( "Gib mir Darlehenssumme (EURO), Zinssatz (%) und Laufzeit (Jahre)" + NL + "getrennt durch Leerzeichen (z. B.: 5000 2,5 6): "); string[] input = ReadLine().Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries); bo_input_ok = input.Length == 3 && double.TryParse(input[0], out Darlehen) && double.TryParse(input[1], out Nominalzins) && double.TryParse(input[2], out Laufzeit); } Loan darlehen = new Loan(Nominalzins, Laufzeit, Darlehen); WriteLine( NL + "GESAMTZINSEN" + NL + "Fälligkeitsdarlehen: " + $"{darlehen.Zinsbelastung[0].ToString("n2"), 10}" + " EURO" + NL + "Tilgungsdarlehen : " + $"{darlehen.Zinsbelastung[1].ToString("n2"), 10}" + " EURO" + NL + "Annuitätendarlehen : " + $"{darlehen.Zinsbelastung[2].ToString("n2"), 10}" + " EURO" ); WriteLine("exit ESC"); ConsoleKeyInfo ki = ReadKey(true); bo_ready = ki.Key == ConsoleKey.Escape; } while (!bo_ready); } } public class Loan { private double Nominalzins, //p. a. Laufzeit, //Jahre Darlehen; //€ public double[] Zinsbelastung { get; private set; } public Loan( double Nominalzins, double Laufzeit, double Darlehen) { this.Nominalzins = Nominalzins / 100.0; this.Laufzeit = Laufzeit; this.Darlehen = Darlehen; this.Zinsbelastung = new double[3]; calculate(); } private void calculate() { Zinsbelastung[0] = Laufzeit * Darlehen * Nominalzins; //Fälligkeitsdarlehen double zinsbase = Darlehen, zinsen = 0.0, tilgung = Darlehen / Laufzeit; for(var i = 0; i < Laufzeit; i++) { zinsen += zinsbase * Nominalzins; zinsbase -= tilgung; } Zinsbelastung[1] = zinsen; //Tilgungsdarlehen double temp = Math.Pow(1.0 + Nominalzins, Laufzeit); double annuitaet = Darlehen * temp * Nominalzins / (temp - 1.0); Zinsbelastung[2] = Laufzeit * annuitaet - Darlehen; //Annuitätendarlehen } } } /* Schreibe ein Programm welches folgende Parameter übergeben bekommt: - Nominalzins p.a. - Laufzeit (Jahre) - Darlehen (€) Berechne dann anhand dieser Parameter welche der drei folgenden Darlehensarten am besten für den Kreditnehmer ist: - Fälligkeitsdarlehen - Ratendarlehen - Annuitätendarlehen ... und gib die Ergebnisse aus, auch inwiefern sie sich untereinander unterscheiden - jeder Cent zählt! ;) ________________________________________________________ Fälligkeitsdarlehen Merkmal: Tilgung der gesamten Summe am Laufzeitende Tilgungsdarlehen Merkmal: konstante Tilgungsraten während der Laufzeit Annuitätendarlehen Merkmal: konstante Rate während der Laufzeit */

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Darlehen { class Program { static void Main(string[] args) { Console.WriteLine("Dralehen in Euro: "); double darlehen = int.Parse(Console.ReadLine()); Console.WriteLine("Zins: "); double zins = double.Parse(Console.ReadLine()); Console.WriteLine("Laufzeit in Jahren: "); int laufzeit = int.Parse(Console.ReadLine()); double fällig = FähhligkeitsDarlehen(zins, laufzeit, darlehen); Console.WriteLine("Gesamt:" + fällig + " Euro\n"); double raten = RatenDarlehen(zins, laufzeit, darlehen); Console.WriteLine("Gesamt " + raten + " Euro"); double annu = Annuitätsdarlehen(zins, laufzeit, darlehen); Console.WriteLine("Gesamt " + annu + " Euro\n"); if(fällig<raten && fällig < annu) { Console.WriteLine("Das Fälligkeitsdarlehen ist mit Gesamtkosten von " + fällig + " Euro das güstigste für sie."); } else if(raten<annu&&raten<fällig) { Console.WriteLine("Das Ratendarlehen ist mit Gesamtkosten von " + raten + " Euro das güstigste für sie."); } else if(annu<raten&&annu<fällig) { Console.WriteLine("Das Annuitätsdarlehen ist mit Gesamtkosten von " + annu + " Euro das güstigste für sie."); } Console.ReadKey(); } private static double FähhligkeitsDarlehen(double zins, int laufzeit, double darlehen) { Console.WriteLine("\nFählligkeistdarlehen: "); double summe = 0; int counter = 0; while(counter != laufzeit) { summe = summe + (darlehen * zins / 100); counter++; Console.WriteLine(counter+". Jahr Zins: "+(darlehen*zins/100)+" Euro"); } Console.WriteLine("Tilgung im 5. Jahr: " + darlehen); summe = summe + darlehen; return summe; } private static double RatenDarlehen(double zins, int laufzeit, double darlehen) { Console.WriteLine("\nRatendarlehen: "); double summe = 0; int counter = 0; double tilgung = darlehen / laufzeit; while (counter != laufzeit) { summe += (darlehen * zins / 100); summe += tilgung; counter++; Console.WriteLine(counter + ". Jahr Zins: " + darlehen * zins / 100 + " Euro, Tilgung " + tilgung+" Euro"); darlehen = darlehen - tilgung; } return summe; } private static double Annuitätsdarlehen(double zins,int laufzeit, double darlehen) { Console.WriteLine("\nAnnuitätsdarlehen: "); double summe = 0; double zinssatz = zins / 100+1; double xzins = zinssatz; for (int i = 2; i <= laufzeit; i++) { xzins = xzins * zinssatz; } double rate = darlehen*(((xzins)*zins)/((xzins)-1)); rate = rate / 100; summe = rate*laufzeit; Console.WriteLine("Die Annuität dieses Kredites liegt bei " + rate+" Euro"); return summe; } } }