Exercice nombres Romains

This commit is contained in:
Meutel 2019-06-17 18:47:17 +02:00
parent 546c2f4b7e
commit b65325911b
3 changed files with 52 additions and 1 deletions

View File

@ -143,15 +143,23 @@ Il sagit dune suite de nombres dans laquelle tout nombre (à partir du tro
Écrire ensuite une solution avec une fonction récursive. Écrire ensuite une solution avec une fonction récursive.
=> Fibonacci.java
## Exercice 10 ## Exercice 10
Convertir un nombre romain en entier (avec "chiffre" romains I, V et X).
=> Romain.java
## Exercice 11
Chiffre de César: 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. 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 => 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 Tester si un mot est un palindrome. Un palindrome est un mot qui peut se lire dans les 2 sens: été, ici, colloc

15
Romain.java Normal file
View File

@ -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;
}
}

View File

@ -1,5 +1,6 @@
package utils; package utils;
import java.util.Map;
import java.util.List; import java.util.List;
import java.util.Arrays; import java.util.Arrays;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -9,6 +10,19 @@ import java.util.function.BiFunction;
public class Utils { public class Utils {
public static Map<String, Integer> 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[] { public static final char[] ALPHABET = new char[] {
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', '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' 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'
@ -128,4 +142,18 @@ public class Utils {
afficher(mot, result == val ? "OK" : "ERREUR"); afficher(mot, result == val ? "OK" : "ERREUR");
} }
public static void testRomains(Function<char[], Integer> func) {
for (Map.Entry<String, Integer> 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);
}
}
}
} }