Traduction de boucle en c

Fermé
nassim1987 Messages postés 105 Date d'inscription mercredi 25 novembre 2009 Statut Membre Dernière intervention 27 janvier 2014 - 23 janv. 2011 à 15:08
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 24 janv. 2011 à 12:32
Bonjour, je fais une sorte de traduction en langage c du déroulement de deux boucle for qui s'exécute en pseudo parallèle mais dans la réalité ça reste séquentiel.en prenant en compte qu'on peut décaler le démarrage de la deuxième boucle par rapport à la premiére ce décalage est un paramètre de cette nouvelle sorte de boucle et on peut aussi paramétrer le nombre d'itération de chaque boucle.

Vous pouvez m'aider en me disant une méthodologie à suivre ou une maniére cohérente de programmer ça

merci

2 réponses

flo13142 Messages postés 71 Date d'inscription mardi 7 décembre 2010 Statut Membre Dernière intervention 21 février 2011 18
24 janv. 2011 à 11:59
Bonjour,

As-tu regardé du côté des Threads ?
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
24 janv. 2011 à 12:32
Salut.
Les threads peuvent être une solution, mais la gestion de l'attente de l'un par rapport à l'autre peut être une vraie galère.
Supposons que tu ais une boucle en i et une en j.
for (i=0;i<Ni;++i){pleins de truc en i}
et
for (j=0;j<Nj;++j){pleins de truc en j}
Tu ne peux pas imbriqué les deux for, ça ne fonctionnera pas. Je pense que tu peux les fusionner en revanche. Première étape pour simplifier : deux fonctions qui font ce qu'il faut pour chaque corps de boucle fi(int i) et fj(int j) par exemple.
for(i=0,j=0;i<Ni || j<Nj;++i;++j)
{
      if(i>decalage)
          fj(j);
      else
           --j;// decrementation pour compenser celle de la fin de la boucle
      if(i<Ni)
          fi(i);
}

Comme ça le décalage ne fonctionne que dans un sens (la boucle sur i débute en premier) mais ça devrait suffire.
0