PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : zeitmessung in visual studio C unter win2k



d00m
05-10-2003, 20:19
wie kann man die zeit in c/c++ messen ?

zb möchte ich:

#include <stdio.h>

int main()
{

int b=46676;

for(int i=0; i<b;i++)
{
printf("hallo, das ist zwar sinnlos aber möchte ich doch hir die zeit messen\n";
}
return 0;
}

tuxipuxi
05-10-2003, 20:21
hi,

time.h

einfach zeit nach der schleife - zeit vor der schleife und dann hast du es.

http://www.cplusplus.com/ref/ctime/


gruss,

tuxipuxi.

edit:

das beispiel auf der seite ist das was du suchst:



/* difftime example */
#include <stdio.h>
#include <time.h>

int main ()
{
time_t start,end;
char szInput [256];
double dif;

time (&start);
printf ("Please, enter your name: ");
gets (szInput);
time (&end);
dif = difftime (end,start);
printf ("Hi %s.\n", szInput);
printf ("You have taken %.2lf seconds to type your name.\n", dif );

return 0;
}

Berufspenner
05-10-2003, 20:22
Hi

Was willst du denn genau Messen?

Cu
André

d00m
05-10-2003, 20:39
naja ich möchte so testen was ich weiß, ohne nachschlagen zu müssen ;)
aber wenn du den folgenden code sihst bitte nicht kaputt lachen ;)






#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <windows.h>

void farbe(WORD color);
void quad();
void exponent();
void test();

void main()
{

bool wahl=true;
int zahl;

while(wahl==true)
{
farbe(14);

printf("\n\n1. quadratische gleichung\n");
printf("2. exponentialfunktion\n");
printf("3. test\n");
printf("ihre wahl: ");
scanf("%d",&zahl);

switch(zahl)
{
case 1:
{
quad();
break;
}
case 2:
{
exponent();
break;
}
case 3:
{
test();
break;
}
case 999:
{
wahl=false;
break;
}
default:
{
break;
}
}
}
}

void quad()
{
float q,p,x,y,D;
double x1,x2;

farbe(15);

printf("\t\t\tEingabe von p: ");
scanf("%f",&p);
printf("\t\t\tEingabe von q: ");
scanf("%f",&q);

D=(p/2)*(p/2)-q;
x1=-p/2+sqrt((p/2)*(p/2)-q);
x2=-p/2-sqrt((p/2)*(p/2)-q);
x=p/2;
y=-(p/2)*(p/2)+q;

farbe(12);

printf("\n\nx1: %f\nx2: %f\nD: %f\nS(%f; %f)\n",x1,x2,D,x,y);

getch();
}


void exponent()
{
int exp;
float wertebereich,negWertebereich;
float teiler;
double swap,negSwap;
bool running = true;

FILE *datei;

datei = fopen("c:\\text.txt","w");

printf("\n\nWie gross soll der Wertebereicht dimensioniert sein ? ");
scanf("%f",&wertebereich);
printf("Mit welchen Wert soll geteilt werden ? ");
scanf("%f",&teiler);
printf("wie groos ist der exponent ? ");
scanf("%d",&exp);
printf("\n\n\n");

exp--;

while(running)
{


// *** AB HIR SOLL DIE ZEIT GEMESSEN WERDEN ....
// *** IST HALT NUR SO NE SPIELEREI ;)
// *** ES INTERRESIERT MICH SEHR WIE SCHNELL MEIN GROSSER RECHNER
// *** BRAUCH UND MEIN KLEINER (also für die schleife)


wertebereich = wertebereich / teiler;
negWertebereich = -wertebereich;
swap = wertebereich;
negSwap = negWertebereich;

for(int i=0;i<exp;i++)
{
swap = swap*wertebereich;
negSwap = negSwap*negWertebereich;
}
printf("%f\t%f\t%f\t%f\n",wertebereich,swap,negWertebereich,negSwap);
fprintf(datei,"x: %f\t\t\ty: %f\t\t\tx: %f\n\n\ny: %f\n",wertebereich,swap,negWertebereich,negSwap);


if(negSwap < 0.000001 && swap < 0.000001)
{
running = false;
break;
}
}
fclose(datei);

}

void farbe(WORD color)
{
SetConsoleTextAttribute(::GetStdHandle(STD_OUTPUT_ HANDLE), color);
}

void test()
{
printf("hallo");
}

d00m
05-10-2003, 20:41
naja den code hat es jetz igendwie durcheinander gewürfelt ;)

d00m
05-10-2003, 20:45
wie kann ich hir eigentlich code einfügen, ohne das er so durcheinander gebraucht wird ?