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 :

[Débutant] Optimisation d'un programme


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de velociraptor5679
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Par défaut [Débutant] Optimisation d'un programme
    De quelle manière puis-je optimiser mon programme ? :

    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
     
    #include <iostream>
     
    using namespace std;
     
    int main(int argc, char *argv[])
    {
        string chaine=argv[1],      cryptee="",     clef=argv[2];    
     
        if (argv[1]==NULL || argv[2]==NULL)
           cout << "Utilisation :" << endl << "CRYPT chaine clef" << endl;
        else
        {
            for (int i(0); i<chaine.length(); ++i)
                cryptee += chaine[i] ^ clef [ i % clef.length() ];
            cout << cryptee;
        }
     
        return 0;
    }

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 392
    Par défaut
    Avant de l'optimiser, essaie d'abord de le corriger pour que
    Ne coupe pas la chaîne...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre confirmé Avatar de velociraptor5679
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Par défaut
    ben il marche

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 392
    Par défaut
    Pas avec le code que tu me montres: Si un caractère de la chaîne de départ est le même que celui correspondant de la clé, c'est un \0 que tu rajoutes...

    Edit: Je viens de tester, alors j'ajoute:
    1. Que tu as oublié le header <string>,
    2. Que je la chaîne cryptée s'arrête effectivement au bout de trois caractères comme je l'avais dit,
    3. Que c'est pas prudent d'afficher une chaîne pouvant contenir des caractères <32...
      En testant le programme avec les paramètres déjà mentionnés sur un serveur FreeBSD, le prog m'affiche des caractères de contrôle qui m'effacent l'écran...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre confirmé Avatar de velociraptor5679
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Par défaut
    Pas avec le code que tu me montres: Si un caractère de la chaîne de départ est le même que celui correspondant de la clé, c'est un \0 que tu rajoutes...
    oui c'est normal

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 392
    Par défaut
    Citation Envoyé par velociraptor5679
    oui c'est normal
    Ben non, c'est pas normal.
    C'est ton algo de cryptage qui est foireux, c'est à corriger.
    (je sais que c'est facile, j'ai déjà eu à faire cette correction-là).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut
    Voilà ce que j'aurais fait, (pour les test):

    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
    #include <iostream>
    #include <cstdlib>
    using namespace std;
     
    int main(int argc, char *argv[])
    {
        if(argc<3){
           cout << "Utilisation :" << endl << "CRYPT chaine clef" << endl;
           return EXIT_FAILURE;
        }
     
        string chaine=argv[1],      cryptee="",     clef=argv[2];    
     
        for (int i(0); i<chaine.length(); ++i)
            cryptee += chaine[i] ^ clef [ i % clef.length() ];
     
        cout << cryptee;
     
        return EXIT_SUCESS;
    }

  8. #8
    Membre confirmé Avatar de velociraptor5679
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Par défaut
    Citation Envoyé par MatRem
    Voilà ce que j'aurais fait, (pour les test):

    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
    #include <iostream>
    #include <cstdlib>
    using namespace std;
     
    int main(int argc, char *argv[])
    {
        if(argc<3){
           cout << "Utilisation :" << endl << "CRYPT chaine clef" << endl;
           return EXIT_FAILURE;
        }
     
        string chaine=argv[1],      cryptee="",     clef=argv[2];    
     
        for (int i(0); i<chaine.length(); ++i)
            cryptee += chaine[i] ^ clef [ i % clef.length() ];
     
        cout << cryptee;
     
        return EXIT_SUCESS;
    }

    pas mal...

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

Discussions similaires

  1. [Débutant] Pause dans un programme en mode console ?
    Par pugnator dans le forum Langage
    Réponses: 2
    Dernier message: 15/12/2006, 12h08
  2. Réponses: 11
    Dernier message: 12/12/2006, 00h53
  3. [débutant] arret brutal du programme
    Par ~Brouette~ dans le forum C
    Réponses: 16
    Dernier message: 16/11/2006, 17h12
  4. Optimisation d'un programme d'échecs
    Par Erickann dans le forum x86 32-bits / 64-bits
    Réponses: 8
    Dernier message: 23/11/2005, 20h23
  5. Réponses: 7
    Dernier message: 24/01/2005, 11h36

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