Archivlink: javarea.de Forum > Talk Talk > Ausführungszeit eines C Programmes
Vollständigen Link anzeigen: javarea.de Forum > Talk Talk > Ausführungszeit eines C Programmes

Pages: [1]

geschrieben von Michael am 27.06.2003 - 12:51
Hi Leute!

Ich habe eine C-technische Frage und zwar möchte ich die zeit ermitteln, wie lange die schleife gebraucht hat, um komplett durchzulaufen...

habe einige sachen im internet gefunden, aber nicht wirklich was hilfreiches dabei...

ansatzweise habe ich schon

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
#include <time.h>
double difftime;

for(.....)
{
   time_t anfang;
   schleife.....
}

time_t ende;
difftime(anfang, ende);
printf(".....gesamtdauer....");


So jetzt nur im groben natürlich...
jetzt habe ich aber die exakten befehle gefunden....
wär toll, wenn mir jemand helfen könnte...

geschrieben von Patrick am 27.06.2003 - 15:33
Moi Darling,

du bist wieder da... Das ja prima

Da du fragen in C hast, helfe ich dir natürlich gerne weiter, ich kenne da ja nix... Haben im Seminar mal ein Beispiel geschrieben.... Ich poste datt gesamte mal, ist nicht sehr komplex und ich denke, du findest das wichtigste...

MfG,

Patrick

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
#include <stdio.h>
#include <time.h>

int fibonacci(int x)
{
	if (x<2)
		return 1;
	else
	{
		return (fibonacci(x-1) + fibonacci(x-2));
	}
}

void main(void)
{
	unsigned long k_Kinder;
	int anz = 1;
	time_t start, ende;
	time_t startI, endeI;
	int i;
	unsigned long zahl0=1, zahl1 = 1, erg=1;

	start = clock();
	k_Kinder = fibonacci(anz);
	printf("\n\nREKURSIVE LOESUNG\n\n");
	printf("Anzahl Hasen-Kinder: %u",k_Kinder);
	ende = clock();
	printf("\nZeit in Sek: %lf",(ende*1.0 - start)/CLOCKS_PER_SEC);

	startI = clock();
	printf("\n\nITERATIVE LOESUNG: \n\n");
	
	for (i=2; i <= anz; i++)
	{
		erg = zahl0 + zahl1;
		zahl0 = zahl1;
		zahl1 = erg;
	}
	printf("Anzahl Hasen-Kinder: %u",erg);
	
	endeI = clock();
	printf("\nZeit in Sek: %lf\n\n",(endeI*1.0 - startI)/CLOCKS_PER_SEC);
	
}

geschrieben von Michael am 27.06.2003 - 18:01
perfekt mein Hase...

bin jetzt endlich fertig mit BS, sau geiles gefühl sag ich dir...jetzt lass ichs ma krachen am WE ))

in sachen C werde ich sicher noch einige Fragen haben, da nächstes jahr die Bit-Manipulation kommt...und das ein teil der Facharbeiterprüfung ist...

Eine parallele schnittstelle ansteuern...

also, werd ich mich da jetzt ma über den sommer hin reinhängen...

geschrieben von Michael am 27.06.2003 - 18:19
so noch eine Frage die ich habe....

und zwar kann ich in einer variable im besten fall nur 4 byte speichern
sprich bei
float 3.4*10^-38 bis 3.4*10^38

was ist, wenn meine variable, in der ich eine zahl speichere, bzw. die sich im laufe des programmes immer erhöht und eigentlich gegen unendlich strebt (tut sie nicht, da ich ja das programm irgendwann abbrechen muss )

hast du da eine idee, wie ich dieses problem umgehen kann???

geschrieben von Patrick am 27.06.2003 - 18:32
Servus,

soweit ich weiss, gibt es da keine Lösung aber ich werde mal meinen C-Dozenten fragen, vielleicht hat der eine Ahnung...

Wieso bissen du nicht mehr im ICQ??? Wir könnten mal wieder nen CS *lol* Abend machen.... Zumindest in naher Zukunft, am besten nicht am WE

Bis denne,
Patrick

geschrieben von Michael am 27.06.2003 - 20:04
wär kewl, wenn du mir da fragen könntest...
da ich bei der zahl pi anstehe ,-)))

geschrieben von Patrick am 27.06.2003 - 21:31
Versuche es mal mit Double, wenn das nicht reicht Long Double...

MfG,

Patrick

geschrieben von Michael am 27.06.2003 - 23:19
meines wissens nach speichert double auch nur variablen einer länge von 4 byte....
long double könnte ich noch probieren - ma schaun...

geschrieben von Patrick am 28.06.2003 - 12:17
double speichert das doppelte von float.... ich glaube long double nochmal das doppelte....


p.s.: mir brennt der schädel


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.