forked from ing2-paris-classroom-2023-2024/optimisation-d-une-ligne-d-assemblage-ing2-tg-2023-2024-14-4
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathExclusions.c
90 lines (85 loc) · 3.07 KB
/
Exclusions.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <stdio.h>
#include "Exclusions.h"
int TestExclusion(int Action1,int Action2)
{
FILE *listeExclusions;
int nbExclusions=0;
int nb1;
int nb2;
int actions;
int ActionCherchee=1; // Variable où on cherche les exclusions de chaque action
int tabExclusions[36][35]; // Tableau qui stocke 36 lignes car on utilise pas la ligne 0 qui correspond aux nombres d'actions et 35 qui correspond aux nombres d'exclusions de chaque actions qui est au maximum de 34 plus le nombres d'exclusions de l'action.
for(int actions=0;actions<=35;actions++)
{
for(int j=0;j<=34;j++)
{
tabExclusions[actions][j]=0; // On remplit le tableau avec des 0 pour pas avoir des valeurs pourris
}
}
if(listeExclusions==NULL)
{
printf("Pb d'affichage\n");
}
while(ActionCherchee<=35) // On parcours les 35 actions
{
listeExclusions=fopen("exclusions.txt","r");
while(feof(listeExclusions)==0)
{
fscanf(listeExclusions,"%d",&nb1);
fscanf(listeExclusions,"%d",&nb2);
if(ActionCherchee==nb1) // Si dans le fichier texte, on a l'action qu'on cherche dans notre ligne correspondante
{
tabExclusions[ActionCherchee][0]++;
tabExclusions[ActionCherchee][tabExclusions[ActionCherchee][0]]=nb2; // On met nb2 dans la 1ère colonne disponible de la ligne du numéro d'exclusion.
}
}
ActionCherchee++; // On change la valeur de l'action
}
fclose(listeExclusions);
for(actions=0;actions<=35;actions++)
{
printf("Action : %d : ",actions); // Prendre les valeurs
for(int j=0;j<=34;j++)
{
printf("%d ",tabExclusions[actions][j]);
}
printf("\n");
}
for(actions=1;actions<=34;actions++)
{
if(Action2==tabExclusions[Action1][actions]) // Il teste si 2 actions peuvent être ensembles, si il y'a un de ces chiffres dans la ligne alors il ne peuvent pas être ensemble.
{
return 0;
}
}
for(actions=1;actions<=34;actions++)
{
if(Action1==tabExclusions[Action2][actions]) // Il teste si 2 actions peuvent être ensembles ex :
{
return 0;
}
}
return 1;
}
int Exclusion()
{
t_assemblage Voiture;
t_station *Stations;
actions *Actions;
Stations=(t_station*)malloc(sizeof(t_station)*1);
if(Stations->station==NULL)
printf("Pb de creation de stations\n");
printf("Nombre total de stations: %d\n",Stations->station);
int valeurAction1=31;
int valeurAction2=10;
if(TestExclusion(valeurAction1,valeurAction2)==0)
{
printf("Les actions %d et %d ne peuvent pas se situer dans la meme station.\n",valeurAction1,valeurAction2);
}
else
{
printf("Les actions %d et %d peuvent se situer dans la meme station.\n",valeurAction1,valeurAction2);
}
printf("Bonjour\n");
return 0;
}