Mini-Projekt: Zinsrechner
Dauer: 45-60 Minuten
while-Schleifen für Jahr-für-Jahr-Berechnungen- Arithmetische Operatoren für Zinsberechnungen
- Funktionen zur Strukturierung
- Formatierte Ausgabe mit
toFixed()
Ziel: Praktische Anwendung von Schleifen für Finanzberechnungen
In diesem Mini-Projekt entwickeln wir einen Zinsrechner, der zeigt, wie sich Ersparnisse über die Jahre entwickeln.
Wichtig: Zur Festigung der Konzepte sollte noch kein Coding-Agent (z.B. Copilot Agent Mode, Claude Code) eingesetzt werden. Ein KI-Chat (z.B. Copilot Chat, ChatGPT) kann bei Bedarf für gezielte Fragen genutzt werden — aber nicht für komplette Lösungen.
Wir arbeiten in einer Datei (zinsrechner.js) und erweitern
diese schrittweise. Wer mit Git arbeitet, kann nach jeder
Aufgabe einen Commit erstellen.
Aufgabe 1: Einfache Zinsberechnung (Einstieg)
Schreibe ein Programm, das die Zinsen für ein Jahr berechnet:
- Startkapital vom Benutzer einlesen
- Zinssatz vom Benutzer einlesen (z.B. 3 für 3%)
- Zinsen und neues Kapital berechnen und ausgeben
Beispielausgabe:
Startkapital: 1000
Zinssatz (%): 3
---
Zinsen: 30.00
Neues Kapital: 1030.00Aufgabe 2: Mehrere Jahre (Einstieg)
Erweitere das Programm um die Anzahl der Jahre:
- Zusätzlich die Anzahl der Jahre einlesen
- Das Endkapital nach allen Jahren berechnen (mit Zinseszins)
- Das Endkapital ausgeben
Beispielausgabe:
Startkapital: 1000
Zinssatz (%): 5
Laufzeit (Jahre): 10
---
Endkapital nach 10 Jahren: 1628.89Aufgabe 3: Jahr-für-Jahr-Übersicht (Übung)
Erweitere das Programm so, dass für jedes Jahr der aktuelle Kontostand angezeigt wird:
Beispielausgabe:
Hinweis: „Jahr 0“ zeigt das Startkapital vor dem ersten Zinsjahr.
Startkapital: 1000
Zinssatz (%): 5
Laufzeit (Jahre): 5
---
Jahr 0: 1000.00
Jahr 1: 1050.00
Jahr 2: 1102.50
Jahr 3: 1157.63
Jahr 4: 1215.51
Jahr 5: 1276.28
---
Endkapital: 1276.28
Gesamte Zinsen: 276.28Aufgabe 4: Monatliche Einzahlung (Übung)
Erweitere den Sparplan um eine monatliche Einzahlung:
- Zusätzlich die monatliche Sparrate einlesen
- Am Ende jedes Jahres werden 12 Monatsraten hinzugefügt
- Dann werden die Zinsen auf das neue Kapital berechnet
Beispielausgabe:
Startkapital: 1000
Monatliche Sparrate: 100
Zinssatz (%): 3
Laufzeit (Jahre): 5
---
Jahr 0: 1000.00
Jahr 1: 2266.00
Jahr 2: 3569.98
Jahr 3: 4913.08
Jahr 4: 6296.47
Jahr 5: 7721.36
---
Endkapital: 7721.36
Eingezahlt: 7000.00 (1000 + 5 x 1200)
Zinsen gesamt: 721.36Hinweis: Die Berechnung pro Jahr (vereinfacht, Zinsen am Jahresende):
capital = capital + monthlyRate * 12; // Sparraten addieren
capital = capital + capital * (rate / 100); // Zinsen berechnenAufgabe 5: Eingabevalidierung (Übung)
Füge eine Validierung der Eingaben hinzu:
- Startkapital muss >= 0 sein
- Zinssatz muss zwischen 0 und 100 liegen
- Jahre müssen > 0 sein
- Monatliche Rate muss >= 0 sein
Bei ungültigen Eingaben: Warnmeldung und Programm beenden.
Beispielausgabe bei Fehler:
Startkapital: -500
Fehler: Startkapital muss mindestens 0 sein.Tipp: Mit if prüfen und bei Fehler process.exit() aufrufen:
if (startCapital < 0) {
console.log("Fehler: Startkapital muss mindestens 0 sein.");
process.exit();
}Aufgabe 6: Mit Funktionen strukturieren (Vertiefung)
Refaktoriere den Zinsrechner mit folgenden Funktionen:
calculateYear(capital, monthlyRate, rate)– berechnet das Kapital nach einem JahrdisplayYear(year, capital)– gibt eine Zeile der Übersicht ausisValidInput(startCapital, rate, years, monthlyRate)– prüft die Eingaben
Struktur:
import { questionFloat, questionInt } from 'readline-sync';
// === Funktionen ===
function calculateYear(capital, monthlyRate, rate) {
// Sparraten addieren, dann Zinsen berechnen
// Neues Kapital zurückgeben
}
function displayYear(year, capital) {
// Formatierte Ausgabe einer Zeile
}
function isValidInput(startCapital, rate, years, monthlyRate) {
// true wenn alles gültig, false sonst
}
// === Hauptprogramm ===
// Eingaben...
// Validierung...
// Berechnung mit while-Schleife und Funktionsaufrufen...
// Zusammenfassung ausgeben...Aufgabe 7: Sparziel erreichen (Vertiefung)
Schreibe eine Variation in einer neuen Datei (sparziel.js):
Statt einer festen Laufzeit gibt der Benutzer ein Sparziel ein.
Das Programm berechnet, wie viele Jahre benötigt werden.
Beispielausgabe:
Startkapital: 1000
Monatliche Sparrate: 200
Zinssatz (%): 4
Sparziel: 10000
---
Jahr 1: 3536.00
Jahr 2: 6173.44
Jahr 3: 8916.38
Jahr 4: 11769.04
---
Sparziel von 10000.00 nach 4 Jahren erreicht!
Endkapital: 11769.04Tipp: Abbruchfälle:
sparziel <= startCapital→ sofort beenden.monthlyRate === 0undrate === 0, aber Ziel höher → warnen und abbrechen.
Optionale Aufgaben (Bonus)
Inflationsbereinigung
Berechne zusätzlich den “realen” Wert des Endkapitals unter Berücksichtigung einer Inflationsrate (z.B. 2%).
Vergleich verschiedener Szenarien
Berechne drei Szenarien parallel:
- Pessimistisch (Zinssatz - 1%)
- Normal (eingegebener Zinssatz)
- Optimistisch (Zinssatz + 1%)
Tabellarische Ausgabe
Formatiere die Ausgabe als Tabelle mit padStart/padEnd:
Jahr | Einzahlung | Zinsen | Kapital
-----+------------+-----------+-----------
0 | 0.00 | 0.00 | 1000.00
1 | 1200.00 | 66.00 | 2266.00Falls-schnell-Aufgaben
- Gib pro Jahr auch die im Jahr angefallenen Zinsen aus.
- Trenne Eingezahlt vs. Zinsen klar in der Zusammenfassung.
- Variante: halbjährliche Verzinsung statt jährlicher.
- Rechne rückwärts: benötigtes Startkapital für Ziel in X Jahren.
Zusammenfassung
In diesem Mini-Projekt haben wir folgende Konzepte angewendet:
while-Schleifen für Jahr-für-Jahr-Berechnungen- Arithmetische Operatoren für Zinsberechnungen
if-Verzweigungen für Eingabevalidierung- Funktionen zur Strukturierung des Codes
- Formatierte Ausgabe mit
toFixed(2)undpadStart - Praktische Anwendung: Finanzplanung und Zinseszins
Info für Dozent: Lösung siehe zinsrechner.js im Repository exercises.