From 3108dea35f8ff173726f209d6168757d22ce67b7 Mon Sep 17 00:00:00 2001 From: nathanpasdutout Date: Fri, 5 Dec 2025 10:40:31 +0100 Subject: [PATCH] DEV3.2 TP'S --- DEV/DEV3.2/TP01/Exercise1/GenericList.java | 33 +++++++++++++++++ DEV/DEV3.2/TP01/Exercise2/ArrayMethods.java | 10 ++++++ DEV/DEV3.2/TP02/Exercise1/Recursion.java | 27 ++++++++++++++ DEV/DEV3.2/TP02/Exercise1/answer.txt | 14 ++++++++ DEV/DEV3.2/TP02/Exercise2/ArrayRecursion.java | 35 +++++++++++++++++++ 5 files changed, 119 insertions(+) create mode 100644 DEV/DEV3.2/TP01/Exercise1/GenericList.java create mode 100644 DEV/DEV3.2/TP01/Exercise2/ArrayMethods.java create mode 100644 DEV/DEV3.2/TP02/Exercise1/Recursion.java create mode 100644 DEV/DEV3.2/TP02/Exercise1/answer.txt create mode 100644 DEV/DEV3.2/TP02/Exercise2/ArrayRecursion.java diff --git a/DEV/DEV3.2/TP01/Exercise1/GenericList.java b/DEV/DEV3.2/TP01/Exercise1/GenericList.java new file mode 100644 index 0000000..d380231 --- /dev/null +++ b/DEV/DEV3.2/TP01/Exercise1/GenericList.java @@ -0,0 +1,33 @@ +import java.util.ArrayList; + +class GenericList { + public static void main(String[] args) { + ArrayList integerList = new ArrayList<>(); // Peut recevoir des Integer + integerList.add(1); + integerList.add(2); + integerList.add(3); + + ArrayList floatList = new ArrayList<>(); // Peut recevoir des Float + floatList.add(1.1f); + floatList.add(1.2f); + floatList.add(1.3f); + + long longNumber = 1000000000L; + float floatNumber = 5.3f; + int integerNumber = 10; + ArrayList numberList = new ArrayList<>(); // Peut recevoir des Float, Integer et Long + numberList.add(longNumber); + numberList.add(floatNumber); + numberList.add(integerNumber); + + System.out.println(integerList.toString()); + System.out.println(floatList.toString()); + System.out.println(numberList.toString()); + + // La méthode addAll() copie le contenu d'une collection dans la collection courante. + // Le type de la collection doit être de type E ou extends E. + // Ici, les class Float, Integer et Long extends de Number, donc on peut faire les opérations suivantes : + // - numberList.addAll(integerList); + // - numberList.addAll(floatList); + } +} \ No newline at end of file diff --git a/DEV/DEV3.2/TP01/Exercise2/ArrayMethods.java b/DEV/DEV3.2/TP01/Exercise2/ArrayMethods.java new file mode 100644 index 0000000..9eb299e --- /dev/null +++ b/DEV/DEV3.2/TP01/Exercise2/ArrayMethods.java @@ -0,0 +1,10 @@ +import java.util.Arrays; + +public class ArrayMethods { + + public static void main(String[] args) { + System.out.println(args.toString()); // a) + System.out.println(Arrays.copyOf(args, 5)); // b) + + } +} diff --git a/DEV/DEV3.2/TP02/Exercise1/Recursion.java b/DEV/DEV3.2/TP02/Exercise1/Recursion.java new file mode 100644 index 0000000..d9ccbe9 --- /dev/null +++ b/DEV/DEV3.2/TP02/Exercise1/Recursion.java @@ -0,0 +1,27 @@ +public class Recursion { + + public static void main(String[] args) { + if(args.length > 0) { + displayFactorial(Integer.parseInt(args[0])); + return; + } + + System.out.println("Usage: java Recursion "); + } + + public static void displayFactorial(int n) { + System.out.println(n + "! = " + factorial(n, 0)); + } + + private static int factorial(int n, int count) { + count++; + System.out.println("n = " + n + " | count = " + count); + + if(n == 0) { + //Thread.dumpStack(); + return 1; + } + + return n * factorial(n - 1, count); + } +} diff --git a/DEV/DEV3.2/TP02/Exercise1/answer.txt b/DEV/DEV3.2/TP02/Exercise1/answer.txt new file mode 100644 index 0000000..537a934 --- /dev/null +++ b/DEV/DEV3.2/TP02/Exercise1/answer.txt @@ -0,0 +1,14 @@ +Avec utilisation de dumpStack() : +On test pour factoriel de 3, on y voit bien 4 appels : +- 3 qui appellent le cas réussit +- 1 qui appelle le cas de base + +nathanpasdutout@Macbook-Air-Nathan Exercise1 % java Recursion 3 +java.lang.Exception: Stack trace + at java.base/java.lang.Thread.dumpStack(Thread.java:2209) + at Recursion.factorial(Recursion.java:18) + at Recursion.factorial(Recursion.java:22) + at Recursion.factorial(Recursion.java:22) + at Recursion.factorial(Recursion.java:22) + at Recursion.displayFactorial(Recursion.java:13) + at Recursion.main(Recursion.java:5) \ No newline at end of file diff --git a/DEV/DEV3.2/TP02/Exercise2/ArrayRecursion.java b/DEV/DEV3.2/TP02/Exercise2/ArrayRecursion.java new file mode 100644 index 0000000..c5ddb82 --- /dev/null +++ b/DEV/DEV3.2/TP02/Exercise2/ArrayRecursion.java @@ -0,0 +1,35 @@ +public class ArrayRecursion { + + public static void main(String[] args) { + displayNumberOfPaireNumber(convertCommandArray(args)); + } + + public static int[] convertCommandArray(String[] args) { + return convertArray(args, 0, new int[args.length]); + } + + private static int[] convertArray(String[] args, int index, int[] integerArray) { + if(index >= args.length) { + return integerArray; + } + + integerArray[index] = Integer.parseInt(args[index]); + return convertArray(args, index + 1, integerArray); + } + + public static void displayNumberOfPaireNumber(int[] array) { + System.out.println("Nombre de nombres paires : " + getNumberOfPaireNumber(array, 0)); + } + + private static int getNumberOfPaireNumber(int[] array, int index) { + if(index >= array.length) { + return 0; + } + + if(array[index] % 2 == 0) { + return getNumberOfPaireNumber(array, index + 1) + 1; + } + + return getNumberOfPaireNumber(array, index + 1); + } +}