IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Réalisation de l'algorithme de César


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Lycéen
    Inscrit en
    Mai 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2017
    Messages : 16
    Par défaut Réalisation de l'algorithme de César
    Bonjour
    Je suis actuellement en terminale S et je vais passer mon oral d'isn bientot dans deux semaines mais j'ai pris beaucoup de retard dans mon projet car j'étais completement perdue et je ne savais pas par ou commencer. Donc mon projet est tel que je veux creer un interface graphique avec 3 textfields et un bouton au quel jai ajoute un ecouteur d'evenement . Mais quand au codage pour le decryptage je beug totalement . Il n'y a pas grand chose sur internet avec netbeans et le codage en cesar . Jai fait seulement (avec l'aide de mon prof ) qq lignes de code que je vous joint en image. J'ai aussi essaye qqtrucs sur javascool mais rien aboutissant a qqchose. Mon prof n'est pas le plus aimable que l'on puisse trouver et il ma dit que si continue comme ca (il ne nous reste plus que deux heures de cours) je devrais prendre le programme d'un copain qui a ete deja faite sauf que je ne veux pas le prendre car je ne veux pas qu'il pense qu j'ai abandonné alors que ce n'est pas du tout le cas je suis seulement perdue . Du coup je voudrais bien de votre aide pour faire le programme svp le plus vite possible .

    merci
    Pièce jointe 274546
    Pièce jointe 274551
    Pièce jointe 274555
    Pièce jointe 274557
    Pièce jointe 274562
    Images attachées Images attachées      

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Premièrement, ce serait beaucoup mieux que tu nous montrais ton code en texte via la balise CODE (pour son utilisation, voir ici).

    Ensuite, nous t'aiderons volontier, mais il faut que tu nous précises là où tu bloques. Sur la mise en place de l'interface, ou sur l'algorithme du cryptage de César ?

    Enfin, NetBeans est un outil d'aide au développement (EDI (Environnement de développement intégré) ou IDE (Integrated Development Environment) en anglais). Pour trouver des sujets sur Internet concernant le cryptage de César, tu trouveras plus de résultat en cherchant "cryptage César" ou "chiffrement César". Et pour avoir des sujets plus dédié à Java, il faudra chercher "java cryptage César".
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre averti
    Femme Profil pro
    Lycéen
    Inscrit en
    Mai 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2017
    Messages : 16
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Salut,

    Premièrement, ce serait beaucoup mieux que tu nous montrais ton code en texte via la balise CODE (pour son utilisation, voir ici).

    Ensuite, nous t'aiderons volontier, mais il faut que tu nous précises là où tu bloques. Sur la mise en place de l'interface, ou sur l'algorithme du cryptage de César ?

    Enfin, NetBeans est un outil d'aide au développement (EDI (Environnement de développement intégré) ou IDE (Integrated Development Environment) en anglais). Pour trouver des sujets sur Internet concernant le cryptage de César, tu trouveras plus de résultat en cherchant "cryptage César" ou "chiffrement César". Et pour avoir des sujets plus dédié à Java, il faudra chercher "java cryptage César".
    Bonjour Joel

    Je te remercie de m'avoir répondu aussi rapidement.
    Mon probleme est dans l'algortihme pour le codage ou je beug. J'ai essaye de faire avec tableau de bytes avec la methode byte[] et get. Byte mais ca n'a pas marhcé.
    Je t'envoie ce que jai fait pour linstant (c'est pas grand chose...).
    Bah j'ai tout d'abord fait les 3 fenetres et le boutons qui ont ete instanciées automatiquemet par netbeans donc je ne pense pas que tu veuille ça.
    du coup voilà:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     int cle= Integer.parseInt(Cle.getText());
    //
    String messageAcoder= Haut.getText();
    //
    byte octets[];
    octets[]= Haut getBYte;
    Pour ce qui est du recherche sur Internet j'ai cherche chiffrement césar et java code césar etc.. mais j'ai pas trouve ce qu'il me fallait.

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Ne t'embêtes pas avec un tableau d'octets. Le cryptage de César c'est un algorithme basé sur un décalage de caractères. Le plus simple est d'utiliser un tableau de caractères (char[]).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char[] array = messageACoder.getCharArray();
    ou simplement parcourir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(int i=0; i<messageACoder.length(); i++) {
    		char c=messageACoder.charAt(i);
                    /**...**/ 
    }
    Tu peux décaler comme ça : c+=2; pour décaler de 2 lettres à droites (a->c, b->d, ...)
    Pour ce qui dépasse après z:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if ( c>'z') { // si on dépasse de z
        c = (char)('a' + (c-'z'-1));  // on recommence à a (y->a, z->b)
    }
    pour reconstituer la chaîne à partir du tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String messageFinal = new String(array);
    Ou si tu choisis la solution avec la boucle, utiliser un StringBuilder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StringBuilder sb=new StringBuilder(messageACoder.length()); // initialisation du résulat
    et dans la boucle, après le décalage
    et pour refaire la chaîne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String messageFinal = sb.toString();
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre averti
    Femme Profil pro
    Lycéen
    Inscrit en
    Mai 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2017
    Messages : 16
    Par défaut
    Je te remercie infiniment mais j'aurais quelques questions :
    Tout d'abord si j'ai bien compris je dois écrire les bouts de programmes après que j'ai déclaré l'entier clé ? et donc le tableau d'octets.?
    Ensuite , array c'est seulement le nom que tu as donné a ton tableau de caractère char[] et donc si je pouvais lui donner un autre nom ( excuse moi si je pose des questions comme ca car je voudrais comprendre tout le programme mot par mot car il faudrait etre capable de l'expliquer ensuite devant le jury)
    Puis, la methode char transforme bien les lettres en leur code Ascii ou pas?
    Enfin ce que sb.append(c) veut dire .
    Merci bien

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par unefillederennes Voir le message
    Tout d'abord si j'ai bien compris je dois écrire les bouts de programmes après que j'ai déclaré l'entier clé ?
    Oui la clé doit être définie pour pouvoir l'utiliser (c'est le décalage dans le chiffrement de César).
    Citation Envoyé par unefillederennes Voir le message
    et donc le tableau d'octets.?
    Pourquoi faire un tableau d'octets ?

    Citation Envoyé par unefillederennes Voir le message
    Ensuite , array c'est seulement le nom que tu as donné a ton tableau de caractère char[] et donc si je pouvais lui donner un autre nom ( excuse moi si je pose des questions comme ca car je voudrais comprendre tout le programme mot par mot car il faudrait etre capable de l'expliquer ensuite devant le jury)
    Bien sûr, on est libre de nommer ses variables comme on le désire. Tant que le nom a du sens, et n'est pas déjà utilisé par une autre variable.
    Citation Envoyé par unefillederennes Voir le message
    Puis, la methode char transforme bien les lettres en leur code Ascii ou pas?
    Il n'y a pas de méthode char. char c'est un type primitif, comme int ou double, ou boolean. Un type qui permet de représenter des lettres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char c ='a'; // la valeur de la variable c est le caractère a
    char[] untableau = {'0','2','4','6,'8'}; // on déclare la variable untableau qui est un tableau de char contenant les chiffres pairs
    Citation Envoyé par unefillederennes Voir le message
    Enfin ce que sb.append(c) veut dire .
    Si tu regardes les autres parties que j'ai mis en exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StringBuilder sb=new StringBuilder(messageACoder.length()); // initialisation du résulat
    sb est une variable de type StringBuilder, une classe qui permet de contruire des String (chaînes de caractères) en ajoutant petit à petit des sous-parties de chaînes (des lettres, des nombres, des mots, des phrases, etc.)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(int i=0; i<messageACoder.length(); i++) {
    		char c=messageACoder.charAt(i);
                    /**...**/ 
    }
    La variable c c'est donc un char, ici dans la boucle, donc, successivement chaque lettre de la chaîne messageACoder.
    Dans sb.append(c);, on appelle la méthode append de sb (donc de la classe StringBuilder), en passant en paramètre c. La méthode append, c'est juste une méthode qui permet d'ajouter un truc à la chaîne qu'on est en train de construire avec sb.
    Par exemple, sin on exécute le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    String message = "bonjour";
    StringBuilder sb = new StringBuilder();
    for(int i=0; i<message .length(); i++) {
    		char c=message .charAt(i);
                   sb.append( i ); // on ajoute la valeur de i
                   sb.append('='); // on ajoute un égal
                   sb.append( c ); // on ajoute c
                   sb.append(','); // on ajoute une virgule
    }
    System.out.println( sb );
    on aura affiché dans la console :
    0=b,1=o,2=n,3=j,4=o,5=u,6=r,
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réalisation d'un algorithme de tri
    Par Detenu-1_0-J_6_4 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 04/11/2016, 14h03
  2. Réponses: 2
    Dernier message: 11/06/2009, 17h06
  3. Réaliser un algorithme de satisfiabilité
    Par Abdoulive dans le forum Intelligence artificielle
    Réponses: 1
    Dernier message: 01/02/2009, 15h23
  4. Réaliser un algorithme d'affectations
    Par Nanouche dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/09/2008, 17h21
  5. [AIDE] besoin d'aide pour réaliser un algorithme
    Par quaresma dans le forum Algorithmes et structures de données
    Réponses: 40
    Dernier message: 18/01/2008, 09h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo