Bonjour,
Je dois réaliser un programme réalisant les contraintes suivantes :
Cahier des charges:

L'algorithme proposé utilise une matrice 6x6, identique au codage et au
décodage. Elle contient 36 caractères : les lettres de A à Z, les chiffres
de 1 à 9 et l'espace. Le chiffre zéro est représenté par la lettre O.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
ABCDEF
GHIJKL
MNOPQR
STUVWX
YZ 123
456789
La clef de chiffrement associée à cette matrice est la concaténation de ses
lignes :

"ABCDEFGHIJKLMNOPQRSTUVWXYZ 123456789"

Le message est chiffré par bigrammes, i.e. par groupe de 2 caractères
successifs. Le chiffrement obéit aux règles suivantes :

- Si les deux caractères du bigramme représentent deux coins d'un rectangle
dans la matrice (c'est à dire sont sur 2 lignes et colonnes différentes),
on les code par les deux coins restants, dans le sens direct.
Ainsi, avec la matrice ci-dessus:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
VI --> JU
IV --> UJ
W3 --> 2X
- Si les deux caractères sont sur la même ligne, on prend leurs deux voisins de
droite, modulo la largeur de la ligne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
EF --> FA
GJ --> HK
-Si les deux caractères sont sur la même colonne, on prend les deux voisins du
dessous, modulo la hauteur de la colonne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
Y4 --> 4A
KW --> Q2
- Si les deux caractères sont identiques ou si le bigramme ne contient plus
qu'un seul caratère (message de longueur impaire), on ne code tout simplement
pas le bigramme.


Interface:

Le programme doit pouvoir s'appeller en ligne de commande, avec comme
arguments l'options -C pour coder ou -D pour décoder, la matrice de codage
mise sous la forme d'une chaîne de 36 caractères, et enfin la chaîne à coder
entre guillemets. Le résultat est afficher sur la sortie standard.

Exemple:

$ MC []TP7.EXE -C "ABCDEFGHIJKLMNOPQRSTUVWXYZ 123456789" "Bonjour"
NCPHU R

$ MC []TP7.EXE -D "ABCDEFGHIJKLMNOPQRSTUVWXYZ 123456789" "NCPHU R"
BONJOUR,

alors j'ai réussi a récupere ma matrice de codage que je stocke dans mon tableau MATRICE mais je en vois absolument pas comment testé els carractére pour respecter l'algorythme ci dessu.
voici ma fonction codage pour le moment: mais je ne sait pas comment faire opur tester les lettres une par une dans la chaine de carractére, ni comment les tester pour obtenir la fonction de codage souhaitée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
int codage(char matrice[TAILLE_MATRICE][TAILLE_MATRICE],char *argv[])
{   int nb;
 
    nb=strlen(argv[3]);
    while(nb>=0)
    {
                nb=nb-2;// test si nombre multiple de 2 ou pas
    }
    switch(nb)
    {case -2: printf("chaine pair");
          break;
    case -1:
         printf("chaine impair");
         break;
    }
    return 0;
}
Toute aide sera la bienvenue parceque la je galére trop ...Merci d'avance