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