Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1229 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Codage affine

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Codage affine

n°1823691
unskill59
Posté le 08-12-2008 à 18:16:45  profilanswer
 

Bonsoir à tous,
 
Je suis actuellement sur un projet tutoré de fin d'étude en programmation c++. Je dois effectuer un programme de codage(rot3, rot 13, vigénaire, affine), rien de plus basic. Enfin faut le dire vite.... J'ai un petit soucis avec le codage affine,malheureusement je ne vois pas comment déclaré les lettres de  l'alphabé  c.a.d (a=0,b=1,c=2,...,z=25).
 
Voici une petite présentation du codage affine pour ceux qui ne connaissent pas. http://pagesperso-orange.fr/alain. [...] ffine.html
 
Ma demande se résume juste au déclaration des lettres. Merci d'avance pour votre aide. ( J'utilise DEV c++)


---------------
"La force d'une équipe se mesure à son maillon faible. Ne soyez pas ce maillon faible, il se fait toujours éliminer"
mood
Publicité
Posté le 08-12-2008 à 18:16:45  profilanswer
 

n°1823723
sligor
Posté le 08-12-2008 à 19:48:12  profilanswer
 

pas besoin de déclaration:

Code :
  1. char caractere,value;
  2. caractere='c';
  3. value=caractere-'a';


=> value==2


Message édité par sligor le 09-12-2008 à 00:07:45
n°1824489
unskill59
Posté le 09-12-2008 à 20:20:21  profilanswer
 

Bonsoir et merci Sligor pour ta réponse,
 
Mais sans vouloir t'offensé j'aimerai comprend pourquoi tu mets :
 
=>value==2
 


---------------
"La force d'une équipe se mesure à son maillon faible. Ne soyez pas ce maillon faible, il se fait toujours éliminer"
n°1824643
kao98
...
Posté le 10-12-2008 à 09:02:06  profilanswer
 

Pour t'indiquer qu'a la fin du code indiqué, value vaut 2 !
Et il vaut 2 car 'c' - 'a' == 2 ! :spamafote:


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1824649
sligor
Posté le 10-12-2008 à 09:39:26  profilanswer
 

et donc du coup pas besoin de déclarer les lettres de l'alphabet

n°1826499
unskill59
Posté le 13-12-2008 à 17:16:38  profilanswer
 

Ok merci de vos réponse, j'ai un autre petit soucis qui vient d'apparaitre,
 

Citation :

Par exemple si a=17 et b=5 les lettres a,b,c sont codées respectivement par f,w,n. En effet le numéro de a est 0 donc la lettre a est codée par la lettre de numéro f(0)º17×0+5=5 donc f(0)=5 soit la lettre f ; le numéro de b est 1 donc la lettre b est codée par la lettre de numéro f(1)º17×1+5=22 donc f(1)=22 soit la lettre w ; le numéro de c est 2 donc la lettre c est codée par la lettre de numéro f(2)º17×2+5=39 (26), et comme f(2) doit être dans E (puisque en fait c'est le reste de la division de 39 par 26) f(2)=13 soit la lettre n ;


 
 
Je me permet de prendre un exemple de la cryptographie cité au dessus. Mon soucis est comment faut t'il faire pour prendre le reste de la division en programmation?
 
 
Merci d'avance


---------------
"La force d'une équipe se mesure à son maillon faible. Ne soyez pas ce maillon faible, il se fait toujours éliminer"
n°1826504
Wyruz
Posté le 13-12-2008 à 17:26:53  profilanswer
 

Pour avoir ton reste, il faut utiliser ce qu'on appel "modulo"
 
En java (comme beaucoup de langage d'ailleurs) c'est  "%"
 

Code :
  1. reste = a % b;

n°1826505
unskill59
Posté le 13-12-2008 à 17:28:23  profilanswer
 

Merci ;)


---------------
"La force d'une équipe se mesure à son maillon faible. Ne soyez pas ce maillon faible, il se fait toujours éliminer"
n°1826509
unskill59
Posté le 13-12-2008 à 17:47:54  profilanswer
 

Bon voila mon projet est fini, reste a faire quelque amélioration visuelle.  
Dit moi j'ai fais un menu dans mon programme  
 

Citation :

int main()
{ [b]retour 2
    cout << "\t\t\t Codage/Decodage Jules cesar";cout<<endl;
    cout << "Que voulez vous faire:";cout<<endl;
    cout << "\t 1: Codage/Decodage en rot 3";cout<<endl;
    cout << "\t 2: Codage/Decodage en rot(n)";cout<<endl;
    cout << "\t 3: Codage/Decodage par chiffrement affine";cout<<endl;
    cout <<"Choix :";
    cin>>x;
    fflush(stdin);
 
     
    switch (x)
    {
           case '1':rot3();
           break ;
           case '2':rotn();
           break ;
           case '3':affine();
           break;
           default :exit (99);
           break;
    }
     
}  
    void rot3()
    {do{
         cout<<endl<<endl;cout<<"\tVous venez de choisir le codage/decodage en rot3";cout<<endl<<endl;
         cout<<"Que voulez vous faire:";cout<<endl;
         cout<<"\t 1: codage";cout<<endl;
         cout<<"\t 2: Decodage";cout<<endl;
         cout<<"Choix :";
         cin>>z;
         fflush(stdin);
         
         switch (z)
         {
                case '1':codage();
                break;
                case '2':decodage();
                break;
                default :exit (99);
                break;
         }
         }
         while (0);
         }
         
         void codage()              
         {char reponse;
              do{ retour 1
                 cout << "Taper le texte clair a encode: ";  
                 getline(cin ,clair) ; // Saisie de la chaîne claire
                 longueur = clair.length() ; // Initialise la longueur de chaîne dans longueur
                 cout << endl ;
                 cout << longueur << endl ; // Affiche la longueur de la chaîne
                 cout << endl ;
                 for (i=0; i<longueur; i++)
                         {  
                         JC = int (clair) + int (3) ;
                         if ((JC >= 90 && JC < 97) || (JC > 122))
                            {
                            JC = JC - 26 ;
                            }
                         if (JC == 35)
                            {
                            JC = JC - 3 ;
                            }
                         cout << char (JC) ;
                         }
                     cout << endl ;
                     cout <<" Exit (o/n) :" ;
                     cin >> reponse ;
                     fflush(stdin);                    
             }
              while (reponse =='n') ; [i]Retour 0

          }

[/b]
 
Au retour 0 il va au retour 1 mais j'aimerai retourner au retour 2 si on choisit la réponse n, que dois je utilisai?  
 
 


---------------
"La force d'une équipe se mesure à son maillon faible. Ne soyez pas ce maillon faible, il se fait toujours éliminer"

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Codage affine

 

Sujets relatifs
[RESOLU] codage pour ne pas degrader une photo en redimPb adaptation codage à résolution d'écran
Règle de codageerreur de codage
[résolu] Compatibilité du codage des fichiers, serveurs windows et L..Conventions pour le codage des classes en PHP
[HTML/PHP] question "normes de codage"le Codage canonique de Huffman
[PHP] Formulaire + transfert de données par post + codage de porc 
Plus de sujets relatifs à : Codage affine


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR