C# :: Aufgabe #215

3 Lösungen Lösungen öffentlich

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! ;)

Lösungen:

vote_ok
von syneex (2670 Punkte) - 26.06.2018 um 10:00 Uhr
Quellcode ausblenden C#-Code
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());
        }
    }
}
vote_ok
von hollst (13980 Punkte) - 16.08.2018 um 10:30 Uhr
Quellcode ausblenden C#-Code
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
*/
vote_ok
von t.wi (660 Punkte) - 21.06.2019 um 13:59 Uhr
Quellcode ausblenden C#-Code
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;
        }
    }
}
2101677

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.