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

 C Discussion :

programmation en c


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 3
    Par défaut programmation en c
    bonjour;j'ai un probleme lorsque je compile mon programme il affiche cette erreur :
    21 C:\Dev-Cpp\algoRSA.cpp expected primary-expression before ')' token
    voici le code:



    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
        //programme C pour mettre en œuvre l'algorithme de cryptographie RSA 
        #include <stdio.h> 
        #include <string.h> 
        long power(long a, long b) { long r = 1, i; for (i = 1; i <= b; i++) r = r * a; 
        return r; 
        }
     
        void main () {
             long p, q, N, Z, D, E, i, j, n, z, d, e, count = 0, somme, k; 
             char s [25], ch [25], c [ 25]; 
             long v [25], res; 
             printf ("Entrez deux nombres premiers:"); 
             scanf ("% d% d", & p, & q); 
             n = p * q; 
             z = (p - 1) * (q - 1); 
             printf ("La valeur de n est% d", n); 
             printf ("La valeur de z est% d", z); 
     
             for ( i = p; i <= q; i + + ) {count = 0; for (j = 1; j <= z; j + +) {
                 if (i % j == 0 && z % j == 0) count + +;} if (count == 1) {d = i; break;}
                 } 
             printf ("La valeur de d est% d", d);
             somme = 1 + z; 
                 if (%somme d == 0) {e = somme / j, k = 1;} 
                 else {k = 2, tandis que (somme (k *)% d = 0!) {k + +;} e = (somme * k) / j;} 
                 printf ("La valeur e est% d", e); 
                 printf ("Entrez la chaîne dans la capitale ::"); 
                 scanf ("% s", & s); 
             for (i = 0; s [i] = '\ 0';! i + +) v [i] = (s [i]) - 64; 
             printf ("La chaîne est% s", s); 
             printf ("La chaîne en nombre est \ n"); 
             for (j = 0; i, j <; j + +) printf ("% d \ t" , v [j]); printf ("\ n"); 
             for (j = 0; j <i, j + +) {res = puissance (v [j], e); c [j] = res n%;} printf ("Le texte crypté est \ n"); 
             for (j = 0; j <i, j + +) printf ("% d \ t", c [j]); printf ("\ n"); 
             for (i = 0; i <j; i + +) {ch [i] = c [j] + 64;} 
             for (j = 0; j <i, j + +) {res = puissance (c [j], d); v [ j] =% res n;} printf ("Le texte original est \ n");
             for (j = 0; j <i, j + +) printf ("% d \ t", v [j]);
             printf (" \ n "); 
             return 0;
             }

  2. #2
    Membre chevronné Avatar de hariman
    Homme Profil pro
    Développeur Java, Android
    Inscrit en
    Janvier 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Développeur Java, Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 200
    Par défaut
    Où as-tu trouvé ce code ?

    Tout d'abord, je sais pas à quoi sert cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    if (%somme d == 0) {e = somme / j, k = 1;} 
    ...
    "%somme d" ne signifie rien. Je sais pas si tu voulais écrire "somme % d".

    Et pense à utiliser les balises "code" la prochaine fois que tu postes ton code.

  3. #3
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    D:\TestsC\Bidon\Untitled1.c||In function 'main'
    D:\TestsC\Bidon\Untitled1.c|19|error: expected expression before ')' token|
    D:\TestsC\Bidon\Untitled1.c|19|error: expected expression before ')' token|
    D:\TestsC\Bidon\Untitled1.c|20|error: expected expression before ';' token|
    D:\TestsC\Bidon\Untitled1.c|24|error: expected expression before '%' token|
    D:\TestsC\Bidon\Untitled1.c|25|error: 'tandis' undeclared (first use in this function)|
    D:\TestsC\Bidon\Untitled1.c|25|error: (Each undeclared identifier is reported only once|
    D:\TestsC\Bidon\Untitled1.c|25|error: for each function it appears in.)|
    D:\TestsC\Bidon\Untitled1.c|25|error: expected ';' before 'que'|
    D:\TestsC\Bidon\Untitled1.c|29|warning: unknown escape sequence: '\040'|
    D:\TestsC\Bidon\Untitled1.c|29|warning: multi-character character constant|
    D:\TestsC\Bidon\Untitled1.c|29|warning: overflow in implicit constant conversion|
    D:\TestsC\Bidon\Untitled1.c|29|error: expected expression before ')' token|
    D:\TestsC\Bidon\Untitled1.c|31|warning: unknown escape sequence: '\040'|
    D:\TestsC\Bidon\Untitled1.c|32|error: expected expression before ';' token|
    D:\TestsC\Bidon\Untitled1.c|32|warning: unknown escape sequence: '\040'|
    D:\TestsC\Bidon\Untitled1.c|32|warning: unknown escape sequence: '\040'|
    D:\TestsC\Bidon\Untitled1.c|33|error: expected expression before ')' token|
    D:\TestsC\Bidon\Untitled1.c|33|error: expected ';' before 'n'|
    D:\TestsC\Bidon\Untitled1.c|33|warning: unknown escape sequence: '\040'|
    D:\TestsC\Bidon\Untitled1.c|34|error: expected expression before ')' token|
    D:\TestsC\Bidon\Untitled1.c|34|warning: unknown escape sequence: '\040'|
    D:\TestsC\Bidon\Untitled1.c|34|warning: unknown escape sequence: '\040'|
    D:\TestsC\Bidon\Untitled1.c|35|error: expected expression before ')' token|
    D:\TestsC\Bidon\Untitled1.c|36|error: expected expression before ')' token|
    D:\TestsC\Bidon\Untitled1.c|36|error: expected expression before '%' token|
    D:\TestsC\Bidon\Untitled1.c|36|warning: unknown escape sequence: '\040'|
    D:\TestsC\Bidon\Untitled1.c|37|error: expected expression before ')' token|
    D:\TestsC\Bidon\Untitled1.c|37|warning: unknown escape sequence: '\040'|
    D:\TestsC\Bidon\Untitled1.c|38|warning: unknown escape sequence: '\040'|
    D:\TestsC\Bidon\Untitled1.c|39|warning: 'return' with a value, in function returning void|
    ||=== Build finished: 17 errors, 13 warnings ===|
    Si je compile, j'obtiens tout ça

    Je vois plusieurs fois count + + au lieu de count ++.

    EDIT : Ton fichier s'appelle *.cpp, alors que tu codes en C ? C'est fait exprès ?

    EDIT BIS : k = 2, tandis que (somme (k *)% d = 0!) {k + +;} e = (somme * k) / j;

    for (i = 0; s [i] = '\ 0';! i ++) v [i] = (s [i]) - 64;

    Les nombreux for tenant chacun sur une ligne à la fin sont à vérifier urgemment...

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 3
    Par défaut algorithme RSA
    Bonjour,j'ai besoin d'un programme qui fait cryptage et décryptage selon l'algorithme RSA.
    merci d'avance.

  5. #5
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ya7ya Voir le message
    Bonjour,j'ai besoin d'un programme qui fait cryptage et décryptage selon l'algorithme RSA.
    merci d'avance.
    As-tu besoin d'un programme qui le fait ou d'un code qui le fait ?

    A ton dernier message, je doute de tes connaissances en langage C...
    • for (j = 0; j <i, j ++) --> for (j = 0; j <i; j ++) plutôt ?
    • printf demande des arguments de formatage tels que %d et non % d.
    • De même les caractères échappés sont tels que \n et non \ n.
    • Le retour de ton main est void d'après son prototype mais tu mets return 0


    Une fois réglé les problèmes de compilation (erreurs et warning), le linkage est impossible car la fonction puissance c'est pas définie. Il s'agit de power je présume ?

    Enfin, ça se lance, on entre des nombres. Ca affiche plein de choses et ça plante... Mais là... Je suis fatigué

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 3
    Par défaut programmation en c
    bonjour ,j'ai un problème au niveau de cette ligne je sais pas quoi faire merci d'aider:
    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
                 if (somme % d == 0) {e = somme / j, k = 1;} 
                 else {k = 2; tandis que (somme (k*)% d = !0) {k ++;} e = (somme * k) / j;} 
                 printf ("La valeur e est% d", e); 
                 printf ("Entrez la chaîne dans la capitale ::"); 
                 scanf ("% s", & s); 
             for (i = 0; s [i] = '\ 0';! i ++) v [i] = (s [i]) - 64; 
             printf ("La chaîne est% s", s); 
             printf ("La chaîne en nombre est \ n"); 
             for (j = 0; i, j <; j ++) printf ("% d \ t" , v [j]); printf ("\ n"); 
             for (j = 0; j <i, j ++) {res = puissance (v [j], e); c [j] = res n%;} printf ("Le texte crypté est \ n"); 
             for (j = 0; j <i, j ++) printf ("% d \ t", c [j]); printf ("\ n"); 
             for (i = 0; i <j; i ++) {ch [i] = c [j] + 64;} 
             for (j = 0; j <i, j ++) {res = puissance (c [j], d); v [ j] = res n%;} printf ("Le texte original est \ n");
             for (j = 0; j <i, j ++) printf ("% d \ t", v [j]);
             printf (" \ n "); 
             return 0;
             }

Discussions similaires

  1. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 03h08
  2. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  3. communication entre programmes
    Par jérôme dans le forum C
    Réponses: 12
    Dernier message: 16/04/2002, 08h05
  4. Comment débuter en programmation ?
    Par Marc Lussac dans le forum Débuter
    Réponses: 0
    Dernier message: 08/04/2002, 11h29
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

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