Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Evaluator  (Citit de 1410 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
dyzzy_dyzzy
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« : Decembrie 05, 2008, 22:30:57 »

Cum as putea face si eu un evaluator cu care sa imi testez timpul de executie?
Daca se poate si mai mult v-asi ramane recunoscator.
Multumesc! Very Happy
Memorat
CezarMocan
Nu mai tace
*****

Karma: 252
Deconectat Deconectat

Mesaje: 567



Vezi Profilul
« Răspunde #1 : Decembrie 06, 2008, 00:36:47 »

Cod:
 
#include <stdlib.h>
#include <time.h>

int main ()
{
  time_t start,end;
  double dif;

  time (&start);
  system("program.exe");
  time (&end);
  dif = difftime (end,start);

  printf("%.3f\n", dif); 

  return 0;
}

Ar trebuie sa mearga... iti afiseaza numarul de secunde cu 3 zecimale. Trebuie sa pui asta in acelasi folder cu programul caruia vrei sa-i testezi timpul.
Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #2 : Decembrie 06, 2008, 21:36:12 »

Uite aici un header care te poate ajuta. L-am folosit cu succes pana acum. E la atasamente, trebuie doar sa ii schimbi extensia in .h. Uite cum se foloseste:
Cod:
#include <iostream>
#include <timer.h>
int main(){
    timer t;
    t.start();
    system("program.exe");
    std:: cout<<"Timp de executie "<<t<<" secunde\n";
}

cu timer declari clasa timer( constructor), cu start() il pornesti, cu stop() il opresti, cu restart() il repornesti, cu cout << afisezi cat a durat de la pornirea lui pana la momentul acela. Nu uita sa incluzi timer.h.

Spor Smile

Memorat
stocarul
Nu mai tace
*****

Karma: 49
Deconectat Deconectat

Mesaje: 203



Vezi Profilul
« Răspunde #3 : Decembrie 10, 2008, 17:32:50 »

Cod:
 
#include <stdlib.h>
#include <time.h>

int main ()
{
  time_t start,end;
  double dif;

  time (&start);
  system("program.exe");
  time (&end);
  dif = difftime (end,start);

  printf("%.3f\n", dif); 

  return 0;
}

Ar trebuie sa mearga... iti afiseaza numarul de secunde cu 3 zecimale. Trebuie sa pui asta in acelasi folder cu programul caruia vrei sa-i testezi timpul.

Functioneaza acesta, insa as avea o mica problema....
Timpul returnat de functia difftime este doar numarul de secunde.....toate zecimalele fiind doar 0......Cum pot remedia aceasta problema?
Si as mai dori daca se paote sa opreasca program.exe dupa un anumit timp (in cazul in care nu termina el de executat)
Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #4 : Decembrie 10, 2008, 20:53:34 »

Cod:
 
#include <stdlib.h>
#include <time.h>

int main ()
{
  time_t start,end;
  double dif;

  time (&start);
  system("program.exe");
  time (&end);
  dif = difftime (end,start);

  printf("%.3f\n", dif); 

  return 0;
}

Ar trebuie sa mearga... iti afiseaza numarul de secunde cu 3 zecimale. Trebuie sa pui asta in acelasi folder cu programul caruia vrei sa-i testezi timpul.

Functioneaza acesta, insa as avea o mica problema....
Timpul returnat de functia difftime este doar numarul de secunde.....toate zecimalele fiind doar 0......Cum pot remedia aceasta problema?
Si as mai dori daca se paote sa opreasca program.exe dupa un anumit timp (in cazul in care nu termina el de executat)


Cod:
 
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
int main ()
{
  time_t start,end;
  double dif;
  start = clock();

  system("program.exe");
  printf("%.3f\n", (float)(clock() - start) / (CLOCKS_PER_SEC)); 

  return 0;
}


Daca vrei sa omori programul e oleaca mai complicat... Deschizi programul intr-o fereastra separata( cu system("start program.exe"); )  (Windows-ul nu e multi - tasking) si astepti x secunde pana sa il omori. (iti trebuie un program special pentru a il omori deoarece cu taskkill nu iti iti inchide si procesele deshise de acesta, deci si fisierele deschise).

Daca vrei exact sa iti arat cum, vorbim pe privat.

Spor Smile
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines