Advertisement
anthonimes

TP4---EXO2-POO

Nov 19th, 2020 (edited)
400
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.81 KB | None | 0 0
  1. /* TP4 --- Exercice 2 */
  2. /* TransformationType.java */
  3. package exo2;
  4.  
  5. public class TransformationType {
  6.     public static void main(String[] args) {
  7.         Double[] tableau = { 1.1, 3.5, 2.0, 5.6, 64.0 };
  8.         EnsTransformable ens = new EnsTransformable(tableau);
  9.         ens.transformer(new Transformation() {
  10.             @Override
  11.             public Object transforme(Object x) {
  12.                 Double d = (Double)x;
  13.                 return String.valueOf(d) ;
  14.             }
  15.         });
  16.         System.out.println(ens);
  17.     }
  18. }
  19.  
  20. /* TransformationMinMaj.java */
  21. package exo2;
  22.  
  23. import java.util.Scanner;
  24.  
  25. public class TransformationMin {
  26.     public static void main(String[] args) {
  27.         String[] tableau = {"Bonjour", "HIER", "Aujourd'hui"};
  28.         EnsTransformable ensemble = new EnsTransformable(tableau);
  29.  
  30.         // Demande à l'utilisateur une saisie au clavier
  31.         Scanner sc = new Scanner(System.in);
  32.         String choix = sc.next();
  33.  
  34.         switch(choix) {
  35.             case "a":
  36.                 Transformation majus = new EnMajuscule();
  37.                 ensemble.transformer(majus);
  38.                 break; /* Sortie du switch */
  39.             case "i":
  40.                 ensemble.transformer(new Transformation() {
  41.                     @Override
  42.                     public Object transforme(Object o) {
  43.                         return ((String) o).toLowerCase();
  44.                     }
  45.                 });
  46.                 break;
  47.             default:
  48.                 System.out.println("Saisie incorrecte");
  49.                 break;
  50.         }
  51.  
  52.         // ATTENTION : choix == "a" n'est pas possible en Java
  53.         /*if(choix.equals("a")) {
  54.             Transformation majus = new EnMajuscule();
  55.             ensemble.transformer(majus);
  56.         }
  57.         else if (choix.equals("i")) {
  58.             ensemble.transformer(new Transformation() {
  59.                 @Override
  60.                 public Object transforme(Object o) {
  61.                     return ((String) o).toLowerCase();
  62.                 }
  63.             });
  64.         }*/
  65.  
  66.         System.out.println(ensemble);
  67.  
  68.     }
  69.  
  70.     public static class EnMinuscule implements Transformation {
  71.         @Override
  72.         public Object transforme(Object o) {
  73.             String tmp = (String)o;
  74.             return (tmp.toLowerCase());
  75.         }
  76.     }
  77.  
  78.     public static class EnMajuscule implements Transformation {
  79.         @Override
  80.         public Object transforme(Object o) {
  81.             String tmp = (String)o;
  82.             return (tmp.toUpperCase());
  83.         }
  84.     }
  85. }
  86.  
  87.  
  88. /* TransformationDouble.java*/
  89. package exo2;
  90.  
  91. public class TransformationDouble {
  92.     public static void main(String[] args) {
  93.         Double[] tableau = { 1.1, 3.5, 2.0, 5.6, 64.0 };
  94.         EnsTransformable ensemble = new EnsTransformable(tableau);
  95.         System.out.println(ensemble);
  96.  
  97.         /* Classe nommée */
  98.         Transformation racine = new RacineCarree();
  99.         ensemble.transformer(racine);
  100.         System.out.println(ensemble);
  101.  
  102.         /* Classe interne anonyme */
  103.         ensemble.transformer(new Transformation() {
  104.             @Override
  105.             public Object transforme(Object o) {
  106.                 Double tmp = (Double)o;
  107.                 return tmp*tmp;
  108.             }
  109.         });
  110.         System.out.println(ensemble);
  111.  
  112.         /* Lambda expression */
  113.         ensemble.transformer(
  114.                 (Object o) -> {return Math.pow((Double)o,3.);}
  115.                 );
  116.         System.out.println(ensemble);
  117.     }
  118.  
  119.     private static class RacineCarree implements Transformation {
  120.         @Override
  121.         public Object transforme(Object o) {
  122.             return Math.sqrt((Double)o);
  123.         }
  124.     }
  125. }
  126.  
  127. /* EnsTransformable.java */
  128. package exo2;
  129.  
  130. public class EnsTransformable {
  131.     private Object[] ensemble;
  132.  
  133.     public EnsTransformable(Object[] ensemble) {
  134.         this.ensemble = new Object[ensemble.length];
  135.         for(int i = 0; i < ensemble.length; i++)
  136.             this.ensemble[i] = ensemble[i];
  137.         //this.ensemble = ensemble;
  138.     }
  139.  
  140.     public void transformer(Transformation f) {
  141.         for(int i = 0; i < this.ensemble.length; i++)
  142.             ensemble[i] = f.transforme(ensemble[i]);
  143.     }
  144.  
  145.     @Override
  146.     public String toString() {
  147.         String result = "";
  148.         for(int i = 0; i < ensemble.length; i++)
  149.             // Affichage des éléments de l'ensemble ligne par ligne
  150.             result = result + ensemble[i] +"\n";
  151.         return result;
  152.     }
  153. }
  154.  
  155.  
  156.  
  157. /* TP4 --- Exercice 3 */
  158. import java.util.Arrays;
  159. import java.util.function.Predicate;
  160.  
  161. public class ExemplePredicateCours {
  162.     public static int[] selectionne(int[] lesValeurs, Predicate<Integer> predicate){
  163.         int[] valeursSelectionnees = new int[lesValeurs.length];
  164.         int nb= 0;
  165.         for (int v : lesValeurs){
  166.             if(predicate.test(v)){
  167.                 valeursSelectionnees[nb++]=v;
  168.             }
  169.         }
  170.         return Arrays.copyOf(valeursSelectionnees,nb);
  171.     }
  172.     public static void main(String[] args) {
  173.         int[] tab={1, -23, 56, -67, 10, -11};
  174.         int[] e1 =ExemplePredicateCours.selectionne(tab, new Predicate<Integer>() {
  175.             @Override
  176.             public boolean test(Integer i) {
  177.                 return i>0;
  178.             }
  179.         });
  180.         System.out.println(Arrays.toString(e1));
  181.         int[] e1bis =selectionne(tab,(Integer i) -> {return i>0;});
  182.         System.out.println(Arrays.toString(e1bis));
  183.  
  184.  
  185.         int[] e2 =ExemplePredicateCours.selectionne(tab, new Predicate<Integer>() {
  186.             @Override
  187.             public boolean test(Integer i) {
  188.                 return i<0;
  189.             }
  190.         });
  191.         System.out.println(Arrays.toString(e2));
  192.         int[] e2bis =selectionne(tab,i -> i<0);
  193.         System.out.println(Arrays.toString(e2bis));
  194.     }
  195. }
  196.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement