Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Probleme compteur [ Archives / Au secours ] (un4given)

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

1 2

Cette discussion est classé 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 Probleme de fenetrage avec MFC VC++ [ par MaDC ] Salut tlm!J'dois faire une fenetre (identification) qui s'ouvre a l'initialisation de mon application MFC dans le constructeur de mon appliView. Pour [URGENT] Probleme CListCtrl [ par titi4659 ] Bonjour,J'ai un tres gros problème avec une CListCtrl.Je souhaiterai récupérer les élements sélectionnés de cette CListCtrl lors de l'appui sur la tou Probleme compilation Dev-c++ [ par Darksnakes ] Bonjour tout le monde,Voilà, je débute en c++. J'ai un tp à faire concernant les classes mai j'ai un probleme lors de la compilation.j'ai trois fichie


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.