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

Pascal Discussion :

Analyse d'une fonction


Sujet :

Pascal

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Points : 107
    Points
    107
    Par défaut Analyse d'une fonction
    Bonjour , j'ai une fonction sous les yeux et j'ai quelques petites questions la concernant svp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function transforme(n : CARDINAL ) : CARDINAL;
    var
    r,m : CARDINAL;
    begin
    r := 0;
    m := n;
    while m<>0 do begin
    r := r*10 + (m mod 10);
    m := m div 10;
    end {while};
    transforme := r;
    end {transforme};
    Ma 1ère question est : dans les paramètres de la fonction , on déclare une variable de type cardinal nommée n , c'est en fait la variable que manipule la fonction ? Car après en fait on déclare 2 autres variables dont l'une prend comme valeur n , on aurait pas pû déclarer r et n tout simplement , au lieu de rajouter m ?

    Ma seconde question est: quand on écrit m div 10 , si par exemple j'ai m = 2816 , le résultat de m div 10 c'est 281 ? En fait le div est un opérateur qui arrête la division pour que le résultat soit un entier ?

    Ma dernière question est : je ne vois vraiment pas à quoi sert ce transforme := r après la boucle franchement...

    Merci de vos éclaircissements .

  2. #2
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    bonjour,
    une petite lecture sur les fonctions en pascal t'eclaircira un peu je pense

    ici
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  3. #3
    Membre actif Avatar de Ultima
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 223
    Points : 261
    Points
    261
    Par défaut
    Bonjour,
    T'es visiblement un débutant, la première chose à faire est de lire des cours, (livres en pdf ou papier), ensuite passer sur la FAQ, ensuite regarder les questions résolues du forum, et enfin poster tes questions.
    [FONT=&quot][/FONT]
    Vu que je n’ai rien d’autre à faire, je vais t’aider (un peu) ;
    -1- une fonction ne modifie pas les variables misent en paramètres avant de les avoir copié, même si ton compilateur le permet : il faut être rigoureux en programmation, et cette règle doit être suivie.
    -2- div permet d’effectuer des divisions euclidienne ; pour des divisions de réelles "REAL", utilise "/" ;
    -3- une fonction retourne forcément une valeur : en c++ et d’autre langage, t’aurais mis "return nomDEmaFonction" ;
    en pascal t’écrit "nomDEmaFonction := résultat"

  4. #4
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Citation Envoyé par Ultima
    une fonction ne modifie pas les variables misent en paramètres avant de les avoir copié, même si ton compilateur le permet : il faut être rigoureux en programmation, et cette règle doit être suivie.
    dois-je comprendre qu'on a pas le droit de modifier une variable passé en parametre d'une fonction?
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  5. #5
    Membre actif Avatar de Ultima
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 223
    Points : 261
    Points
    261
    Par défaut
    Bonsoir,
    en effet Krachik, la syntaxe correct (mais "bizarre") pour une fonction est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function fonc(const param1, param2 :TYPE1) :TYPE2;
    ainsi le compilateur te prévient si tu essaies de toucher au paramètre, puisque ce dernier est une constante.
    Toutefois, il arrive que tu trouve des fonctions du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     function fonc(var param1 :TYPE1) :TYPE2;
    c'est une autre histoire (que je ne connais pas encore très bien);
    mais en tout cas pour ce dernier cas, tu peut modiffier le paramètre.

  6. #6
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    merci pour la reponse,mais juste pour verifier j'ai lancer l'aide de turbo pascal(j'utilise TP7) et voila ce que l'aide m'indique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Function nomfonct :type
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Function nomfonct(parametres:type ):type
    Alors ma question est ,est ce que tu ne confonds pas par hasard Delphi et TP7?
    je sais dans quel cas on peut modifier les parametres mais je ne savais pas qu'on n'avait pas le droit de les modifier
    alors une derniere question:est ce que un bon code peut modifier les parametres d'une fonction ou bien c'est une habitude a ne pas prendre?
    merci @
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  7. #7
    Membre confirmé Avatar de Haywire
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2006
    Messages : 462
    Points : 573
    Points
    573
    Par défaut
    Si on met var c'est la variable qu'on passe (en réalité son adresse).

    Si on ne met rien, on passe la valeur de la variable, ce qu'elle contient.

    Si on met const, on passe la valeur, qui sera considérée comme une constante, et qu'on ne pourra donc pas modifier. Ca permet aussi au compilateur d'optimiser le code produit.

    Je n'ai jamais entendu parler d'une "règle" de programmation qui interdirait de modifier la valeur d'un paramètre à l'interieur d'une fonction ou procédure.
    var et const servent justement à définir si on souhaite pouvoir la modifier ou non.
    Après c'est au programmeur de savoir s'il a besoin de conserver la valeur originale du paramètre dans une variable spécialement créée pour ça.
    Développeur écolo, je suis pour le développement durable.

  8. #8
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Merci pour ta reponse ,c'est ce que je pensais aussi sauf que voila
    Citation Envoyé par Ultima
    en effet Krachik, la syntaxe correct (mais "bizarre") pour une fonction est :
    Code :

    function fonc(const param1, param2 :TYPE1) :TYPE2;

    ainsi le compilateur te prévient si tu essaies de toucher au paramètre, puisque ce dernier est une constante.
    c'est pour ça que j'ai poser la question pour m'assurer si c'est moi qui me trompait
    @
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  9. #9
    Membre actif Avatar de Ultima
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 223
    Points : 261
    Points
    261
    Par défaut
    krachik à dit:merci pour la reponse,mais juste pour verifier j'ai lancer l'aide de turbo
    pascal(j'utilise TP7) et voila ce que l'aide m'indique
    Function nomfonct :type ou
    Function nomfonct(parametres:type ):type
    Alors ma question est ,est ce que tu ne confonds pas par hasard Delphi et TP7?
    je sais dans quel cas on peut modifier les parametres mais je ne savais pas
    qu'on n'avait pas le droit de les modifier
    alors une derniere question:est ce que un bon code peut modifier les parametres
    d'une fonction ou bien c'est une habitude a ne pas prendre?
    Bonjour,
    Disons que pour une meilleure lisibilité, et pour respecter la convention, il
    est préférable de ne pas toucher aux paramètres d’une fonction si cette
    dernière doit garder sa valeur initiale
    à la fin de l’appelle à la fonction. (Variable globale).

    D’ailleurs, tu peux vérifier avec les démos fournis avec TP que jamais on ne modifie
    la valeur d’un paramètre alors que sa valeur en fin d’appel est sa valeur
    initiale.

    Règle : Différencier variables globales et variable locales.


    Remarque : une procédure étant différente d’une fonction (en pascale), tu
    peux modifier la valeur des paramètres var et out ;

    avec les paramètres out (pour les procédures), t’es obligé de donner une valeur aux paramètres avant
    de quitter la procédure.

    Les paramètres var s’utilisent de la même manière que ce soit dans une
    fonction, ou dans une procédure.

    C’est en effet une mauvaise habitude de tripoter les paramètres supposés
    constante, d’une fonction.

  10. #10
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    merci pour la reponse
    tout ce que je voulais savoir c'etait si c'est une convention de ne pas toucher aux parametres d'une fonction et a en croire tes ecrits c'est le cas,merci pour l'info.
    @
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  11. #11
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    je reviens juste pour clarifier un ou deux points
    Citation Envoyé par Ultima
    Bonjour,
    Disons que pour une meilleure lisibilité, et pour respecter la convention, il
    est préférable de ne pas toucher aux paramètres d’une fonction si cette
    dernière doit garder sa valeur initiale
    à la fin de l’appelle à la fonction. (Variable globale).
    Je suis d'accord avec toi
    Citation Envoyé par Ultima
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function fonc(const param1, param2 :TYPE1) :TYPE2;
    Ceci n'est pas une convention car en aucun cas je n'ai trouvé de const devant les paramètres dans l'aide de TP ou dans un bouquin de Pascal
    le const pousse juste le compilo a signaler au programmeur qu'il n'a pas le droit de le changer mais sans le const le compilo ne dit rien ,mais on est tous d'accord que ce n'est pas une bonne habitude d'y toucher en le changeant
    @
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  12. #12
    Membre actif Avatar de Ultima
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 223
    Points : 261
    Points
    261
    Par défaut
    Citation Envoyé par krachik
    Ceci n'est pas une convention car en aucun cas je n'ai trouvé de const devant les paramètres dans l'aide de TP ou dans un bouquin de Pascal
    le const pousse juste le compilo a signaler au programmeur qu'il n'a pas le droit de le changer mais sans le const le compilo ne dit rien ,mais on est tous d'accord que ce n'est pas une bonne habitude d'y toucher en le changeant
    @
    En effet je ne crois pas que ce soit une convention, d'ailleurs moi même je ne fait pas ça, c'est juste pour aider Maxence à respecter certaines règles de programmation.
    Salut

  13. #13
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Citation Envoyé par Ultima
    En effet je ne crois pas que ce soit une convention, d'ailleurs moi même je ne fait pas ça
    c'est parceque tu veux aider quelqu'un que tu dis que c'est une convention?
    moi j'ai faillit y croire
    mais bon neamoins on s'est compris a la fin
    @
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  14. #14
    Membre actif Avatar de Ultima
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 223
    Points : 261
    Points
    261
    Par défaut
    Citation Envoyé par Ultima
    Bonjour,
    Disons que pour une meilleure lisibilité, et pour respecter la convention, il
    est préférable de ne pas toucher aux paramètres d’une fonction si cette
    dernière doit garder sa valeur initiale
    à la fin de l’appelle à la fonction. (Variable globale).
    Bonsoir,
    en aucun cas je n'ais dit que mettre const été une convention.
    Excuse moi krachik, je ne voulais pas te faire croire cela.
    désolé.
    salut.

  15. #15
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Citation Envoyé par Ultima
    en aucun cas je n'ais dit que mettre const été une convention.


    Citation Envoyé par Ultima
    en effet Krachik, la syntaxe correct (mais "bizarre") pour une fonction est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function fonc(const param1, param2 :TYPE1) :TYPE2;
    Disons que pour une meilleure lisibilité, et pour respecter la convention, il ..........
    bon on va polemiquer la dessus c'est bon on se comprend @
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/04/2015, 11h01
  2. analyse d'une fonction
    Par mimosa13 dans le forum MATLAB
    Réponses: 3
    Dernier message: 03/06/2013, 23h05
  3. lecture de fichier via une fonction d'analyse
    Par Rniamo dans le forum C++
    Réponses: 2
    Dernier message: 17/07/2008, 16h28
  4. [Turbo Pascal] Allocation et désallocation de pointeurs dans une fonction
    Par neird dans le forum Turbo Pascal
    Réponses: 13
    Dernier message: 17/11/2002, 20h14
  5. Une fonction avec des attributs non obligatoires
    Par YanK dans le forum Langage
    Réponses: 5
    Dernier message: 15/11/2002, 13h39

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