Seite 1 von 2
C Einstiegsaufgabe (Uhrzeit)
Verfasst: So Mär 23, 2014 4:54 pm
von Lämpi
Hallo Leute,
Ich fang gerade erst an C zu programmiern, und hab folgende Aufgabe bekommen
ich soll ein Programm schreiben wo man eine Uhrzeit im 24h Format eingibt , und dann in eine Uhrzeit im 12h Format umwandelt.Es soll auch testen ob die eingegebenen Uhrzeiten auch gültig sind , und eine Fehlermeldung ausgeben wenn nicht.Könnt ihr mir tipps geben wie ich das am besten mache
Also folgendes ist klar
#include <stdio.h>
int main() {
int Stunden;
int Minuten;
printf("Bitte geben sie ein Uhrzeit im 24 Stunden Format ein!!!\n");
scanf("%i:%i",&Stunden,&Minuten);
wie kann ich das jetzt am besten durchführen??
Re: C Einstiegsaufgabe (Uhrzeit)
Verfasst: So Mär 23, 2014 7:03 pm
von FritziFoppel
Tach,
Wenn ich dich richtig verstehe versuchst du sowas hier zu programmieren:
Eingabe: 12:35 -> Ausgabe: 12:35
Eingabe: 17:40 -> Ausgabe: 5:40
Am besten ist es, wenn du zuerst überprüfst ob der eingegebene Wert auch gültig ist bevor du ihn veränderst. Macht Sinn

.
Da die die Uhrzeit nur zwischen 0:00 und 23:59 angegeben werden kann, überprüfst du ob die Zahl eben in diesem Bereich liegt. Am besten mit einer einfachen if-Abfrage.
Danach schaust du ob der Wert kleiner/gleich als 12:59 ist, da ansonsten keine Veränderung gemacht werden muss. Ist der Wert größer muss ja nur der Wert der Stunden umgewandelt werden. Hierbei hilft die der "%"-Operator (Google mal falls der dir nichts sagt).
Am Ende gibst du den veränderten Stundenwert aus und hängst einfach die Minuten hinten an.
Zuerst selber überlegen, dann weiter lesen!
Falls du bis hierher gelesen hast und immer noch nicht weißt wie du anfangen sollst: ein bisschen Code
Code: Alles auswählen
if((stunden <= 23 && stunden >= 0) && (minuten <= 59 && minuten >= 0))
{
if(stunden > 12)
{
stunden % 12 = stundenIn12;
printf("%d:%d", stundenIn12, minuten);
}
else
{
printf("%d:%d", stunden, minuten);
}
}
Re: C Einstiegsaufgabe (Uhrzeit)
Verfasst: So Mär 23, 2014 7:18 pm
von Lämpi
hey, danke für dein Beitrag
das % bedutet doch Modulo,oder?? also Rest einer Division,ich komm ehrlich gesagt noch nicht ganz mit
es sollte halt z.B bei einer Eingabe von 15:30---->3:30 ausgegeben werden
Re: C Einstiegsaufgabe (Uhrzeit)
Verfasst: So Mär 23, 2014 7:24 pm
von FritziFoppel
Da hast du absolut recht.

Wenn du eine Uhrzeit eingibst die über 12 ist, also 15:30 und diese dann durch 12 teilst, bekommst du mit dem Modulo-Operator 3 heraus. 3:30.
Lämpi hat geschrieben:also Rest einer Division,ich komm ehrlich gesagt noch nicht ganz mit
Ist das jetzt auf meinen Beitrag bezogen, dass du nicht alles verstanden hast, oder meinst du, dass du Operatoren bzw. Programmieren allgemein?
Re: C Einstiegsaufgabe (Uhrzeit)
Verfasst: So Mär 23, 2014 7:31 pm
von Lämpi
Hey
ich meinte deinen Quellcode habe ich noch nicht ganz durchschaut.
was bedeutet das stundenIn?? und das else das gehört zu der letzteren if Anweisung ,oder???
Re: C Einstiegsaufgabe (Uhrzeit)
Verfasst: So Mär 23, 2014 7:42 pm
von FritziFoppel
Oke, damit fang ich schon eher was an.
Lämpi hat geschrieben:ich meinte deinen Quellcode habe ich noch nicht ganz durchschaut.
Code: Alles auswählen
if((stunden <= 23 && stunden >= 0) && (minuten <= 59 && minuten >= 0))
//Hier wird überprüft, ob die Stunden/Minuten dem gültigen Bereich entsprechen.
//Stunden muss zwischen 0 und 12 liegen und Minuten zwischen 0 und 59. Soweit die erste if-Anweisung
{
if(stunden > 12)
//Wenn Stunden größer als 12 ist, muss etwas geändert werden
{
stunden % 12 = stundenIn12;
//stundenIn12 hab ich aus Gründen der Verständnis gewählt, es soll eine normale Variable sein, in der Wert der Stunden gespeichert wird,
//falls er größer als 12 ist (kannst du auch anders nennen)
printf("%d:%d", stundenIn12, minuten);
}
else // die else-Anweiung zur letzten if-Anweisung
{
printf("%d:%d", stunden, minuten);
}
}
Lämpi hat geschrieben:und wo steht das,dass Modulo 3 ist??
Du hast doch vorher selbst gesagt, dass der Modulo-Operator den Rest der Division angibt.
15 % 12 = 3;
stunden % 12 = Rest aus der Division von stunden/12
Re: C Einstiegsaufgabe (Uhrzeit)
Verfasst: So Mär 23, 2014 7:47 pm
von Lämpi
ok danke jetzt hab ich es eigentlich verstanden,habs auch probiert zu kompilieren aber er bringt noch Fehler.
das stundenIn muss ich am Anfang schon alls Variable deklarieren oder???
Re: C Einstiegsaufgabe (Uhrzeit)
Verfasst: So Mär 23, 2014 7:57 pm
von FritziFoppel
Für eine Einstiegsaufgabe solltest du dir eigentlich den Code selbst überlegen und nicht von irgendjemand schreiben lassen.
Aber ich denke, wenn du den Code soweit übernommen hast, sollte der Compiler deshalb meckern, ja.
Außerdem musst du
in
verändern, da du eine Zuweisung auf stundenIn12 machst.
Das nächste Mal überlegst du dir am besten selber den Code, aber Hauptsache du hast den Code kapiert.

Viel Spaß
Re: C Einstiegsaufgabe (Uhrzeit)
Verfasst: So Mär 23, 2014 8:05 pm
von Lämpi
hey vielen Dank,
ich hatte ein Programm ,dass aber sehr unkonventionell war,und einige Fehler drin hatte.Ich fang gerade erst an mit dem c programmieren, mach das erst seit 2 Wochen,studiere Physik und da ist das ein Pflichtkurs eben,bin nicht so der Meister im Programmieren,aber ich versuch es zu kapieren,bin auch immer brav am üben.
Nochmals vielen lieben Dank,jetzt weiß ich schon deutlich mehr

Re: C Einstiegsaufgabe (Uhrzeit)
Verfasst: So Mär 23, 2014 8:08 pm
von Lämpi
ein Problem hab ich noch ,das ich bei meinem Programm auch hatte nämlich wenn ich z.B 17:03 eingebe kommt 5:3 heraus ,die Null vor dem 3er, wie krieg ich die dazu??