/* Manipulations sur une classe couleur        */

public class ManipulationCouleurs {

/* Type agrege de stockage des informations    */
/* relatives a une couleur codee sous la forme */
/* heure, minute, seconde                      */

  static class Couleur {
    short r = 0;
    short v = 0;
    short b = 0; };

/* Programme principal                         */

  public static void main(String [] args) {
    Couleur c = new Couleur();
    double assombrissement;
    Couleur ca = new Couleur();
    double eclaircissement;
    Couleur ce = new Couleur();
    double fa;
    double fe;
    Ecran.afficherln("SVP, r, v & b?");
    c.r = Clavier.saisirShort();
    c.v = Clavier.saisirShort();
    c.b = Clavier.saisirShort();
    Ecran.afficherln("SVP, assombrissement?");
    assombrissement = Clavier.saisirDouble();
    Ecran.afficherln("SVP, eclaircissement?");
    eclaircissement = Clavier.saisirDouble();
    fa = 1.0-assombrissement/100.0;
    ca.r =(short) Math.round(fa*c.r);
    ca.v =(short) Math.round(fa*c.v);
    ca.b =(short) Math.round(fa*c.b);
    fe = 1.0-eclaircissement/100.0;
    ce.r =(short) (255-Math.round(fe*(255-c.r)));
    ce.v =(short) (255-Math.round(fe*(255-c.v)));
    ce.b =(short) (255-Math.round(fe*(255-c.b)));
    Ecran.afficherln("[",c.r,":",c.v,":",c.b,"]");
    Ecran.afficherln("[",ca.r,":",ca.v,":",ca.b,"]");
    Ecran.afficherln("[",ce.r,":",ce.v,":",ce.b,"]");
  }
}