Temp d'execution sur pascal
nadal1991
Messages postés
268
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
voila je suis encore dans la programation pascal et je voudrait savoir si quelqu'un connait une instruction ou une astuce afin d'afficher le temp d'execution du programme (pascal ) ,
merci de m'informer
voila je suis encore dans la programation pascal et je voudrait savoir si quelqu'un connait une instruction ou une astuce afin d'afficher le temp d'execution du programme (pascal ) ,
merci de m'informer
A voir également:
- Temp d'execution sur pascal
- Turbo pascal - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Dev pascal - Télécharger - Édition & Programmation
- Core temp - Télécharger - Divers Utilitaires
- Combien de temps reste une story sur facebook - Guide
6 réponses
Voici une astuce pour faire ce que tu veux :
Il s'agit en fait de lire les heures de début et de fin du programme puis de les comparer...
Il s'agit en fait de lire les heures de début et de fin du programme puis de les comparer...
program SansNom; uses Dos; var h1,m1,s1,c1,h2,m2,s2,c2:word; begin GetTime(h1,m1,s1,c1); { Contenu du programme } GetTime(h2,m2,s2,c2); writeln; write('Fin du programme. Temps d''execution : '); if h2<h1 then write(((24+h2-h1)*3600+(m2-m1)*60+(s2-s1)+real(c2-c1)/100):0:2) else write(((h2-h1)*3600+(m2-m1)*60+(s2-s1)+real(c2-c1)/100):0:2); write(' secondes'); readln; end.
Sinon on peut créer une unité "Time" ton programme final ne ressemblera alors plus qu'à cela :
program SansNom; uses Time; begin { Contenu du Programme } end.Il faut pour cela compiler l'unité suivante appelée Time dans C:\Dev-Pas\Units\Time.pas ou équivalent selon l'interface Pascal que tu utilises...
unit Time; interface implementation uses dos; type ProcType = procedure; var OldProc: ProcType; r1:real; function RealOfGetTime:real; var h,m,s,c:word; begin GetTime(h,m,s,c); result:=h*3600+m*60+s+real(c)/100; end; procedure ToDoAtExit; var f: text; r,r2:real; begin Exitproc := OldProc; r2:=RealOfGetTime; r:=r2-r1; if r<0 then r:=r+24*3600; writeln; write('Fin du programme. Temps d''execution : ',r:0:2,' secondes'); assign(f, 'CON'); reset(f); readln(f); end; procedure Install_ExitProc; begin OldProc := ProcType(ExitProc); ExitProc := @ToDoAtExit; end; begin r1:=RealOfGetTime; Install_ExitProc; end.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tel que je l'ai écrit, si le programme plante, il affiche quand même "Fin du programme."
Voici une petite correction pour que dans ce cas il affiche "Erreur ---."
Dans ToDoAtExit, il faut remplacer :
Voici une petite correction pour que dans ce cas il affiche "Erreur ---."
Dans ToDoAtExit, il faut remplacer :
write('Fin du programme. Temps d''execution : ',r:0:2,' secondes');par
if ErrorAddr=nil then write('Fin du programme') else write('Erreur ',ExitCode); write('. Temps d''execution : ',r:0:2,' secondes');Dans tous les cas, le temps d'exécution sera affiché à la fin...