begin process at 2012 05 28 14:30:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

2 boucles qui ne veulent pas marcher en mm tps


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

2 boucles qui ne veulent pas marcher en mm tps

samedi 22 avril 2006 à 15:55:06 | 2 boucles qui ne veulent pas marcher en mm tps

florian1121

Bonjour, g un probleme avec deux boucles que je n'arrive pas a faire marcher simultanément!!
C soit l'une soit l'autre mais pas les deux en meme temps, alors qu'il le faut!!
Auriez vous une idée pour y remédier???
Voici mon programme:

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
void clrscr()/*fonction qui recupere le code acii des touches*/
{
    int c;
    flushall();
    c= getch();
    if(c==0)
{
   c= getch();
}
getch();
}

void
time()/*fonction qui effectue un decompte du temps en seconde*/
{
   int i,n;
   n=1000;
   i=clock_t()/CLOCKS_PER_SEC;
      for(i=0;i<n;i++)
       {
          system(
"cls");
          printf(
"%d\n",i);
          _sleep(1000);
       }
}


void
main()
{
   int variable=0;
   char touche;
   time();
/* Premier boucle*/
   do/*deuxieme boucle permettant d'associer a l'appui des fleches le changement de la variable*/
      {
           fflush(stdin);
           touche = getch();
          clrscr(); 
           switch(touche)
               {
                   case 72 : system("cls");/* fleche du haut détectée (valeur ASCII) */
                                    variable += 10; /* augmentation de la variable */
                                    printf("La voiture roule à %ikm/h", variable);
                                     break;
                   case 80: system("cls"); /* fleche du bas détectée */
                                  variable -= 10; /*diminution de la variable*/
                                   printf("La voiture roule à %ikm/h", variable);
                                  break;
                }
        }
while(touche!=13); /* tant qu'on appuie pas sur entrée, on boucle */
}

samedi 22 avril 2006 à 16:01:12 | Re : 2 boucles qui ne veulent pas marcher en mm tps

BruNews

Administrateur CodeS-SourceS
Faut mettre chaque boucle dans un thread séparé.

ciao...
BruNews, MVP VC++
samedi 22 avril 2006 à 16:04:38 | Re : 2 boucles qui ne veulent pas marcher en mm tps

florian1121

Merci de repondre si vite, mais je suis debuitant et je ne connait pas les thread!!
pourrait tu m'explique comment met-on chaque boucle dans un thread séparer, stp!!!! 
samedi 22 avril 2006 à 16:11:51 | Re : 2 boucles qui ne veulent pas marcher en mm tps

BruNews

Administrateur CodeS-SourceS
Sous Windows:
voir CreateThread() dans MSDN et Richter:
[ Lien ]
[ Lien ]

ciao...
BruNews, MVP VC++
samedi 22 avril 2006 à 16:19:47 | Re : 2 boucles qui ne veulent pas marcher en mm tps

florian1121

IL n'y a qu'un seul des deux liens qui s'ouvre et je ne trouve pas!!!
samedi 22 avril 2006 à 16:32:17 | Re : 2 boucles qui ne veulent pas marcher en mm tps

BruNews

Administrateur CodeS-SourceS
Les 2 liens sont bons, enregistre sur disque dur et dézippe ensuite.
Threads, chapitres 6 à 11 inclus.

ciao...
BruNews, MVP VC++
samedi 22 avril 2006 à 16:48:34 | Re : 2 boucles qui ne veulent pas marcher en mm tps

florian1121

C gentil de tas part, mais le manuel tt en anglais c pas trop mon truc!! deja qu'en francais g du mal en info!!!
Ce que je cherche exactement c a faire demarré de 0 le decompte du temps chaque fois que j'appuit sur une fleche!!
Saurait tu coment faire??
C un projet pour mes étude et le temps presse!!
samedi 22 avril 2006 à 18:03:10 | Re : 2 boucles qui ne veulent pas marcher en mm tps

MuPuF

Bon explications, un programme classique n'a qu'une thread, cela veut dire qu'il ne peut pas faire plus de une chose a la fois.
Avec 2 threads on peut en faire 2 à la fois mais faut synchroniser c'est le gros bordel.

Pour ce dont tu as besoin il y a une solution trés simple en mono-thread.
Windows integre une fonction qui s'appelle GetTickCount, elle compte le nb de milisecondes qui se sont écoulés depuis le lancement de l'OS.
Donc, quand on appuis sur une touche, il recupere ce temps. Ensuite pour recuperer le temps qu'il c'est passé depuis cet appuis, tu fais la soustraction entre le nouveau résultat de GetTickCount et l'ancien que tu avais stocké dans une variable.

J'ai été clair ?
samedi 22 avril 2006 à 18:07:04 | Re : 2 boucles qui ne veulent pas marcher en mm tps

florian1121

ok merci, je vais essayer ca !!! sinon c clair, lol!!!
cettefonction est dans les #include ?

samedi 22 avril 2006 à 18:07:50 | Re : 2 boucles qui ne veulent pas marcher en mm tps

baby3378

lui je sais pas, mais moi j'ai tout comprit ;D-->merci beaucoup

1 2

Cette discussion est classée dans : variable, include, touche, getch, boucles


Répondre à ce message

Sujets en rapport avec ce message

Question sur Getch() et retour chariot [ par KutaJack ] Bonjour Je suis débutant en C++ et j'utilise getch() avec kbhit() suivit d'un switch pour pouvoir faire tel ou tel action en fonction de la touche ap probleme getch() + touches flechées du clavier [ par smirnoff ice ] Bonjour tout le monde.J'ai un petit souci, je suis débutant en c, et je n'ai pas trouver de solution pour remedier à ce problème.J'aimerai savoir comm [BC++]getch() kbhit() Y EN A PAS UNE AUTRE?? [ par idk ] J'ai un probleme! existe t'il une fonction qui dit si une touche du clavier et pressé et en meme tmps qui prenne le code de cette touche?Un peu pres c problème avec getche( ) [ par juancho2786 ] Bonsoir tout le monde et bonne année.Je voulais juste savoir pourquoi la fonction getche() ( pour sauter le ) ne marche pas chez moi? J'utilise Micro variable aleatoire entre 0 et 1 [ par khadija333 ] salut tout le monde,j'ai essayé de generer une variable reelle aléatoire entre 0 et 1 en langage C mais elle me donne toujours o.ooooo je ne sais pas probleme avec getch() ds une bcle qui teste le tps ... [ par azerothkeeper ] d abbord une source simplifiee de mon probleme:#include #include #include using namespace std;int main(){ int x; time_t tps1,tps2; while(true)// Je n'arrive pas a créer une variable aléatoire !!! [ par daikyo ] Bonjour a tous, j'ai dévelopé un petit jeu ou l'on doit trouver un nombre entre 1 er 100 mais ce nombre (ici la variable Nb1) a trouver je souhaiterai supprimer un variable [ par Nagalta ] Bonjour je suis débutant en c++J'ai visiblement un probleme de memory leak dans mon programme.visiblement cela vient du fait que je reatribut des vale détection d'une touche clavier sans arret [ par benorde33 ] Bonjour, Je suis en train de développer un programme en C (console Windows) permettant d'activer des sorties et réceptionner l'état de plusieurs entr Compilation : edition de liens [ par kenshin28 ] Bonjour à tous, Je travaille avec Qt et me suis fait un petit widget permettant la saisie d'une clé d'enregistrement. Etant donné que le code doit ê


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 1,326 sec (3)

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