p4 sans affichages

master
parent bdade39efd
commit 2ab7fc5464

@ -1 +1,38 @@
#include "../includes/main.h"
void traiterTaches(Tache **tabTache, int p_tmax)
{
int i;
int dateCourante;
ListeAttente *file;
Tache *tacheCourante;
Liste successeurs;
Tache *successeur;
file = NULL;
initialiserFileAttente(tabTache, p_tmax, &file);
while (!estVide(file))
{
tacheCourante = defiler(&file);
dateCourante = tacheCourante->dateDebut;
successeurs = tacheCourante->succ;
while (successeurs)
{
successeur = trouverTache(tabTache, p_tmax, successeurs->tache);
successeur->dateDebut = max(successeur->dateDebut, dateCourante + tacheCourante->duree);
successeur->nbPred--;
if (successeur->nbPred == 0)
enfiler(&file, successeur);
successeurs = successeurs->nxt;
}
}
for (i = 0; i < p_tmax; i++)
{
if (tabTache[i]->nbPred > 0)
{
printf("toutes les taches n'ont pas ete executees");
exit(1);
}
}
}

@ -27,6 +27,15 @@ Liste newListe(void)
return NULL;
}
//file
void initialiserFileAttente(Tache **tabTache, int nbTaches, ListeAttente **fileAttente)
{
for (int i = 0; i < nbTaches; i++)
if (tabTache[i]->nbPred == 0)
enfiler(fileAttente, tabTache[i]);
}
/*------------verifications------------*/
// Verifie l'integrite d'une liste de devis
@ -211,7 +220,7 @@ Liste lstSucc(char travaux[], Precedence prec[], int tlog)
trace("lstSucc");
int i;
Liste succ;
succ = newListe();
for (i=0; i<tlog; i++)
if(strcmp(travaux, prec[i].travauxPrec)==0)

Loading…
Cancel
Save