Explication sur une commande de tempo

Résolu
cs_mkal Messages postés 3 Date d'inscription mercredi 28 décembre 2005 Statut Membre Dernière intervention 30 septembre 2006 - 30 sept. 2006 à 12:42
cs_mkal Messages postés 3 Date d'inscription mercredi 28 décembre 2005 Statut Membre Dernière intervention 30 septembre 2006 - 30 sept. 2006 à 14:33
bonjours voila mon probleme: Mon prof d'info nous a donnée pendant un cours, un code qui realise une temporisation.
le truc c'est que le code n'est pas vraiment clair et le prof n'a pas fournis de reel information dessus.
j'aimerai bien comprendre ce qui ce passe au niveau des "while"s voila merci d'avance.

le code est le suivant:
#define M 2000

void delai(int P) //fonction de tempo   
{
    unsigned int temp=0;
    while(P--)while(--temp%M);
}

6 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
30 sept. 2006 à 13:43
while(P--)while(--temp%M);


<=>


while (P-- != 0)

{

    while((temp-1) % M != 0)

    {

       temp--;

    }

}


A priori, ca peut se réécrire comme ca.
3
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
30 sept. 2006 à 13:45
Ben tant que la condition de la première boucle while (while(P--) n'est pas atteinte on éxécute la deuxième boucle (while(--temp%M) .

++
deck_bsd

[http://deck-bsd.eurower.net]
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
30 sept. 2006 à 12:54
Trace sur papier le déroulement avec delai(2) par exemple et tu verras ce qui se passe, c'est très simple.

ciao...
BruNews, MVP VC++
0
cs_mkal Messages postés 3 Date d'inscription mercredi 28 décembre 2005 Statut Membre Dernière intervention 30 septembre 2006
30 sept. 2006 à 13:32
oups desolé pour l'emplacement, jai reecrit le meme message dans debutant, mais on ne peu pas le suprimer.

[auteurdetail.aspx?ID=39449 BruNews] mon pb est que je ne comprend pas l'ajencement de ces whiles (dans quels ordres on les realisent  ,uand on passe au suivant et aussi l'histoire du --temp%M)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
30 sept. 2006 à 13:53
if(!P) return;
temp = 0;
WHILEP: // while(P--)
 
  // BOUCLE INTERNE RELANCEE AUTANT DE FOIS QUE BOUCLE PRIMAIRE REVIENT
  whileTMP:
    temp--;
    if(temp % M) goto whileTMP;
 
if(--P) goto WHILEP; // while(P--)

ciao...
BruNews, MVP VC++
0
cs_mkal Messages postés 3 Date d'inscription mercredi 28 décembre 2005 Statut Membre Dernière intervention 30 septembre 2006
30 sept. 2006 à 14:33
d'accord jai compris je vous remercie tous pour votre aide sur la syntaxe.

a l'adresse d'un admin encore dsle pour le message en double.
0
Rejoignez-nous