[C] Organisation séquentielle Logique

Organisation séquentielle Logique [C] - C - Programmation

Marsh Posté le 11-03-2006 à 12:17:40    

Bonjour à tous !  
 
Je suis confronté à un problème pour un travail que je dois réaliser en C.
Il s'agit de créer un programme de gestion d'un club de kata (bidon)
 
Dans ce programme, je dois pouvoir ajouter des compétitions de kata avec la méthode séquentielle logique sur la date
 
exemple :  
 

Code :
  1. id      date        suiv.
  2. --------------------
  3. 1     6/6/2006    2
  4. 2     7/6/2006   3
  5. 3     10/7/2007  *
  6. 4     4/4/2006   1


 
voila en gros, je dois ajouter des compétitions et elles doivent s'insérer au bon endroit.
 
J'ai fait un bout de code, malheureusement, il pose problème, certains ajouts ne marchent pas
 
Le voici :
 
pto : pointeur qui pointe sur la date la plus petite (pointeur de tete occuppée)
ptl : pointeur qui pointe sur la premiere case libre
 
 

Code :
  1. //CHAINAGE
  2. pcomp->pos=pindcomp->ptl;
  3. enregcomp=pindcomp->pto;
  4. ptl=pindcomp->ptl;
  5. t=0;
  6. fin=0;
  7. do
  8. {
  9.  if((pcomp)->date.a>(pdeb+enregcomp)->date.a)
  10.  {
  11.   g=1;
  12.  }
  13.  else
  14.  {
  15.   if((pcomp)->date.a<(pdeb+enregcomp)->date.a)
  16.   {
  17.    g=0;
  18.   }
  19.   else
  20.   {
  21.    if((pcomp)->date.m>(pdeb+enregcomp)->date.m)
  22.    {
  23.     g=1;
  24.    }
  25.    else
  26.    {
  27.     if((pcomp)->date.m<(pdeb+enregcomp)->date.m)
  28.     {
  29.      g=0;
  30.     }
  31.     else
  32.     {
  33.      if((pcomp)->date.j>(pdeb+enregcomp)->date.j)
  34.      {
  35.       g=1;
  36.      }
  37.      else
  38.      {
  39.       if((pcomp)->date.j<(pdeb+enregcomp)->date.j)
  40.       {
  41.        g=0;
  42.       }
  43.       else
  44.       {
  45.        g=0;
  46.       }
  47.      }
  48.     }
  49.    }
  50.   }
  51.  }
  52. if(g==0) 
  53. {
  54.  if(t==0) 
  55.  {
  56.   (pcomp)->pointeur=enregcomp;
  57.   pindcomp->pto=ptl;
  58.   pindcomp->ptl++;
  59.   fin=1;
  60.  }
  61.  else
  62.  {
  63.   (pdeb+enregprec)->pointeur=ptl;
  64.   (pcomp)->pointeur=enregcomp;
  65.   pindcomp->ptl++;
  66.   fin=1;
  67.  }
  68. }
  69. else
  70. {
  71.  if((pdeb+enregcomp)->pointeur==-1)
  72.  {
  73.   (pdeb+enregcomp)->pointeur=ptl;
  74.   (pcomp)->pointeur=-1;
  75.   fin=1;
  76.  }
  77.  else
  78.  {
  79.   enregprec=enregcomp;
  80.   enregcomp=(pdeb+enregcomp)->pointeur;
  81.   fin=0;
  82.  }
  83. }
  84. t=1;
  85. }while(fin==0);


J'espere que j'ai pas été trop flou, sinon je reviens tantot pour les explications
 
Merci de votre aide ...


Message édité par geforce_11 le 11-03-2006 à 12:18:39
Reply

Marsh Posté le 11-03-2006 à 12:17:40   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed