strfun.c
, in welchem Sie die
Funktionsweise und Rückgabewerte der String-Funktionen
strlen()
, strcmp()
und strcpy()
auswerten.
Eine Beispielausgabe sehen Sie bei der nächsten Aufgabe.
my_
kennzeichnen. So soll Ihre
Variante von strlen()
einfach my_strlen()
heissen.
Ausser dem Namen sollen Sie die Signatur der Funktionen
unverändert übernehmen.
Die Ausgabe Ihres Programms sollte etwa so aussehen:
$ ./strfun strlen("Hallo Welt!") = 11 strcpy(buffer1, "Hallo ") = "Hallo " strcpy(buffer2, "Welt!") = "Welt!" strcmp(buffer1, buffer2) = -15 strcmp(buffer1, "Hallo ") = 0 my_strlen("Hallo Welt!") = 11 my_strcpy(buffer1, "Hurra ") = "Hurra " my_strcpy(buffer2, "Wirt!") = "Wirt!" my_strcmp(buffer1, buffer2) = -15 my_strcmp(buffer1, "Hurra ") = 0
Hinweis: Die Signaturen können Sie den Manpages der
Funktionen entnehmen
(z.B. man -s3c strcpy
bzw.
man 3 strcpy
).
Schreiben Sie ein Programm geld.c
, welches
verschiedene Geldanlagen einliest und dann anhand
der Benutzereingaben die beste verfügbare Geldanlage
(inklusive der Geldsumme am Ende der Laufzeit) ausgibt.
Verwenden Sie für die Verwaltung der Geldanlagen ein Array von
geldanlage
-Verbünden. Das Array darf keine globale
Variable sein! Die Definition des Arrays ist wie folgt
vorgegeben:
#define MAXANLAGEN (100) typedef struct _geldanlage { int nummer; // Eine frei waehlbare Nummer float anfangszinssatz; // Zinssatz (in % p.a.) der ersten zwei Jahre float restzinssatz; // Zinssatz danach int mindesteinlage; // Mindesteinlage in Zehntel-Cents } geldanlage; int main() { geldanlage anlagen[MAXANLAGEN]; // weiter }
Die vom Benutzer abzufragenden Eingaben bestehen aus der Anlagesumme in Euro und der Laufzeit in Jahren. Lagern Sie das Einlesen der Geldanlagen sowie der Benutzereingaben in eigene Funktionen aus. Die Signatur der Anlagen-Einlesefunktion könnte wie folgt aussehen:
// Liest bis zu maxAnlagen Geldanlagen von der Standardeingabe // und liefert die Anzahl der Anlagen zurueck int anlagenEinlesen(geldanlage *anlagen, int maxAnlagen);
Hinweis: Rechnen Sie intern in Zehntel-Cent, aber geben Sie die Beträge centgenau und abgerundet aus.
Beispiele:
$ ./geld Freie Nummer der Anlage (-1 beendet Einlesen): 1 Zinssatz der ersten zwei Jahre in % p.a.: 5.2 Zinssatz danach: 1.8 Mindesteinlage in Euro: 500 Freie Nummer der Anlage (-1 beendet Einlesen): -1 Habe 1 Geldanlagen eingelesen. Anlagesumme in Euro: 500 Laufzeit in Jahren: 3 Fuer eine Summe von 500.00 Euro ist Anlage 1 die beste. Nach 3 Jahren betraegt das Guthaben 563.31 Euro. $ ./geld Freie Nummer der Anlage (-1 beendet Einlesen): -1 Habe 0 Geldanlagen eingelesen. Anlagesumme in Euro: 100 Laufzeit in Jahren: 1 Es wurde keine passende Anlage gefunden! $ ./geld Freie Nummer der Anlage (-1 beendet Einlesen): 42 Zinssatz der ersten zwei Jahre in % p.a.: 2 Zinssatz danach: 2 Mindesteinlage in Euro: 1000 Freie Nummer der Anlage (-1 beendet Einlesen): -1 Habe 1 Geldanlagen eingelesen. Anlagesumme in Euro: 999 Laufzeit in Jahren: 10 Es wurde keine passende Anlage gefunden! # Mit Hilfe der Beispieldatei anlagen.txt $ ./geld <anlagen.txt [... Eingabeprompts ...] Fuer eine Summe von 3200.00 Euro ist Anlage 3 die beste. Nach 6 Jahren betraegt das Guthaben 3711.01 Euro. # Nachdem die Laufzeit in der Datei auf 4 Jahre reduziert wurde: $ ./geld <anlagen.txt [... Eingabeprompts ...] Fuer eine Summe von 3200.00 Euro ist Anlage 2 die beste. Nach 4 Jahren betraegt das Guthaben 3561.67 Euro.
Viel Erfolg!