begin process at 2012 02 10 08:39:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Probleme compteur


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme compteur

samedi 20 novembre 2004 à 15:08:22 | Probleme compteur

un4given

Bonjour a tous !
Je debute en c++ et j'ai un petit soucis que voici :

En fait je voudrais realiser un programme qui calcule le poul cardiaque (c'est un simple exercice, je vous rassure). Pour ce faire, des que l'utilisateur appuie sur une touche, un compte a rebours de 20 secondes se met en marche et l'utilisateur appuie sur une touche a chaque fois qu'il sent son poul pendant ces 20 secondes. A chaque fois qu'on appuie sur une touche, un petit compteur visible a l'ecran s'incrémente de 1, montrant ainsi a l'utilisateur a combien de poul il en est.
A la fin des 20s, on multiplie ce nombre par 3 et on obtient le poul final. (fantastique non ?)

Voila ! En ce qui concerne le compteur, je pense avoir reussi a le faire (pas sur), mais mon probleme est que je ne sais pas comment faire pour créer un compteur qui calcule le nombre de ofis qu'on a appuyer sur une touche ! Si vous pouviez m'eclairer !!!

Merci a tous !
samedi 20 novembre 2004 à 15:12:08 | Re : Probleme compteur

un4given

Je precise :
Je travaille en C/C++ sous Borland 5.2
On m'a dit d'utiliser la fonction getch() mais je ne sais pas a quoi elle sert...
samedi 20 novembre 2004 à 16:06:19 | Re : Probleme compteur

Arnaud16022

Membre Club
je suppose que tu est dans une fenetre dos? (la toute pas belle en noir et blanc)
samedi 20 novembre 2004 à 16:37:31 | Re : Probleme compteur

matge

Tu peux toujours rentrer les touches dans une chaine de caracteres comme ca l utilisateur peut deja appuyer sur n importe quel caractere.

CString chaine;
While(temps <20secondes)
{
chaine=getchar();
temps ++; //je pense calculer le temps ici
}

// apres le while calculer la longueure de la chaine de caractere.

int taille=chaine.GetLength();

int Poux=taille*3;

Bon courage

Mat
samedi 20 novembre 2004 à 16:45:10 | Re : Probleme compteur

Arnaud16022

Membre Club
euh.. test sur de ton truc la?
getchar va attendre que tu aies tapé une touche puis enter
si tu mes 2 secondes a appuyer sur ta touche, time++ ne va pas faire grand chose...
dans ton cas ya pas besoin d'un granded précision, time() (dans (time.h) devrait suffire;
long tpsdebut=time();
int count=0;
while( time()-tpsdebut <=2000) (en milliisecondes)
{
getchar(); (ya mieux hein)
count++;
}
count*=3;
count/=60;

un truc comme ca...
samedi 20 novembre 2004 à 17:23:07 | Re : Probleme compteur

un4given

Merci a vous deux deja!
En ce qui concerne le decompte du temps je pense faire comme Arnaud a dit. Par contre je ne maitrise pas du tout getchar()...
Dans ta version Arnaud, que veut dire la ligne :
count/=60 ?

Sinon ca me parait proche de ce que je voulais faire donc encore merci !
Par contre tu dis qu'il y a meux que getchar() ? Si oui tu peux m'expliquer quoi ? (et surtout pourquoi c'est mieux !)
samedi 20 novembre 2004 à 17:27:35 | Re : Probleme compteur

un4given

Je rajoute un probleme dont je ne suis pas sur :

Je veux que quand l'utilisateur lance le programme, il ne se passe rien, il puisse juste lire les consignes d'utilisations que je rentrerai. Et le décompte des 20s démarre uniquement a la premiere touche enfoncé par l'utilisateur. Ce n'est pas ce qui se passe ici si ? Si non comment faire ? (c'est la l'un de mes principal soucis)
samedi 20 novembre 2004 à 17:40:16 | Re : Probleme compteur

un4given

Bon j'ai retravaillé ton prog Arnaud (enfin j'ai arrondi les bords comme je les voulais) et je pense avoir resolu mon probleme cité au dessus a savoir que je veux que le décompte démarre quand l'utilisateur commence a compter son poul. Ca donne la chose qui suit, dites moi si vous voyez des erreurs, si mon pb est resolu, et surtout si on pouvait m'expliquer la ligne que je ne comprend pas (count\=60) :

void cardio (void)
{
char rep[20];
rep[0] = 'Y';
while ((rep[0] != 'n') && (rep[0] != 'N'))
{
printf("\n Consignes");
getchar();
long tpsdebut=time();
int count = 1;
while( time()-tpsdebut <=2000)
{
getchar();
count++;
}
count*=3;
count/=60; <-- ligne que je ne comprend pas
printf(" Votre poul est de %d", count);
printf("\n\n Voulez-vous recommencer l'execution ? ");
scanf("%s",rep);
}
return ;
}
samedi 20 novembre 2004 à 17:50:26 | Re : Probleme compteur

Arnaud16022

Membre Club
count += 1;
c'est count=count+1 OK?
ben count /= 60 c'est count=count / 60;
ca te donne le nombre de pulsations a la sec, vi je sais a la reflexion c'est inutile...
printf("\n\n Voulez-vous recommencer l'execution ? ");
ne doit pas se trouver dans cette fonction mais dans main, l ca te servira a rien. Idem pour
char rep[20];
rep[0] = 'Y';
while ((rep[0] != 'n') && (rep[0] != 'N'))
{..}
tu pux mettre ca dans main, ca sera plus clair, avec cardio() dans le while.
pour getchar je vais me renseigner.
samedi 20 novembre 2004 à 17:53:34 | Re : Probleme compteur

Arnaud16022

Membre Club
essaye
fgetc (stdin);

1 2

Cette discussion est classée dans : probleme, compteur, utilisateur, touche, poul


Répondre à ce message

Sujets en rapport avec ce message

comment gérer un sleep() et une siasie de touche en même temps? [ par capunk ] bonjour, j'ai un programme a faire dont le but est de simuler le fonctionnement d'une mémoire vive.Donc mon soucis c'est qu'il faut que je simule auss probleme: dialog child disparait quand touche entrée appuyé [ par weexity ] salut a tous!!!!    j'ai creé 4 dialogs child non modal differentes dynamiquement avec plein de petits boutons, c'est cool et ca marche bien, sauf que Probleme avec GTK et le code touche [ par Vamps ] Bonjour,En faite je veut en utilisant un switch que le programme reagisse a differente touche, en loccurance ici la touche ENTRER regarder le code :gb probleme avec la fonction GetAsyncKeyState() [ par aardman ] Bonjours,Je débute dans le c, et j'ai un petit probleme avec cette fonction.Je n'arrive pas a la faire fonctionner avec un int comme argument. Par exe probleme de compilation [ par lesaixol ] Bonjour,je travaille sous Visual C++ et windows NT et lorsque je compile un projet sous mon compte utilisateur, j'obtiens un executable dont la taille probleme avec dev c++ [ par val13190 ] Bonjour,Voila j'ai crée un petit programme en C, grâce à la SDL et à dev-c++.Mais, j'ai un problème dans mon code, j'essaye de mettre mon programme en Probleme pour kbhit [ par ChAnGy59 ] Bonjour a tous,Voila mon petit sousis, j'aimerai pouvoir sortir d'une boucle while en "frappant" la touche Q, a l'aide de kbhit. Je voulais savoir si Aidez moi SVP : Verrouillage de la touche "Entrée" du clavier [ par clad1986 ] Bonjour à vous tous, Je tourne sur Win XP Pro avec Microsoft Visual Studio 2003. Je code en C++. Voici mon problème : Dans mon programme, j'ai une c Probleme avec les boucles en C sous code::blocks [ par mauzehahr ] Bonjour, Je débute dans la programmation, je suis actuellement le cours du site du zéro sur le language C. J'utilise code::blocks pour écrire le code


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,713 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales