pas sur de structure de données du résultat du problème
2 participants
Page 1 sur 1
pas sur de structure de données du résultat du problème
Salut,
Je dois écrire un programme en c qui permet de placer 6 taches sur 3 machines tel que une fois la tache est terminée placer la tache suivante sur la machine la plus disponible de façon à minimiser le temps totale d'exécution .
On connait:
pour la tache:
-sa durée
-sa date date de début souhaité
pour les machine :
- sa date de disponibilité
à t=0, date de disponibilité =0
à t, date de disponibilité de la machine est date de début prévu de la tache+sa durée d'exécution.
Mon algorithme fonctionne comme suit :
1-déterminer la liste des taches par ordre croissant de leur durée
2-affecter les 3 premières taches de la listes respectivement sur m1, m2 et m3.
3-calculer la date de fin de chaque tache qui est égale à la date de disponibilité de machine :durée de tache+date de début souhaité
4-affecter les taches restantes de la liste respectivement sur la machine la plus disponible tant que la liste des taches est <>0
voici mon code :
En vous remerciant d'avance..
Je dois écrire un programme en c qui permet de placer 6 taches sur 3 machines tel que une fois la tache est terminée placer la tache suivante sur la machine la plus disponible de façon à minimiser le temps totale d'exécution .
On connait:
pour la tache:
-sa durée
-sa date date de début souhaité
pour les machine :
- sa date de disponibilité
à t=0, date de disponibilité =0
à t, date de disponibilité de la machine est date de début prévu de la tache+sa durée d'exécution.
Mon algorithme fonctionne comme suit :
1-déterminer la liste des taches par ordre croissant de leur durée
2-affecter les 3 premières taches de la listes respectivement sur m1, m2 et m3.
3-calculer la date de fin de chaque tache qui est égale à la date de disponibilité de machine :durée de tache+date de début souhaité
4-affecter les taches restantes de la liste respectivement sur la machine la plus disponible tant que la liste des taches est <>0
voici mon code :
- Code:
[code][/code]
#include <stdio.h>
#include <stdlib.h>
#define booleen int
#define TRUE 1
#define FALSE 0
typedef struct
{
int release_date;
int duree;
int due_date;
}tache;
void selection(tache job[], int *tab_indices, int nbrejob)
{
int i, min, j ;
tache x;
if (tab_indices)
for (i=0;i<nbrejob;i++)
tab_indices[i] = i;
for(i = 0 ; i < nbrejob-1 ; i++)
{
min = i;
for(j = i+1 ; j < nbrejob ; j++)
if(job[j].duree < job[min].duree)
min = j;
if(min != i)
{
x = job[i];
job[i] = job[min];
job[min] = x;
int indice = tab_indices[i];
tab_indices[i] = tab_indices[min];
tab_indices[min] = indice;
}
}
}
int main()
{
tache job[6]={{0,10,18},{3,6,15},{2,4,22},{4,9,23},{6,2,14},{5,6,12}};
int k;
booleen t; /*date de disponibilité des machines*/
int tab_indices[6];
selection(job,tab_indices, 6);
printf("****voici les durees ordonnancees par ordre croissant :\n");
for (k=0;k<6;k++)
printf("%d",job[k].duree);
printf("\n");
printf("**** voici priority list:\n");
for(k=0;k<6;k++)
{
printf("%d",tab_indices[k]);
}
printf("\n");
if(t==FALSE)
printf("placer les trois premières jobs respectivement sur m1, m2 et m3");
else
printf("placer le autres taches restantes respectivement sur la machine la plus disponible(disponibilite :duree+date de debut souhaite ' release_date')");
return 0;
}
En vous remerciant d'avance..
pascal- Bavard
- Messages : 20
Date d'inscription : 20/08/2009
Re: pas sur de structure de données du résultat du problème
Dans main(), la valeur de t est indéterminée. Le resultat du test de t est indéfini.
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|