Barwert ausgeben
In diesem Schritt verbessern Sie das Barwert-Berechnungsprogramm, indem Sie formatierte Ausgaben und Fehlerbehandlung hinzufügen, um die Benutzerfreundlichkeit zu steigern.
Aktualisieren Sie die Datei present_value.c
mit verbesserter Formatierung und Validierung:
nano ~/project/present_value.c
Ändern Sie den Code, um eine bessere Ausgabeformatierung einzubeziehen:
#include <stdio.h>
#include <math.h>
int main() {
double future_value, rate, time, present_value;
// Eingabevalidierung
printf("Barwert-Rechner\n");
printf("---------------\n");
printf("Zukunftswert eingeben (muss positiv sein): ");
if (scanf("%lf", &future_value) != 1 || future_value <= 0) {
printf("Fehler: Ungültiger Zukunftswert. Bitte eine positive Zahl eingeben.\n");
return 1;
}
printf("Jährlicher Zinssatz eingeben (in Dezimalform, z. B. 0,05 für 5%): ");
if (scanf("%lf", &rate) != 1 || rate < 0) {
printf("Fehler: Ungültiger Zinssatz. Bitte eine nicht-negative Zahl eingeben.\n");
return 1;
}
printf("Zeitraum eingeben (in Jahren, muss positiv sein): ");
if (scanf("%lf", &time) != 1 || time <= 0) {
printf("Fehler: Ungültiger Zeitraum. Bitte eine positive Zahl eingeben.\n");
return 1;
}
// Barwert berechnen
present_value = future_value / pow((1 + rate), time);
// Formatierte Ausgabe
printf("\n--- Barwert-Berechnung ---\n");
printf("Zukunftswert: $%.2f\n", future_value);
printf("Jährlicher Zinssatz: %.2f%%\n", rate * 100);
printf("Zeitraum: %.2f Jahre\n", time);
printf("Barwert: $%.2f\n", present_value);
return 0;
}
Kompilieren und ausführen des aktualisierten Programms:
gcc -o present_value present_value.c -lm
./present_value
Beispielausgabe:
Barwert-Rechner
---------------
Zukunftswert eingeben (muss positiv sein): 1000
Jährlicher Zinssatz eingeben (in Dezimalform, z. B. 0,05 für 5%): 0,05
Zeitraum eingeben (in Jahren, muss positiv sein): 3
--- Barwert-Berechnung ---
Zukunftswert: $1000.00
Jährlicher Zinssatz: 5.00%
Zeitraum: 3.00 Jahre
Barwert: $862.07
Wichtige Verbesserungen:
- Hinzugefügte Eingabevalidierung, um ungültige Eingaben zu verhindern
- Verbesserte Ausgabeformatierung mit eindeutigen Beschriftungen
- Verbesserte Fehlerbehandlung für Benutzereingaben
- Hinzugefügte beschreibende Eingabeaufforderungen und Berechnungszusammenfassung