Le fichier source est ${UPS_HOME}/upssdk/demo/${UPS_LANGUAGE}/optimiser.upl.
upscmp Source=optimiser.upl
optimiser
upssng Source=optimiser.upl
Source Composant "Exemple de l'emploi de l'optimisation de code" Version 4.0.0;
Procedure Optimiser(FactoriserChaine, FactoriserCode) MaProcedure1()
/******************************************************************/
Variable
/******/
   I : Entier;
   J : Entier;
   A : Caractere;
   B : Caractere;
   C : Caractere;
   D : Caractere;
Debut
A="A";
B="B";
Ecran.Ecrire("MaProcedure1()");
Pour I=1 JusquA 3 Faire
   Ecran.Ecrire("I="+Caractere(I, "#"));
   Ecran.Ecrire("---");
   Pour J=I+10 JusquA I+10+3 Faire
   
      Ecran.Ecrire("J="+Caractere(J, "#"));
      D="D="+B+A+";";
   
Fin Pour
   C="C="+A+B+";";
   Ecran.Ecrire(");
Fin Pour
Ecran.Ecrire(C);
Ecran.Ecrire(D);
Ecran.Ecrire(");
Fin Procedure
Procedure Optimiser(NePasFactoriserChaine, FactoriserCode) MaProcedure2()
/***********************************************************************/
Variable
/******/
   I : Entier;
   J : Entier;
   A : Caractere;
   B : Caractere;
   C : Caractere;
   D : Caractere;
Debut
A="A";
B="B";
Ecran.Ecrire("MaProcedure2()");
Pour I=1 JusquA 3 Faire
   Ecran.Ecrire("I="+Caractere(I, "#"));
   Ecran.Ecrire("---");
   Pour J=I+10 JusquA I+10+3 Faire
   
      Ecran.Ecrire("J="+Caractere(J, "#"));
      D="D="+B+A+";";
   
Fin Pour
   C="C="+A+B+";";
   Ecran.Ecrire(");
Fin Pour
Ecran.Ecrire(C);
Ecran.Ecrire(D);
Ecran.Ecrire(");
Fin Procedure
Procedure Optimiser(FactoriserChaine, NePasFactoriserCode) MaProcedure3()
/***********************************************************************/
Variable
/******/
   I : Entier;
   J : Entier;
   A : Caractere;
   B : Caractere;
   C : Caractere;
   D : Caractere;
Debut
A="A";
B="B";
Ecran.Ecrire("MaProcedure3()");
Pour I=1 JusquA 3 Faire
   Ecran.Ecrire("I="+Caractere(I, "#"));
   Ecran.Ecrire("---");
   Pour J=I+10 JusquA I+10+3 Faire
   
      Ecran.Ecrire("J="+Caractere(J, "#"));
      D="D="+B+A+";";
   
Fin Pour
   C="C="+A+B+";";
   Ecran.Ecrire(");
Fin Pour
Ecran.Ecrire(C);
Ecran.Ecrire(D);
Ecran.Ecrire(");
Fin Procedure
Procedure Optimiser(NePasFactoriserChaine, NePasFactoriserCode) MaProcedure4()
/****************************************************************************/
Variable
/******/
   I : Entier;
   J : Entier;
   A : Caractere;
   B : Caractere;
   C : Caractere;
   D : Caractere;
Debut
A="A";
B="B";
Ecran.Ecrire("MaProcedure4()");
Pour I=1 JusquA 3 Faire
   Ecran.Ecrire("I="+Caractere(I, "#"));
   Ecran.Ecrire("---");
   Pour J=I+10 JusquA I+10+3 Faire
   
      Ecran.Ecrire("J="+Caractere(J, "#"));
      D="D="+B+A+";";
   
Fin Pour
   C="C="+A+B+";";
   Ecran.Ecrire(");
Fin Pour
Ecran.Ecrire(C);
Ecran.Ecrire(D);
Ecran.Ecrire(");
Fin Procedure
Principal
/*******/
Debut
MaProcedure1();
MaProcedure2();
MaProcedure3();
MaProcedure4();
Fin Principal