Template exercice Cesar
This commit is contained in:
parent
6cc60fb084
commit
8a48e561ca
16
CesarChiffre.java
Normal file
16
CesarChiffre.java
Normal file
@ -0,0 +1,16 @@
|
||||
import static utils.Utils.*;
|
||||
|
||||
public class CesarChiffre {
|
||||
|
||||
public static final void main(String[] args) {
|
||||
afficher("Chiffre de César - chiffrement");
|
||||
testCesar(CesarChiffre::cesar, true);
|
||||
}
|
||||
|
||||
public static char[] cesar(char[] in, int k) {
|
||||
// Pour le caractère espace, pas de transformation
|
||||
|
||||
return in;
|
||||
}
|
||||
|
||||
}
|
17
CesarDechiffre.java
Normal file
17
CesarDechiffre.java
Normal file
@ -0,0 +1,17 @@
|
||||
import static utils.Utils.*;
|
||||
|
||||
public class CesarDechiffre {
|
||||
|
||||
public static final void main(String[] args) {
|
||||
afficher("Chiffre de César - déchiffrement");
|
||||
afficher("Chiffre de César - chiffrement");
|
||||
testCesar(CesarDechiffre::deCesar, false);
|
||||
}
|
||||
|
||||
public static char[] deCesar(char[] in, int k) {
|
||||
// Pour le caractère espace, pas de transformation
|
||||
|
||||
return in;
|
||||
}
|
||||
|
||||
}
|
14
Exercices.md
14
Exercices.md
@ -95,4 +95,18 @@ Exemple:
|
||||
|
||||
=> InvTab.java
|
||||
|
||||
## Exercice 7
|
||||
|
||||
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.
|
||||
|
||||
# Idées
|
||||
|
||||
* Chiffrement de César
|
||||
* Chiffrement de Vigenere
|
||||
* Factoriel
|
||||
* Nombre d'occurrences d'un mot dans un texte
|
||||
* Somme des entiers entre 2 entiers donnés
|
||||
* FizzBuzz
|
||||
|
||||
|
@ -3,10 +3,22 @@ package utils;
|
||||
import java.util.Arrays;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.Scanner;
|
||||
|
||||
import java.util.function.BiFunction;
|
||||
|
||||
public class Utils {
|
||||
|
||||
public static String[] CESAR_DATA_CLEAR = new String[] {
|
||||
"un beau texte"
|
||||
};
|
||||
|
||||
public static int[] CESAR_DATA_KEYS = new int[] {
|
||||
7
|
||||
};
|
||||
|
||||
public static String[] CESAR_DATA_CRYPT = new String[] {
|
||||
"crypt"
|
||||
};
|
||||
|
||||
public static final void afficher(Object... args) {
|
||||
if (args == null) {
|
||||
System.out.println("null");
|
||||
@ -16,7 +28,7 @@ public class Utils {
|
||||
.collect(Collectors.joining(" "));
|
||||
System.out.println(str);
|
||||
}
|
||||
System.out.println();
|
||||
System.out.print(' ');
|
||||
}
|
||||
public static final void afficherTabInt(int... args) {
|
||||
if (args == null) {
|
||||
@ -28,7 +40,7 @@ public class Utils {
|
||||
.collect(Collectors.joining(" "));
|
||||
System.out.println(str);
|
||||
}
|
||||
System.out.println();
|
||||
System.out.print(' ');
|
||||
}
|
||||
|
||||
public static int lireEntier() {
|
||||
@ -45,4 +57,22 @@ public class Utils {
|
||||
}
|
||||
}
|
||||
|
||||
public static void testCesar(BiFunction<char[], Integer, char[]> func,
|
||||
boolean chiffre) {
|
||||
for (int i = 0; i<CESAR_DATA_KEYS.length; i++) {
|
||||
int cle = CESAR_DATA_KEYS[i];
|
||||
if (chiffre) {
|
||||
afficher("Clair: " + CESAR_DATA_CLEAR[i]);
|
||||
afficher("Chiffré: " + String.valueOf(func.apply(CESAR_DATA_CLEAR[i]
|
||||
.toCharArray(), cle)));
|
||||
afficher("Attendu: " + String.valueOf(CESAR_DATA_CRYPT[i]));
|
||||
} else {
|
||||
afficher("Chiffré: " + CESAR_DATA_CRYPT[i]);
|
||||
afficher("Clair: " + String.valueOf(func.apply(CESAR_DATA_CRYPT[i]
|
||||
.toCharArray(), cle)));
|
||||
afficher("Attendu: " + String.valueOf(CESAR_DATA_CLEAR[i]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user