Aller au contenu

wayposey

Membres
  • Compteur de contenus

    2
  • Inscription

  • Dernière visite

  1. wayposey

    ISN terminale S

    Merci je suis nouveau je savais pas Désolé pour l'erreur haha
  2. wayposey

    ISN terminale S

    Bonjour, bonsoir à tous, Je suis actuellement en terminale S et j'ai comme projet en isn de faire un programme qui permet de crypter decrypter du chiffrement affine. Pour faire simple voila en quoi consiste le chiffrement affine :Le chiffre Affine utilise une fonction de chiffrement par addition et multiplication (comme la fonction mathématiques affine) qui fait correspondre à une lettre L (de rang x dans un alphabet de 26 lettres) une autre lettre de rang (ax + modulo 26. J'ai donc commencer un programme seulement la partie crytage pour le moment mais je ne comprends pas pourquoi il ne fonctionne pas. Je veux par exemple transformer la phrase "lhomme" avec les coefficients "a" et "b" respectivement égaux à 7 et 13 mon programme m'affiche "CAXJJF" alors que quand je le fais à la main je trouve: "MKHTTP" si quelqu'un à une idée je suis preneur code: void main() { clear(); int MessageInter []; MessageInter = new int [100]; //Taille limitée à 100 pour le message à crypter int i,c,a,b; c = readInt("Tapez: 1 pour Cryptage | 2 pour Décryptage" ); a = readInt("quelle valeur de a voulez vous prendre?" ); b = readInt("quelle valeur de b voulez vous prendre" ); char alphabet_code [] []; //déclaration du tableau alphabet_code = new char [2] [100]; // deux colones 100 ligne if (c ==1) { String MessageClair; // Déclaration des variables String MessageCode = ""; //vaut 0 println("Texte à crypter ?" ); // Demande du message e MessageClair = readString(); // demande le message a coder println("Le message à crypter est" + "\n" + MessageClair); // On sépare chaque caractère du message et on met son code ascii décalé de 65 dans le tableau for (i =0; i <= MessageClair.length() -1; i ++) { //message en lettre transformé en chiffre MessageInter = (int)(MessageClair.charAt(i)); } for (i =0; i <= MessageClair.length() -1; i ++) { MessageCode = MessageCode + (char)((((a * MessageInter) -65 + %26) +65); //prend la première lettre transformée //de chiffre fais - 65 //(pour mettre a=0) puis clef donne le décalage , //modulo 26 pour etre compris dans l'alphabet + 65 pour repasser en ascii } // Affichage du résultat. println("Le cryptogramme est" + "\n" + MessageCode); } } isn cryptage.java
×