Code César Java's cool
Manelise
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Manelise Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Manelise Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Nous avons un projet en ISN (Informatique et Science du Numérique) en Terminale S. Nous voulons coder un texte court en décalant l'alphabet (principe de Code César).
Voici notre programme :
String Codage (String message) {
char [] ALPHA = {'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'};
char [] messageCode = message.toCharArray() ;
for (int i=0; i < messageCode.length; i++)
{
for (int j=0; j < 26; j++)
{
if(messageCode[i] == ALPHA[j]);
{
j+=3;
if(j>=26)
{
j-=26;
}
messageCode[i]= ALPHA[j];
}
}
}
return new String(messageCode);
}
void main(){
println ("rentrer texte à coder");
String message = readString () ;
message=Codage(message);
println ( message );
}
Quand on le fait fonctionner il affiche seulement des Z.
Nous n'arrivons pas à comprendre pourquoi.
Merci d'avance.
Nous avons un projet en ISN (Informatique et Science du Numérique) en Terminale S. Nous voulons coder un texte court en décalant l'alphabet (principe de Code César).
Voici notre programme :
String Codage (String message) {
char [] ALPHA = {'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'};
char [] messageCode = message.toCharArray() ;
for (int i=0; i < messageCode.length; i++)
{
for (int j=0; j < 26; j++)
{
if(messageCode[i] == ALPHA[j]);
{
j+=3;
if(j>=26)
{
j-=26;
}
messageCode[i]= ALPHA[j];
}
}
}
return new String(messageCode);
}
void main(){
println ("rentrer texte à coder");
String message = readString () ;
message=Codage(message);
println ( message );
}
Quand on le fait fonctionner il affiche seulement des Z.
Nous n'arrivons pas à comprendre pourquoi.
Merci d'avance.
A voir également:
- Code cesar
- Code ascii - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code blocks - Télécharger - Langages
2 réponses
oula, ça fait compliqué pour pas grand chose ;-)
pour un chiffrement cesar, je verrais plus un truc conmme ça :
note : j'ai écrit au fur et a mesure, sans verifier ou compiler quoi que ce soit, c'est possible qu'en l'état ça marche pas, mais ça devrait au moins donner une piste ;-)
pour un chiffrement cesar, je verrais plus un truc conmme ça :
String encode(String message){ // on recupere le message char[] m = message.toCharArray() ; //on parcours chaque lettres for (int i=0;i<m.lenght;i++){ //pour chaque lettres , on effectue un decalage de 3 m[i] += 3; // si on sort de l'alphabet (valeur > à 'z') if (m[i] > 'z'){ /* alors on enleve la valeur 'z' pour se retrouver au début exemple : on as 'x', si on décale de trois, on devrait avoir 'a', mais on se retrouve à z+1. alors on fait (z+1)-z, il restera 1 (qui correspond à 'a') */ m[i] -= 'z'; } } return new String(m) }
note : j'ai écrit au fur et a mesure, sans verifier ou compiler quoi que ce soit, c'est possible qu'en l'état ça marche pas, mais ça devrait au moins donner une piste ;-)
Merci le code ne compile pas encore mais il nous donne une très grosse piste ! :-)
Nous avons une autre question, nous avions déjà trouver la fonction toCharArray dans d'autres programmes mais nous n'avions pas bien compris à quoi elle servait et comment nous pouvions l'utiliser ?
Nous avons une autre question, nous avions déjà trouver la fonction toCharArray dans d'autres programmes mais nous n'avions pas bien compris à quoi elle servait et comment nous pouvions l'utiliser ?
alors, quand tu ecrit char[] m, tu dis a ton pc «Salut, je vais utiliser une variable que je vais appeler m et qui sera un tableau de char»
de même, String s veut dire «Coucou, je vais utiliser S et c'est une string !»
toCharArray est une méthode spécifique à ta variable s, et peut être traduit de l'anglais en « vers tableau de char»
donc pour faire simple, ça converti ta variable de type string en variable de type char[]
pour faire compliqué (si ça t'interesse, tu peux t'en passer mais c'est toujours bien de comprendre)
prenons une string s qui contient "Salut !"et un char[] m vide
ton string s est ce qu'on appelle un objet,
il contient une chaine de caractères ("Salut !") mais aussi d'autre trucs, des attributs (genre de variables) et est aussi capable d'exécuter des methodes (des fonctions qui lui sont propre.)
pour utiliser ces attribut et méthodes, on fait :
objet.attribut
ou
objet.methode()
par exemple m.lenght (que tu utilise dans ton code) est un attribut qui contient la taille du tableau
et s.toCharArray() va lire la chaine contenue dans la string s ("Salut !") et va la transformer en char [] pour que tu puisse ensuite la stocké dans une variable
étape par étape :
char[] m = s.toCharArray()
s va lire la chaine de caractere qu'il contient,
s va transformer la chaine de charactere en tableau de char
enfin, on envoie le tableau de char obtenu dans m.
(je sais c'est un peu brouillon, mais j'ai du mal a mettre en forme de maniere à ce que ça soit structuré, complet, et facile à comprendre en même temps ...)
de même, String s veut dire «Coucou, je vais utiliser S et c'est une string !»
toCharArray est une méthode spécifique à ta variable s, et peut être traduit de l'anglais en « vers tableau de char»
donc pour faire simple, ça converti ta variable de type string en variable de type char[]
pour faire compliqué (si ça t'interesse, tu peux t'en passer mais c'est toujours bien de comprendre)
prenons une string s qui contient "Salut !"et un char[] m vide
ton string s est ce qu'on appelle un objet,
il contient une chaine de caractères ("Salut !") mais aussi d'autre trucs, des attributs (genre de variables) et est aussi capable d'exécuter des methodes (des fonctions qui lui sont propre.)
pour utiliser ces attribut et méthodes, on fait :
objet.attribut
ou
objet.methode()
par exemple m.lenght (que tu utilise dans ton code) est un attribut qui contient la taille du tableau
et s.toCharArray() va lire la chaine contenue dans la string s ("Salut !") et va la transformer en char [] pour que tu puisse ensuite la stocké dans une variable
étape par étape :
char[] m = s.toCharArray()
s va lire la chaine de caractere qu'il contient,
s va transformer la chaine de charactere en tableau de char
enfin, on envoie le tableau de char obtenu dans m.
(je sais c'est un peu brouillon, mais j'ai du mal a mettre en forme de maniere à ce que ça soit structuré, complet, et facile à comprendre en même temps ...)