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 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
|
#include <conio.h>
#include <iostream>
using namespace std;
int main (){
int CS[7] = {0, 0, 0, 2, 3, 5, 7}; // Cout de stockage qui commence de mois 3 jusqu'à mois 6
int di[7] = {0, 9, 17, 14, 18, 11, 17}; // Demande de période pour les 6 mois.
int CF[17] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 22, 25, 30, 33, 37, 40}; // La fabrication Possible entre 10 et 16.
int R[7][7];
int p = 6; // Periode de 6 mois
int Xmax=16; // La production possible, Le Maximal égale à 16 equipement.
int Xmin=10; // La production possible, Le Minimal égale à 10 equipement.
int Sinit=3; // Le stock initial pour le periode 1 égale à 3 unité.
int Smin=3; // Le stock Minimal pour la periode 2 égale à 3 unité.
int Smax=6; // Le stock Maximal pour la periode 2 égale à 6 unité.
int Kmin, Kmax;
int M, N, C;
// periode 1
for (int i=1;i<2;i++){
cout<<"\n periode : "<<i<<endl;
//Pour l de SMin à SMax faire
for (int l=Smin;l<=Smax;l++){
cout<<"\n l de : "<<l<<endl;
M = di[i]+l-Xmax;
N = di[i]+l-Xmin;
// Calculer Kmax
if(M > Sinit){
cout<<"\n Kmin est : "<<M<<endl;
}
else {
Kmin = Sinit;
cout<<"\n Kmin est : "<<Kmin<<endl;
}
// Calculer Kmin
if(N < Sinit){
cout<<"\n Kmax est : "<<N<<endl;
}
else {
Kmax = Sinit;
cout<<"\n Kmax est : "<<Kmax<<endl;
}
// La, Pour calculer le Cout(Vi,l), c'est obligatoire que KMax = KMin
if(Kmax < Kmin){
cout<<"\n\tCout(V"<<i<<","<<l<<") = Ce cout ne peut pas etre calculer, Il est jusqu'à l'infinis "<<endl;
}
else if(Kmax > Kmin){
cout<<"\n\tCout(V"<<i<<","<<l<<") = Ce cout ne peut pas etre calculer, Il est jusqu'à l'infinis "<<endl;
}
else{
R[i][l] = CS[l]+CF[l+di[i]-Sinit];
cout<<"\n\tCout(V"<<i<<","<<l<<") = "<<R[i][l]<<endl;
}
}
}
// Le Periode 1 marche bien, 0 error
// Periode 2 à p faire
for (int i=2;i<=p;i++){
cout<<"\n periode : "<<i<<endl;
//Pour l de SMin à SMax faire
for (int l=3;l<7;l++) {
cout<<"\n l de : "<<l<<endl;
M = di[i]+l-Xmax;
N = di[i]+l-Xmin;
// Calculer Kmax
if(M > Smin){
cout<<"\n Kmin est : "<<M<<endl;
}
else {
Kmin = Smin;
cout<<"\n Kmin est : "<<Kmin<<endl;
}
// Calculer Kmin
if(N < Smax){
cout<<"\n Kmax est : "<<N<<endl;
}
else{
Kmax = Smax;
cout<<"\n Kmax est : "<<Kmax<<endl;
}
// jusqu'à la , tous est trés bien
/// Le boucle K, mon probleme à ce niveau, il commence toujours de 3 [Cout(Vi,3)]
//, il ne capte pas le vrais valeur minimal de Kmin
// Pour la si Kmax > Kmin, le boucle est normal == for (int k=Kmin;k<=Kmax;k++)
if(Kmax > Kmin){
for (int k=Kmin;k<=Kmax;k++){
R[i][l] = CS[l]+R[i-1][k]+CF[l+di[i]-k];
C = R[i][l];
cout<<"\n\tCout(V"<<i<<","<<k<<") = "<<C<<" = "<<CS[l]<<"+"<<R[i-1][k]<<"+"<<CF[l+di[i]-k]<<endl;
}
}
// Pour la si Kmax = Kmin, il doit calculer une seule résultat de K.
else if(Kmax = Kmin){
for (int k=Kmin;k<=Kmax;k++){
R[i][l] = CS[l]+R[i-1][k]+CF[l+di[i]-k];
C = R[i][l];
cout<<"\n\tCout(V"<<i<<","<<k<<") = "<<C<<" = "<<CS[l]<<"+"<<R[i-1][k]<<"+"<<CF[l+di[i]-k]<<endl;
}
}
// plus que Kmin > Kmax , c'est jusqu'à l'infinis , ce valeur ne peut pas etre calculer
else{
cout<<"\n\tCout(V"<<i<<","<<l<<") = Ce cout ne peut pas etre calculer, Il est jusqu'à l'infinis "<<endl;
}
}
}
getch();
} |
Partager