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 :

Fonction réversible


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Points : 0
    Points
    0
    Par défaut Fonction réversible
    Bonjour à Tous!
    En réponse à un clic "A" le programme répond "AA".
    En réponse à un clic "AA" le programme répond "A".
    ..B BB
    ..C CC
    C'est ce que j'appelle une table réversible (autre nom possible).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if  (az == "A" )  {xz = "AA" ; )
    if  (xz == "AA")  {az = "A"  ; )
    Y a-t-il une fonction qui gèrerai ce besoin?
    Merci.
    Cordialement.
    Sen.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Non aucune fonction qui ferait ce truc. Mais une simple map ferait l'affaire.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Points : 0
    Points
    0
    Par défaut
    Merci pour cette réponse.
    Bizarre ma question?
    Deux fonctions se répondent plusieurs fois dans un sens ou l'autre ou vice-versa.
    Je pense créer une fonction minimale insérée à tous les bons endroits
    pour ne pas avoir à ré-écrire plusieurs fois la même chose.
    Mais "Map"(machine à pain?).
    Voila la fonction que j'ai créé car une fonction est préférable à la ré-écriture d'un code deux fois ou plus évidemment.
    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
     
    string FcStrVcvStr(string StrVcvStrUno,string &StrVcvStrDeu,string StrVcvStrTro,string StrVcvStrQat)
    {//fcstrVcvStr/MDF/27/03/16 16;16/table réversible/2015
    //string utiliFcStrVcvStr,strVcvStrUno,strVcvStrDeu,strVcvStrTro,strVcvStrQat;
    //strVcvStrUno="uu";strVcvStrDeu="dd";
    //utiliFcStrVcvStr=FcStrVcvStr(strVcvStrUno,strVcvStrDeu,strVcvStrTro,strVcvStrQat);
    cout<<"("<<__func__<<")svs1<"<<StrVcvStrUno<<">svs2<"<<StrVcvStrDeu<<">svs3<"<<StrVcvStrTro<<">svs4<"<<StrVcvStrQat<<">"<<endl;//cin.ignore();
    	string uno=StrVcvStrUno;
    	string deu=StrVcvStrDeu;
    	cout<<uno<<" "<<deu<<endl;
    	if  (uno == "j.de sem." )	{deu = "45";}
    	if  (uno == "dimanches" )	{deu = "50";}
    	if  (uno == "j.f.fixes" )	{deu = "55";}
    	if  (uno == "j.f.libres" )	{deu = "60";}
     
    	if  (uno == "45" )	{deu = "j.de sem.";}
    	if  (uno == "50" )	{deu = "dimanches";}
    	if  (uno == "55" )	{deu = "j.f.fixes";}
    	if  (uno == "60" )	{deu = "j.f.libres";}
    	StrVcvStrUno=uno;
    	StrVcvStrDeu=deu;
    cout<<"                                                                         1:>"<<StrVcvStrUno<<"<"<<endl;
    cout<<"                                                                         2:>"<<StrVcvStrDeu<<"<"<<endl;
    cout<<"                                                                         z:<E>("<<__func__<<")"<<endl;
    return "";
    }//fcstrVcvStr/27/03/16 16;16/table réversible/2015
    Cordialement.
    Sen.

  4. #4
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Sinon, il y a aussi boost::bimap, qui est une map à double sens.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Points : 0
    Points
    0
    Par défaut
    mmerci!
    Une map semble être une "carte".
    Si bi map c'est une carte qui fonctionne dans les deux-sens.
    Dans le nom de ma fonction figure...Vcv... pour Vice-Versa.
    Comme je n'utilise pas Boost(mauvais choix primitif) je continue avec dev-c++
    et j'utilise cette fonction pré-historique que je maîtrise ce qui est primordial.
    Merci à Tous!
    Cordialement.
    Sen.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par senvedgi Voir le message
    Bizarre ma question?
    Pas plus que d'habitude faut dire.. mais une telle manipulation est au mieux unusuelle. Sinon carrément inutile parce qu'il y aurait mieux à faire.

    Citation Envoyé par senvedgi Voir le message
    Mais "Map"(machine à pain?).
    http://lmgtfy.com/?q=C%2B%2B+map

    Ton code est vraiment pas top.
    Des espaces ne seraient pas un luxe. Autant que le nommage des variables et des fonctions. Là on comprend rien.
    A coup de if t'es pas couché si tu comptes en ajouter/modifier par la suite. Et pour chaque entrée tu as 2 emplacements à vérifier, 2 fois plus de source d'erreur.
    Enfin, mais on te le répète depuis ton premier post ici donc autant pisser dans un violon, à quoi bon retourner un string vide ?!?! C'est pas comme si void existait et servait à ça..

    edit: et surtout ta fonction ne fait strictement rien d'autre que retourner une chaîne en fonction d'une autre en entrée. C'est juste l'utilisation d'une simple map qui permettrait ça.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Citation Envoyé par senvedgi Voir le message
    Une map semble être une "carte".
    Perdu

    Un tableau associatif avec lequel la clef c'est la valeur

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Points : 0
    Points
    0
    Par défaut
    Je vous rappelle que le forum a comme titre débuter..
    Que je suis là pour apprendre...
    Que les querelles techniques et linguistiques ne sont pas ma tasse de thé.
    Cordialement.
    Sen.

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Ca fait plusieurs années (et ce n'est pas mon côté marseillais qui parle) que l'on te dit
    - que dev-cpp est obsolète
    - que tu programmes mal, à commencer par le nommage de tes variables, fonctions
    - que return ""; à chaque fonction est ridicule et inutile
    - que tes messages sont cryptiques et télégraphiés limites lisibles/compréhensibles pour certains
    et à chaque fois tu te caches derrière le "c'est un forum débutant, et puis ça marche comme ça alors je garde ça".. avec une solution on ne peut plus bancal
    que tu rejettes toute solution faisant appel à simplement la STL
    si tu veux apprendre, lis nos réponses et comprends-les/appliques-les, mais ça ne semble pas être ton optique non, forum débutant ou pas
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Points : 0
    Points
    0
    Par défaut
    Une map c'est quoi? Toujours pas réponse compréhensible..!
    C'est sûr que des if sont plus compliqués que ce code.
    n.b.:..et il n'y a pas de return,bigre!
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    template <  class  Map ,  class  CompatibleKey ,  class  CompatibleData  > 
    void  use_it (  Map  &  m , 
                 const  CompatibleKey   &  key , 
                 const  CompatibleData  &  data  ) 
    { 
        typedef  typename  Map :: value_type  value_type ; 
        typedef  typename  Map :: const_iterator  const_iterator ;
     
        m . insert (  value_type ( key , data )  ); 
        const_iterator  iter  =  m . find ( key ); 
        if (  iter  !=  m . end ()  ) 
        { 
            assert (  iter -> first   ==  key   ); 
            assert (  iter -> second  ==  data  );
     
            std :: cout  <<  iter -> première  <<  "->"  <<  iter -> second ; 
        } 
        m . effacer ( clé ); 
    }
     
    int  principal () 
    { 
        typedef  bimap <  set_of < std :: string >,  set_of < int >  >  bimap_type ; 
        bimap_type  bm ;
     
        // Carte standard 
        { 
            typedef  std :: map <  std :: string ,  int  >  map_type ; 
            map_type  m ;
     
            use_it (  m ,  "un" ,  1  ); 
        }
     
        // Carte Vue gauche 
        { 
            typedef  bimap_type :: left_map  map_type ; 
            map_type  &  m  =  bm . Gauche ;
     
            use_it (  m ,  "un" ,  1  ); 
        }
     
        // Inverse carte standard 
        { 
            typedef  std :: map <  int ,  std :: string  >  reverse_map_type ; 
            reverse_map_type  rm ;
     
            use_it (  rm ,  1 ,  "un"  ); 
        }
     
        // Carte Vue droite 
        { 
            typedef  bimap_type :: right_map  reverse_map_type ; 
            reverse_map_type  &  rm  =  bm . Droite ;
     
            use_it (  rm ,  1 ,  "un"  ); 
        }
     
        retour  0 ; 
    }
    Moi c'est du sandwich pas du Michelin.
    Cordialement.
    Sen.

  11. #11
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    réponse A: comme on te l'a déjà dit!
    une map, c'est un conteneur associatif.
    un Bidule contenant associant des valeurs à des clés.
    le nom vient directement et évidemment de l'anglais.
    La traduction du nom serait probablement: association

    A map maps keys to values in a one to one fashion.
    une association associe des clés à des valeurs, chaque clé vers une seule valeur.

    Que veux-tu entendre d'autre?

    réponse B: un composant de la STL, donc définie par le traité décrivant le langage C++.

    réponse C: un composant extrèmement important à comprendre car très utilisé.

    réponse D: as-tu lu nos précédents messages?
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Points : 0
    Points
    0
    Par défaut
    Je relis les messages.
    On pose une question simple: qu'est-ce qu'une map?
    Toujours pas de réponse au bout de 3 messages.
    Au 4e:" on te l'a déjà dit!". Technique connue pour enfoncer quelqu'un: voyez c'est un nul!
    C'est un grand classique
    Ce qui me suffit c'est que çà marche et que je comprenne ce que je fais.
    Côté return: personne n'explique à quoi çà sert et quand. Avec return ""; je n'ai pas de problème alors je continue.
    Si çà peut vous faire plaisir je supprime quand possible.
    Merci pour vos amabilités.
    Cordialement.
    Sen.

  13. #13
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Citation Envoyé par senvedgi Voir le message
    On pose une question simple: qu'est-ce qu'une map?
    Ce n'est pas notre faute si ta maman te torche encore le derrière

    Wiki tableau associatif

    En gros c'est un tableau dont les index sont des chaînes de caractères.

    Après il faudra que tu sors ton dico pour les mots "tableau", "index" et "chaînes de caractères"


    Citation Envoyé par senvedgi Voir le message
    Côté return: personne n'explique à quoi çà sert et quand.
    En français tu es déjà une grosse quiche alors en anglais

    Return -> Retourner.

    Lorsque tu codes une fonction/ procédure/ méthode (que ce soit la déclaration que la définition) c'est le schéma suivant:
    [type de retour] [nom]([liste des paramètres]).

    Et tu ne percutes pas que le mot clef return c'est pour retourner le résultat ayant comme type le "type de retour".

    Le mot clef void est prévu pour ne rien retourner.

    Et si tu veux quitter en cours de route un return suffit (<- évidement de ce cas si le type de retour n'est pas void, il faut prévoir une valeur spéciale true, false, 0, MY_NO_ERROR, ....)

  14. #14
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    T'es sur que tu lis le forum avec l'écran allumé ?
    Dans l'ordre tu as une allusion à map, un lien boost, un lien google, une définition de foetus, une autre de leternel et maintenant une nouvelle définition de foetus et un lien wikipedia.. Et il n'a jamais été interdit de chercher soi-même sur Google ou n'importe quel moteur de recherche tous les termes qu'on t'a indiqué.
    Donc de qui se moque-t-on là ?!
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Fonction API
    Par margilb dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/07/2002, 11h11
  3. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19
  4. fonction printf
    Par ydeleage dans le forum C
    Réponses: 7
    Dernier message: 30/05/2002, 11h24
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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