Affiche un chronomètre qui n'utilise pas le processeur à 100% (compilé avec borland c++ 5.02)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 852 fois - Téléchargée 33 fois

Contenu du snippet

Ce code ne sert pas vraiment à grand chose, si ce n'est à m'aider à comprendre un peu mieux le C++, ainsi qu'il peut servir aussi aux autres débutants comme moi.
Pour les personnes un peu plus expertes, veuillez me dire si ce code est bien ou pas du tout. D'ailleurs, je voulais savoir si le temps calculé était bien le bon, je pense qu'il doit y avoir un petit décalage, mais je n'avais pas de chronometre sous la main pour vérifier....
Voilà, je vous laisse regarder le code maintenant :)

Source / Exemple :


#include <windows.h>
#include <conio.h>
#include <iostream.h>

struct temps
{
unsigned int heures;
unsigned int minutes;
unsigned int secondes;
unsigned int dixiemes;
};

void afficher_heure(temps);
temps augmenter_heure(temps);
void chronometre(temps);
void menu(void);

int main(void)
{
temps t;
t.heures=0;t.minutes=0;t.secondes=0;t.dixiemes=0;

menu();

clrscr();

chronometre(t);

getch();
return 0;
}

void afficher_heure(temps t)
{
gotoxy(5,12);
cout<<t.heures<<" heure(s) "<<t.minutes<<" minute(s) "<<t.secondes<<" seconde(s) et "<<t.dixiemes<<" dixieme(s) de secondes.";
}

temps augmenter_heure(temps t)
{

if (t.dixiemes<9) t.dixiemes+=1; else {{t.dixiemes=0;}
if (t.secondes<59) t.secondes+=1; else {{t.secondes=0;}
if (t.minutes<59) t.minutes+=1; else {{t.minutes=0;t.heures+=1;}}}}
return t;
}

void menu(void)
{
for (int i=0;i<30;i++)
	{
	cout<<"-";
   }
cout<<" MENU ";
for (int i=0;i<30;i++)
	{
	cout<<"-";
   }
cout<<"\nCeci est un simple chronometre";
cout<<"\nCependant, il n'utilise pas votre processeur a 100%...\n";
cout<<"\nRemarque importante :";
cout<<"\nPour arreter le chronometre,\n";
cout<<"Utilisez la combinaison de touches Ctrl+C";
cout<<"\n\n";
for(int i=0;i<(30*2+6);i++) {cout<<"-";}
cout<<"\n";
cout<<"Appuyez sur une touche pour demarrer le chronometre...";
getch();
}

void chronometre(temps t)
{
int n=0;
gotoxy(5,10);
cout<<"Vous avez lance le chronometre depuis : \n";

do
	{
if (n=0) {afficher_heure(t); n++;}

Sleep(100);
afficher_heure(t);
t=augmenter_heure(t);
	} while (t.heures<100);

}

Conclusion :


Bien sûr, tous vos commentaires sont les bienvenus...

A voir également

Ajouter un commentaire Commentaires
PJulot Messages postés 29 Date d'inscription dimanche 8 juillet 2001 Statut Membre Dernière intervention 30 octobre 2003
12 oct. 2003 à 14:03
Pour ne pas utiliser le CPU à 100% dans une boucle, il suffit
d'ajouter un Sleep (10); à la fin de la boucle.
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
12 oct. 2003 à 08:56
tu pe directement faire temps t={0,0,0,0}; au lieu d'ecrire ca
t.heures=0;t.minutes=0;t.secondes=0;t.dixiemes=0;
c moin chiant!
cs_Chouchou182 Messages postés 252 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 25 avril 2011 1
11 oct. 2003 à 23:52
Salut

Interressant...

Pourquoi ne pas utiliser tout simplement les fonctions de <ctime> ou timeGetTime (<window.h> je crois) ?

De plus je n'ai pas compris le titre de la source. Si j'avais pu te passer la photo de l'historique de l'utilisation de l'UC...

100% dès le début du programme.

C'est en faisant des fautes que l'on apprend alors bon courage.

Chouchou
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 oct. 2003 à 18:10
Juste un petit truc:
var+=1; est a remplacer par var++ quand ce qui suit += est 1 car le compilo saura de suite traduire par l'instruction asm courte 'inc'. Il ne faut jamais presumer que le compilo est intelligent.
bosse bien.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.