myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Datumsrechner in C !

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 21.09.10, 22:22   #1
Jewbacca2010
Anfänger
 
Registriert seit: Mar 2010
Beiträge: 46
Bedankt: 6
Jewbacca2010 ist noch neu hier! | 0 Respekt Punkte
Standard Datumsrechner in C !

Hallo leute,
habe hier eine aufgabe und wollte fragen ob ihr mir eine musterlösung geben könnt, da ich bei dieser aufgabe total übervordert bin, es handelt sihc um einen datumsrechner, inden man 2 beliebige daten eingibt und er die tage unterschied ausrechnet.
ausführliche aufgabenstellung: nur noch aufgabe dank warnung von germgerm

Datumsrechnen
Schreib ein Programm, das zwei Datumsangaben als Eingabe bekommt und den Zeitraum zwischen den beiden in Tagen ausgibt.
Ein- und Ausgabe
Das Programm wird mit zwei Datumsangaben als Argumente auf der Befehlszeile aufgerufen. Beide müssen die Form ddmmyyyy (8-stellige Zahl) haben.
Als Ausgabe wird nur eine Zahl (Zeitspanne in Tagen, nicht zerlegt auf Tage, Monate und Jahre) erwartet.
Berechnung
Dein Programm sollte folgenden Ablauf haben:
•Berechne für beide eingegebenen Datumangaben (dargestellt jeweils als ein einziger int, nicht als einzelne Zeichen) die “Anzahl der Tage seit 1.1.0001”.
•Gib die Differenz dieser Tage aus.

danke im vorraus lg. jan
Jewbacca2010 ist offline   Mit Zitat antworten
Ungelesen 22.09.10, 09:57   #2
PornoPenner
Banned
 
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
PornoPenner ist noch neu hier! | 0 Respekt Punkte
Standard

Hmm, vielleicht solltest Du erst erklären warum Du überfordert bist!

So eine Aufgabe ist eigentlich super leicht zu lösen und wenn Du jetzt schon überfordert bist, dann würde ich mir überlegen, ob Du das Richtige für Dich studierst (falls Du studierst). Alles was Du beachten musst steht ja sogar auf dem Übungsblatt.

Bringt Dir doch letztendlich nichts, wenn Dir jemand eine Musterlösung schreibt...
PornoPenner ist offline   Mit Zitat antworten
Ungelesen 22.09.10, 13:06   #3
Jewbacca2010
Anfänger
 
Registriert seit: Mar 2010
Beiträge: 46
Bedankt: 6
Jewbacca2010 ist noch neu hier! | 0 Respekt Punkte
Standard

ich bräuchte nur einen lösungsansatz, es liegt daran, dass wir einen neuen lehrer in programmieren bekommen haben, dessen niveau erheblich höher ist.
Jewbacca2010 ist offline   Mit Zitat antworten
Ungelesen 22.09.10, 18:26   #4
urga
Mitglied
 
Benutzerbild von urga
 
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
urga ist noch neu hier! | 0 Respekt Punkte
Standard

fang' doch damit an, die hilfsfunktionen zu implementieren und einzeln zu testen.
alles in allem finde ich das eine sehr ausführliche und gelungene aufgabenstellung.
__________________
entropie erfordert keine wartung
urga ist offline   Mit Zitat antworten
Ungelesen 22.09.10, 18:53   #5
Jewbacca2010
Anfänger
 
Registriert seit: Mar 2010
Beiträge: 46
Bedankt: 6
Jewbacca2010 ist noch neu hier! | 0 Respekt Punkte
Standard

so hatten das programm heute im praktischen unterricht, ja so ähnlich habe ich angefangen aber dann waren die 2 stunden vorbei und ich hatte vllt 5-10% des programms, muss einfach nochmal dazu sagen das der lehrer neu an unserer schule ist und das die aufgaben sehr viel schwerer sind als die vom ehemaligen lehrer, deswegn würdet ihr mir sehr helfen mit einer musterlösung, ihr müsst es nicht tun aber wäre euch schon sehr dankbar
Jewbacca2010 ist offline   Mit Zitat antworten
Ungelesen 22.09.10, 19:41   #6
germgerm
bla
 
Registriert seit: Mar 2010
Beiträge: 312
Bedankt: 302
germgerm ist noch neu hier! | 0 Respekt Punkte
Standard

cool, euer lehrer hat kein handy!
o-ton: lieber ein telefonloses kabel als ein kabelloses telefon ^^

ich würde im forum aber trotzdem mit solchen links ein bißchen vorsichtiger umgehen...
germgerm ist offline   Mit Zitat antworten
Ungelesen 22.09.10, 20:01   #7
urga
Mitglied
 
Benutzerbild von urga
 
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
urga ist noch neu hier! | 0 Respekt Punkte
Standard

eine musterlösung wirst du hier nicht bekommen.
allerdings werden wir deine konkrekten fragen beantworten.

naja ok, musterlösung+testcode für istSchaltJahr()
Code:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>

/*bool*/ int  istSchaltJahr (int j) {
	return (!(j % 400)) || (j % 100 && (!(j % 4)));
	/* oder explizit:
	if (j % 400 == 0) return 1;
	if (j % 100 == 0) return 0;
	if (j % 4 == 0) return 1;
	return 0;
	*/
}

int main (int ac, char ** av) {
	if (ac < 2) {
		printf ("blablala usage....\n");
		return -1;
	}
	if (strlen (av[1]) != 8) {
		printf ("blablala usage3 (kein datum)....\n");
		return -1;
	}
	int datum_1 = atoi (av[1]);
	if (datum_1 == 0) {
		printf ("blablala usage2....\n");
		return -1;
	}

	int tage_1 = datum_1 / ((int) pow (10, 6));
	int monate_1 = (datum_1 / ((int) pow (10, 4))) - tage_1*100;
	int jahre_1 = datum_1 - (tage_1*((int) pow (10,6)) + monate_1*((int) pow(10,4)));
	printf ("eingabe %d == tage(%d), monate(%d), jahre (%d) schaltjahr? (%s)\n", datum_1, tage_1, monate_1, jahre_1, istSchaltJahr (jahre_1) ? "ja" : "nein");
        return 0;
}
ich hoffe, das hilft.
__________________
entropie erfordert keine wartung
urga ist offline   Mit Zitat antworten
Ungelesen 22.09.10, 22:07   #8
Jewbacca2010
Anfänger
 
Registriert seit: Mar 2010
Beiträge: 46
Bedankt: 6
Jewbacca2010 ist noch neu hier! | 0 Respekt Punkte
Standard

ok vielen dank ich werde mich am wochen ende hinhocken und mich daran versuchen , wieso vorsichtig sein? die seite ist öffentlich zugängig oder was meinst du konkret?
Jewbacca2010 ist offline   Mit Zitat antworten
Ungelesen 23.09.10, 19:10   #9
germgerm
bla
 
Registriert seit: Mar 2010
Beiträge: 312
Bedankt: 302
germgerm ist noch neu hier! | 0 Respekt Punkte
Standard

ich meine nur, falls du anonym bleiben möchtest.
germgerm ist offline   Mit Zitat antworten
Ungelesen 23.09.10, 20:41   #10
Jewbacca2010
Anfänger
 
Registriert seit: Mar 2010
Beiträge: 46
Bedankt: 6
Jewbacca2010 ist noch neu hier! | 0 Respekt Punkte
Standard

achso ja danke, habe den link entfehrnt. wann ist man heute schon anonym :P
Jewbacca2010 ist offline   Mit Zitat antworten
Ungelesen 23.09.10, 22:30   #11
PornoPenner
Banned
 
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
PornoPenner ist noch neu hier! | 0 Respekt Punkte
Standard

Dann wär der Klaus Kusche aber nicht so erfreut
PornoPenner ist offline   Mit Zitat antworten
Ungelesen 24.09.10, 08:14   #12
Jewbacca2010
Anfänger
 
Registriert seit: Mar 2010
Beiträge: 46
Bedankt: 6
Jewbacca2010 ist noch neu hier! | 0 Respekt Punkte
Standard

Ja habe anfangs nicht daran gedacht dass Adresse etc da steht
Jewbacca2010 ist offline   Mit Zitat antworten
Ungelesen 30.09.10, 15:28   #13
wmosebach
Ist öfter hier
 
Registriert seit: Jan 2010
Beiträge: 189
Bedankt: 117
wmosebach ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von urga Beitrag anzeigen
eine musterlösung wirst du hier nicht bekommen.
allerdings werden wir deine konkrekten fragen beantworten.

naja ok, musterlösung+testcode für istSchaltJahr()
Code:
...

	int tage_1 = datum_1 / ((int) pow (10, 6));
	int monate_1 = (datum_1 / ((int) pow (10, 4))) - tage_1*100;
	int jahre_1 = datum_1 - (tage_1*((int) pow (10,6)) + monate_1*((int) pow(10,4)));
	printf ("eingabe %d == tage(%d), monate(%d), jahre (%d) schaltjahr? (%s)\n", datum_1, tage_1, monate_1, jahre_1, istSchaltJahr (jahre_1) ? "ja" : "nein");
        return 0;
}
ich hoffe, das hilft.

Schön geschriebener Code, aber noch 1 verbesserung von meiner Seite:
Nimm umbedingt die "pow" anweisungen raus und ersetze sie durch hardcodierte zahlen. Die "pow"-Funktion hier zu nutzen, wäre wie mit Kanonen auf Tontauben zu schießen (-->Komplexität der Funktion)

Ansonsten viel Erfolg (und ruhig mal ein wenig ranklotzen bei dem Lehrer, der scheint was drauf zu haben )
wmosebach ist offline   Mit Zitat antworten
Ungelesen 30.09.10, 17:10   #14
PornoPenner
Banned
 
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
PornoPenner ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von wmosebach Beitrag anzeigen
Schön geschriebener Code, aber noch 1 verbesserung von meiner Seite:
Nimm umbedingt die "pow" anweisungen raus und ersetze sie durch hardcodierte zahlen. Die "pow"-Funktion hier zu nutzen, wäre wie mit Kanonen auf Tontauben zu schießen (-->Komplexität der Funktion)

Ansonsten viel Erfolg (und ruhig mal ein wenig ranklotzen bei dem Lehrer, der scheint was drauf zu haben )
Wo ist der schön geschriebene Code?
Ich sehe viel zu lange Zeilen, unnötige Berechnungen... und das in vier Zeilen

Soll nicht böse gemeint sein, aber was Code-Qualität bedeutet sollte man so früh wie möglich lernen...
PornoPenner ist offline   Mit Zitat antworten
Ungelesen 30.09.10, 18:44   #15
urga
Mitglied
 
Benutzerbild von urga
 
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
urga ist noch neu hier! | 0 Respekt Punkte
Standard

a) (int) pow (10,6) sollte schon zur compilezeit berechnet werden.
b) klar kann man das eindampfen, aber dann wirds nicht unbedingt nachvollziehbar (für den threadersteller)
c) und ja, auch über code-ästhetik kann man streiten.
@PP wie würdest du denn die 3 werte berechnen? berausche uns mit deiner fachkenntnis!
__________________
entropie erfordert keine wartung
urga ist offline   Mit Zitat antworten
Ungelesen 30.09.10, 20:59   #16
testerws
Newbie
 
Registriert seit: Apr 2009
Beiträge: 78
Bedankt: 21
testerws ist noch neu hier! | 0 Respekt Punkte
Standard

eine andere frage hätte ich an Jewbacca2010, interessiert mich nur so, ich hatte früher nicht so schöne aufgaben (nur tubo pascal und da nur schrott programmiert) welche jahrgangsstufe und was für schule (real?gym?)
testerws ist offline   Mit Zitat antworten
Ungelesen 01.10.10, 10:14   #17
wmosebach
Ist öfter hier
 
Registriert seit: Jan 2010
Beiträge: 189
Bedankt: 117
wmosebach ist noch neu hier! | 0 Respekt Punkte
Standard

@PP
natürlich kann man alles wunderbar verschachteln, aber blickt dann ein Anfänger wie der TE da noch durch bzw kann seinem Lehrer dass am Ende erklären...

@urga
in bezug auf "pow"-Funktion ging es mir primär darum, dass man probieren sollte diese Funktion nach Möglichkeit zu umgehen, da ihre Verfahrensweise einfach ein wenig "extrem" ist und viel zu viele Vergleiche führt, die an dieser Stelle total unnötig sind.
Auch ich habe sie liebend gern früher verwendet, bis ich mir mal den Quellcode von ihr angesehn habe und dieser einfach nur total freaky war. Aus diesem Grund versuche ich Anfänger direkt von dieser Funktion fernzuhalten
wmosebach ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:28 Uhr.


Sitemap

().