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 :

portée globale/locale dans fonction


Sujet :

C++

  1. #1
    Membre très actif
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Par défaut portée globale/locale dans fonction
    bonjour à tous!
    La fonction FcStrAlz analyse une chaine "1234..".
    Si un chiffre est présent devant la fonction un drapeau "0" empêche l'apparition d'une ligne.
    Mais la valeur du drapeau ne sort pas de la fonction...
    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
     
    //analyse de chaine
    #include <iostream>
    #include <string>
    using namespace std;
     
     
    string FcStrAlz(string StrAlz,string StrItm)//fonction confrontant
    {//Fc/déb 13/09/11                          //un verrou "1"..."n"
    cout<<"-----------------------"<<endl;      //avec sa présence
         int taille = StrAlz.size ();           //dans la chaine StrAlz
         int t=0;                               //si verrou la ligne s'efface
         string ElmStrAlz,stp="0";              //si verrou absent ou ""
         cout<<"  /d/<"<<stp<<">"<<endl;        //la ligne apparaît
         while (t<taille)
              {ElmStrAlz=StrAlz.substr(t,1);
              t++;
              cout<<ElmStrAlz<<" ";
              if (ElmStrAlz==StrItm)
                  {stp="0";break;}              //si 0 efface ligne
                  else stp="1";                 //si 1 igne apparait
              }
              cout<<"/z/<"<<stp<<">"<<endl;
    cout<<"------------------------"<<endl;
         return stp;
    }//Fc/fin 13/09/11
     
     
    //prg essai
    string StrAlz="123456";//chaine des verrous possibles
    string Alz,StrItm,stp;
    int main ()
    {
        cout<<"ei-<"<<stp<<">-"<<endl;                                    //état stp entrée int main
            StrItm="1";                                                   //verrou "1" actionnant la L39
            Alz=FcStrAlz(StrAlz,StrItm);
        cout<<"1ex-<"<<stp<<">-ex pourquoi TOUJOURS VIDE!"<<endl;         //état stp sortie de fonction
            if (stp=="0")                                                 //ligne actionnée par L36
            {cout<<"§1 effacé"<<endl;}
            if (stp=="1")                                                 //cette ligne fonctionne pas car L36 a valeur "1"
            {cout<<"§1 apparaît"<<endl;}
     
            //ici pas de verrou 3 installé(on pourrait mettre StrItm="";)
            Alz=FcStrAlz(StrAlz,StrItm);
        cout<<"3ex-<"<<stp<<">-ex pourquoi toujours vide!"<<endl;         //état stp sortie de fonction
            if (stp=="0")                                                 //ligne fonctionne pas car L44 sans valeur
            {cout<<"§3 effacé"<<endl;}
            if (stp=="1")                                                 //ligne fonctionne car L44 sans valeur
            {cout<<"§3 apparaît"<<endl;}
        cout<<"0 pour sortir de int main";int zer;cin>>zer;
    }
    Où est l'erreur?
    Merci pour vos lumières.
    Sen.

  2. #2
    Membre chevronné

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Par défaut
    Citation Envoyé par senvedgi Voir le message
    Mais la valeur du drapeau ne sort pas de la fonction...
    La chaine stp globale n'est pas la chaine stp locale de ta fonction!!!!!!!
    En revanche, ta fonction retourne bien le contenu de du stp local de la fonction et affecte cette valeur à Alz dans le main. La fonction semble, elle, bien fonctionner à première vue.

  3. #3
    Membre très actif
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Par défaut
    Merci.Je vais revoir la notion globale/locale.
    Mais ne suis pas sûr de trouver.
    Sen.

  4. #4
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par défaut
    Citation Envoyé par senvedgi Voir le message
    Merci.Je vais revoir la notion globale/locale.
    Mais ne suis pas sûr de trouver.
    Sen.
    1/ Toutes les variables déclarées dans des blocs {...} sont locales à ces blocs

    2/ Toutes les variables déclarées en dehors de tout bloc sont dites "ayant la portée du non d'espace", c'est à dire qu'elle sont globales dans le nom d'espace (namespace). Si il n'y a pas de nom d'espace, elles sont globales au programme.

    3/ une variable peut être cachée par une autre. Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    voif function(int param) // param a par exemple la valeur 3
    {
      std::cout << "param = " << param << std::endl;
      int param = 4:
      std::cout << "param = " << param << std::endl;
      if (param != 3) {
        float param = 3.5f;
        std::cout << "param = " << param << std::endl;
      }
    }
    Dans ton code, tu définis une variable globale stp (en dehors de toute fonction ; ligne 31).

    Puis, dans la fonction FcStrAlz (sérieux, il manque des touches à ton clavier ? Et pourquoi Fc ? Tu avais peur de confondre la fonction avec une livre de beurre fondu ?), tu redéfini une variable stp locale (ligne 13) qui cache la variable stp globale.

    Du coup, les modifications de stp qui sont dans la fonction FcStrAlz ne modifie que la variable locale, et pas la variable globale.
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  5. #5
    Membre très actif
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Par défaut
    beurre fondu:quand je crée une fonction elle commençe toujours par Fc(+)XYZ.Les strings associées sont voisines voires identiques à XYZ pour pouvoir m'y retrouver aujourd'hui ...et plus tard(smiley vieux).Homogénéité oblige.
    Merci docteur pour le diagnostic.J'essaye de modifier astucieusement les déclarations de stp pour obtenir le résultat escompté et espère revenir bientôt pour présenter un travail fini Ou trouver une autre solution.
    Sen.

  6. #6
    Membre chevronné

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Par défaut
    J'ajoute une précision :

    Si tu souhaite effectivement que la variable stp modifiée par ta fonction soit la variable globale stp il suffit de déclarer la variable globale stp avant ta fonction FcStrAlz et de ne pas redéclarer stp dans cette fonction.
    Voici une version ou la fonction modifie la variable globale:

    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
     
    //analyse de chaine
    #include <iostream>
    #include <string>
    using namespace std;
     
    //prg essai
    //Déclarér les variables globales
    string StrAlz="123456";//chaine des verrous possibles
    string Alz,StrItm,stp;
     
    string FcStrAlz(string StrAlz,string StrItm)//fonction confrontant
    {//Fc/déb 13/09/11                 //un verrou "1"..."n"
    cout<<"-----------------------"<<endl;//avec sa présence
         int taille = StrAlz.size ();   //dans la chaine StrAlz si verrou la ligne s'efface
         int t=0;						//si verrou absent ou "" la ligne apparaît
         string ElmStrAlz;
    	 stp="0";//Ne pas redéclarer stp sinon elle devient locale ( seulement l'initialiser )
         cout<<"  /d/<"<<stp<<">"<<endl;
         while (t<taille){
    		 ElmStrAlz=StrAlz.substr(t,1);
             t++;
             cout<<ElmStrAlz<<" ";
             if (ElmStrAlz==StrItm){
    			 stp="0";
    			 break;
    		 }              //si 0 efface ligne
             else
    			 stp="1";                 //si 1 igne apparait
    	 }
         cout<<"/z/<"<<stp<<">"<<endl;
    	 cout<<"------------------------"<<endl;
         return stp;
    }//Fc/fin 13/09/11
     
    int main ()
    {
        cout<<"ei-<"<<stp<<">-"<<endl;                                    //état stp entrée int main
        StrItm="1";                                                   //verrou "1" actionnant la L39
        Alz=FcStrAlz(StrAlz,StrItm);
     
        cout<<"1ex-<"<<stp<<">-ex pourquoi TOUJOURS VIDE!"<<endl;         //état stp sortie de fonction
        if (stp=="0"){                                              //ligne actionnée par L36
            cout<<"§1 effacé"<<endl;
    	}
    	if (stp=="1"){                                                 //cette ligne fonctionne pas car L36 a valeur "1"
    		cout<<"§1 apparaît"<<endl;
    	}
     
        //ici pas de verrou 3 installé(on pourrait mettre StrItm="";)
        Alz=FcStrAlz(StrAlz,StrItm);
        cout<<"3ex-<"<<stp<<">-ex pourquoi toujours vide!"<<endl;         //état stp sortie de fonction
    	if (stp=="0"){                                                 //ligne fonctionne pas car L44 sans valeur
    		cout<<"§3 effacé"<<endl;
    	}
    	if (stp=="1"){                                                 //ligne fonctionne car L44 sans valeur
            cout<<"§3 apparaît"<<endl;
    	}
        cout<<"0 pour sortir de int main";int zer;cin>>zer;
    }

  7. #7
    Membre très actif
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Par défaut
    Merci:çà marche!
    Ce qui me chagrine c'est l'obligation de déclarer la variable stp avant la FonCtion.La déclaration de stp "fait donc partie de la fonction"..
    D'autre part si ma fonction fonctionne en temps que telle l'utilisation de la chaine de verrous possible(StrAlz...123..) est mal foutue.Je vais revoir la conception de mon effacement sélectif de lignes de menu avant un switch(nn).
    En attendant merci pour la leçon globale/locale avec l'exemple fourni.

    Sen.

  8. #8
    Membre chevronné

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Par défaut
    Si je peux me permettre, l'utilisation de variables globales est fortement déconseillée ( car n'importe qui peut y accéder ) , il est toujours préférable d'utiliser des variables locales ( comme tu l'as fais dans ton premier programme ) et de récupérer la valeur souhaitée par retour ( comme tu l'avais fait; je me répète )

    Comme je vois que tu est débutant, je te conseille cette excellente lecture : Penser en C++ disponible gratuitement sur ce site

  9. #9
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut
    Citation Envoyé par senvedgi Voir le message
    beurre fondu:quand je crée une fonction elle commençe toujours par Fc(+)XYZ.Les strings associées sont voisines voires identiques à XYZ pour pouvoir m'y retrouver aujourd'hui ...et plus tard(smiley vieux).Homogénéité oblige.
    A vrai dire, je ne suis pas partisan de cette notation (qui se rapproche de la notation hongroise) simplement parce que:
    • On se doute qu'une fonction est une fonction, et non une livre de beurre fondu ( )
    • il est beaucoup plus facile de s'y retrouver lorsque les fonctions, variables et types ont des noms clairs et explicites, et, surtout pas, des abréviations
    Le nom de tes fonctions, types et variable ne coute rien en terme de performance:
    une fonction nommée fcMachChose ne prendra pas plus d'espace en mémoire que la même fonction nommé faitMachinChoseAvecCeci, et, l'auto complétion aidant, cela ne te prendra même pas plus de temps pour écrire l'invocation de la deuxième que pour le faire pour la première.

    Par contre, la fonction "faitMachinChoseAvecCeci" sera beaucoup plus facile à comprendre lorsque l'on relira le code ( et tu n'es pas sans savoir qu'un code est beaucoup plus souvent lu / étudié qu'il n'est écrit / compilé ), ne serait ce que parce qu'on ne doit pas, en plus de tout le reste, se souvenir que l'on utilise "classiquement" str pour parler de chaine de caractères ou que Alz correspond à quelque chose de particulier (à quoi ca correspond, d'ailleurs )
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  10. #10
    Membre très actif
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Par défaut
    Comme ma fonction de retourne pas le calcul de stp(stop(!)) j'ai pensé,
    nous avons pensé que c'était un problème de portée.

    Alz=Analyze(!);Str pour STRring;Fc pour FonCtion car j'aime faire court!
    A ma décharge ces fonctions sont basiques,élémentaires donc les noms idem.
    Si j'avais à créer une fonction de racine carrée elle serait notée FcRacCar facile à écrire car la phase de mise au point peut être longue(!!) et donc écrire Calculelaracinecarree cela va être fastidieux.Quitte d'ailleurs à rallonger le nom comme tu dis quand la fonction sera finalisée .

    Notation hongroise sur calculette programmable Hp(smiley vieux)?
    Merci pour vos commentaires et conseils de vieux briscards.
    Sen.

  11. #11
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par senvedgi Voir le message
    Comme ma fonction de retourne pas le calcul de stp(stop(!)) j'ai pensé,
    nous avons pensé que c'était un problème de portée.

    Alz=Analyze(!);Str pour STRring;Fc pour FonCtion car j'aime faire court!
    A ma décharge ces fonctions sont basiques,élémentaires donc les noms idem.
    Si j'avais à créer une fonction de racine carrée elle serait notée FcRacCar facile à écrire car la phase de mise au point peut être longue(!!) et donc écrire Calculelaracinecarree cela va être fastidieux.Quitte d'ailleurs à rallonger le nom comme tu dis quand la fonction sera finalisée .
    Sen.
    Tu pars sur de très mauvais principes!!!

    Il vaut vraiment mieux tout de suite choisir le nom sans l'abréger tant que tu sais parfaitement ce que ta fonction doit faire, ne serait-ce que parce que cela te force d'une certaine manière à savoir effectivement ce qu'elle doit faire (lis ma signature, et tu comprendra ce que je veux dire ) que de se dire que "cette fonction, je ne sais pas trop ce qu'elle fait, alors je choisi un nom à l'arrache, je la renommerai en cas de besoin"...

    Par expérience, tu dois te dire que tu ne la renommera jamais mais que si tu reviens dessus dans trois mois, les abréviations ne te diront plus rien et que, du coup, tu devra retourner dans le code pour essayer de comprendre ce qu'elle fait!

    Bref, en voulant gagner quelques secondes maintenant, tu t'assures une perte de temps importante dans les mois à venir... Le calcul n'est pas vraiment bon, non

    Tu dis que tu nommerais une fonction idéalement nommée racineCarree sous la forme de fcRacCar, moi, je sais que cela me ferait penser à une fonction renvoyant une liste d'équipes de course automobiles
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  12. #12
    Membre très actif
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Par défaut
    la signature est koala?Qu'est-ce que çà veut dire...voyons..voyons?
    koala..koala..ah oui c'est quand j'ai été au zoo et que cet animal m'a bien plut.Mais pourquoi il m'a plut? Sa fourure..?Ses petits yeux...?Son pelage...?Ses petites pattes...?Sa petite taille...?Ah!Il mange des feuilles d'eucalyptus variété globulus.
    Si la signature est koala elle n'est clair que pour son auteur
    Donc en conclusion des noms longs,explicites et possibilité d'en simplifier certains dès la mise au point finie
    sen.

  13. #13
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par senvedgi Voir le message
    la signature est koala?Qu'est-ce que çà veut dire...voyons..voyons?
    koala..koala..ah oui c'est quand j'ai été au zoo et que cet animal m'a bien plut.Mais pourquoi il m'a plut? Sa fourure..?Ses petits yeux...?Son pelage...?Ses petites pattes...?Sa petite taille...?Ah!Il mange des feuilles d'eucalyptus variété globulus.
    Si la signature est koala elle n'est clair que pour son auteur
    La signature, au cas où tu ne l'aurais pas remarqué, commence en bas de chaque message après une petite ligne noire...

    Elle est composée, dans mon cas, d'une série de fleche et je voulais t'inciter à méditer sur la citation de boileau

    Donc en conclusion des noms longs,explicites
    Il ne doivent pas forcément être longs, ils doivent juste être complets, explicites et sans abréviation...

    Si, dans le contexte de leur utilisation, le terme sort, select ou remove est suffisant, cela suffit amplement!!! mais il est possible que tu doive un jour écrire une fonction qui prendra la forme de selectMyParticularTypeFromExpectedCollection, parce que tu veux spécialiser différents types de recherches!
    et possibilité d'en simplifier certains dès la mise au point finie
    sen.
    Pourquoi les simplifier et, surtout, après quelle mise au point

    Le problème d'une fonction, c'est qu'elle sera, par définition, appelée, et que par principe, tu ne sais ni où ni quand tu devra l'appeler : tu sais juste que tu te trouveras alors dans une situation dans laquelle le comportement particulier de cette fonction sera nécessaire pour la logique que tu voudras mettre en oeuvre !

    Tu éprouveras dés lors de toutes manières une certaine difficulté (bien qu'elle puisse être limitée grace à certains outils ) à renommer ta fonction car cela signifie la renommer partout où elle est utilisée ... c'est à dire, n'importe où dans le code

    de plus, il est plus que probable que tu écrives une fonction aujourd'hui, parce qu'elle correspond à un besoin que tu éprouves à l'instant même, puis que tu n'y penses même plus pendant six mois et que, dans six mois, ou un an (ou plus) tu te trouve confronté à une situation dans laquelle la logique que tu essaye de mettre en oeuvre implique, justement, le besoin particulier de ta fonction!

    A la limite, tu auras même oublié l'avoir créée, mais, grâce au nom explicite, à l'auto-complétion ou à la doc, tu te dira "tiens, cette fonction semble faire ce dont j'ai besoin... je vais vérifier sa doc pour savoir si elle fait effectivement ce que je crois!", et tu décideras de l'utiliser.

    Une fois que tu as choisi un nom explicite, cohérent avec l'utilisation que tu fais de ta fonction (ou de ton type personnalisé ou de ta variable), il n'y a plus besoin d'y toucher!

    Quelque part, cela rentre dans le domaine l'OCP ( pour Open Close Principle : principe de l'ouvert / fermé : ton code doit être ouvert à l'évolution, mais fermé à la modification )

    [EDIT]Le besoin est d'autant plus criant si tu dois travailler dans une équipe : il faut, à ce moment là, etre encore plus stricte sur les politiques de nommage et de "mise en forme"
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  14. #14
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    <HS>

    Citation Envoyé par senvedgi Voir le message
    Notation hongroise sur calculette programmable Hp(smiley vieux)?
    Quel rapport entre la notation hongroise et les calculatrices HP ? Tu ne confondrais pas avec la Polonaise inverse par hasard. Ce qui n'a aucun rapport avec le nommage de fonctions/variables et donc avec la notation hongroise.

    </HS>

  15. #15
    Membre très actif
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Par défaut
    oui surement

  16. #16
    Membre très actif
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Par défaut
    Bonjour,
    Jamais je n'aurais pensé que la signature était une série de flèches!Je n'ai pas été une flèche sur ce coup là!
    Mettre au point une fonction demande des retouches fréquentes d'où des noms simplissimes.
    Question renommage avec un bon "super finder xt" cela va vite à retrouver.En travaillant proprement lors des créationsil faut mettre une expression dans la fonction
    (ex.//analyse str) pour la pister partout.
    ocp:je dirais une seule action dans une fonction ou dédoublement si elle devient trop grosse."Fermé à la modif":Je n'ai pas éprouvé ce principe ni me suis rendu compte qu'en ne le respectant pas je m'était tendu des pièges.
    Merci pour ces conseils boussoles dans la jungle des fichiers.
    Signature:Sen.
    (question subsidiaire:je vais bientôt essayer de regrouper mes fonctions en une bibliothèque perso:cela devrait résoudre qq problèmes de modif.Cela fera l'objet d'une autre discussion)

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

Discussions similaires

  1. [Débutant] Les variables globales et locales dans les fonctions
    Par zakimadrid dans le forum MATLAB
    Réponses: 8
    Dernier message: 28/04/2015, 01h34
  2. Réutilisation de variable Locale dans fonction differente
    Par Luke spywoker dans le forum Général Python
    Réponses: 4
    Dernier message: 09/07/2010, 09h13
  3. portée flux de fichier dans fonction
    Par Miko95 dans le forum C++
    Réponses: 3
    Dernier message: 11/01/2008, 10h18
  4. Réponses: 2
    Dernier message: 08/04/2007, 22h24
  5. pb: affecter durablement l'id d'un objet (portée globale et non locale)
    Par pit9.76 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 30/06/2006, 11h19

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