From b65325911bc8a258f70a8b8c5db47622736cd84e Mon Sep 17 00:00:00 2001 From: Meutel Date: Mon, 17 Jun 2019 18:47:17 +0200 Subject: [PATCH] Exercice nombres Romains --- Exercices.md | 10 +++++++++- Romain.java | 15 +++++++++++++++ utils/Utils.java | 28 ++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 Romain.java diff --git a/Exercices.md b/Exercices.md index 0496fdb..33997eb 100644 --- a/Exercices.md +++ b/Exercices.md @@ -143,15 +143,23 @@ Il s’agit d’une suite de nombres dans laquelle tout nombre (à partir du tro Écrire ensuite une solution avec une fonction récursive. +=> Fibonacci.java + ## Exercice 10 +Convertir un nombre romain en entier (avec "chiffre" romains I, V et X). + +=> Romain.java + +## Exercice 11 + Chiffre de César: Le texte chiffré s'obtient en remplaçant chaque lettre du texte clair original par une lettre à distance fixe, toujours du même côté, dans l'ordre de l'alphabet. Pour les dernières lettres (dans le cas d'un décalage à droite), on reprend au début. Par exemple avec un décalage de 3 vers la droite, A est remplacé par D, B devient E, et ainsi jusqu'à W qui devient Z, puis X devient A etc. => CesarChiffre.java CesarDechiffre.java -## Exercice 11 +## Exercice 12 Tester si un mot est un palindrome. Un palindrome est un mot qui peut se lire dans les 2 sens: été, ici, colloc diff --git a/Romain.java b/Romain.java new file mode 100644 index 0000000..a3e8441 --- /dev/null +++ b/Romain.java @@ -0,0 +1,15 @@ +import static utils.Utils.*; + +public class Romain { + + public static final void main(String[] args) { + afficher("Conversion nombre romains (I à X)"); + + testRomains(Romain::convertirEnDecimal); + } + + public static int convertirEnDecimal(char[] romain) { + return 0; + } + +} diff --git a/utils/Utils.java b/utils/Utils.java index cc35def..9d9614c 100644 --- a/utils/Utils.java +++ b/utils/Utils.java @@ -1,5 +1,6 @@ package utils; +import java.util.Map; import java.util.List; import java.util.Arrays; import java.util.stream.Collectors; @@ -9,6 +10,19 @@ import java.util.function.BiFunction; public class Utils { + public static Map ROMAINS = Map.of( + "I", 1, + "II", 2, + "III", 3, + "IV", 4, + "V", 5, + "VI", 6, + "VII", 7, + "VIII", 8, + "IX", 9, + "X", 10 + ); + public static final char[] ALPHABET = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' @@ -128,4 +142,18 @@ public class Utils { afficher(mot, result == val ? "OK" : "ERREUR"); } + public static void testRomains(Function func) { + for (Map.Entry entry : ROMAINS.entrySet()) { + String rom = entry.getKey(); + int val = entry.getValue(); + int res = func.apply(rom.toCharArray()); + afficher(rom, " -> ", res); + if (res == val) { + afficher("Succés"); + } else { + afficher("Attendu:", val); + } + } + } + }