namespace Feladat09_MegtakaritasiTerv { internal class Program { static void Main(string[] args) { const int HONAPOK = 120; // 10 év Console.WriteLine("=== Megtakarítási terv – 10 éves előrejelzés ==="); Console.Write("Havi befizetés (Ft): "); double haviBefizetes = double.Parse(Console.ReadLine()); Console.Write("Éves kamat (%): "); double evesKamat = double.Parse(Console.ReadLine()); Console.Write("Célösszeg (Ft): "); double celosszeg = double.Parse(Console.ReadLine()); double haviKamatlab = HaviKamatlab(evesKamat); double egyenleg = 0; bool elerte = false; int celHonap = 0; Console.WriteLine(); Console.WriteLine("Év vége szerinti egyenleg:"); for (int honap = 1; honap <= HONAPOK; honap++) { egyenleg = UjEgyenleg(egyenleg, haviKamatlab, haviBefizetes); if (!elerte && egyenleg >= celosszeg) { elerte = true; celHonap = honap; } if (honap % 12 == 0) { Console.WriteLine($"{honap / 12}. év: {egyenleg:F2} Ft"); } } double befizetett = haviBefizetes * HONAPOK; double kamatnyereseg = egyenleg - befizetett; Console.WriteLine(); Console.WriteLine("--- Összegzés ---"); Console.WriteLine($"Összesen befizetett összeg: {befizetett:F2} Ft"); Console.WriteLine($"Záró egyenleg: {egyenleg:F2} Ft"); Console.WriteLine($"Ebből kamat: {kamatnyereseg:F2} Ft"); if (elerte) { int ev = celHonap / 12; int honap = celHonap % 12; Console.WriteLine($"A célösszeget a(z) {celHonap}. hónapban éred el, vagyis {ev} év {honap} hónap alatt."); } else { double hianyzik = celosszeg - egyenleg; Console.WriteLine($"A célösszeget 10 év alatt nem éred el, {hianyzik:F2} Ft hiányzik hozzá."); } } // Az éves kamatláb tizenketted része, tizedes törtként (6% -> 0,005). static double HaviKamatlab(double evesKamat) { return evesKamat / 12.0 / 100.0; } // Egy hónap lépése: előbb a meglévő egyenlegre jóváírjuk a kamatot, // és csak utána adjuk hozzá az aktuális havi befizetést. static double UjEgyenleg(double egyenleg, double haviKamatlab, double haviBefizetes) { return egyenleg + egyenleg * haviKamatlab + haviBefizetes; } } }