Algorithmen und Datenstrukturen

Übungen zu Tutorium 3

W. Tasin, M.Sc.



Es soll ein Programm in ANSI-C erstellt werden, das ausrechnet wie lange ein Firmenmitarbeiter an einem Tag gearbeitet hat.

Das Programm soll zuerst nach der Uhrzeit des Arbeitsbeginns fragen. Anschließend wird nach der Uhrzeit des Arbeitsendes gefragt.
Nach erfolgreicher Eingabe zweier Uhrzeiten der Form HH:MM wird die Dauer (Zeitraum zwischen den zwei Zeiten) in zwei unterschiedlichen Darstellungen ausgegeben.
Zuerst ist die Dauer in Stunden (mit zwei Dezimalstellen) und danach in Stunden/Minuten ausgegeben.

Die Eingabe soll mit scanf() erfolgen. Verwenden Sie dazu den Formatspezifizierer "%d:%d".
Überprüfen Sie die Eingabe bevor die Dauer errechnet wird.
Konnte scanf() keine 2 int-Werte (Stunde und Minute) durch einen Doppelpunkt getrennt einlesen oder sind die Zahlenwerte nicht im definierten Wertebereich für Stunden und Minuten, so ist das Programm mit einer geeigneten Meldung zu beenden.

Beispielaufruf

arbeitszeit.png

Programmerstellung

Zur Berechnung der Dauer



Das Programm ist in zwei C-Dateien zu realisieren:

#ifndef _ZEIT_FKT_H
#define _ZEIT_FKT_H

#define SECS_OF_DAY        (60ul*60*24)

/*
    Berechnet aus Stunden, Min. und Sekunden
    die Anzahl der vergangenen Sekunden seit Mitternacht.
*/
unsigned long hms2sec(unsigned h, unsigned m, unsigned s);
/*
    Rechnet die uebergebenen Sekunden in
    Stunden, Minuten und Sekunden um und gibt diese
    auf die Standardausgabe aus.
*/
void out_sec2hms(unsigned long sec);
/*
    Rechnet die uebergebenen Sekunden in
    Stunden (mit 2 Dezimalstellen nach dem Komma) aus 
    und gibt diesen Wert auf die Standardausgabe aus.
*/
void out_sec2time(unsigned long sec);

#endif



Optionale Ergänzungen




Links

Uebungen Algorithmen und Datenstrukturen
Unterlagen Algorithmen und Datenstrukturen
Praktikum Algorithmen und Datenstrukturen
Zur Hauptseite