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

Langage Pascal Discussion :

Variable locale ou pas ?


Sujet :

Langage Pascal

  1. #21
    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
    Non mais çà c'est la meilleure , mon programme au début de ce post faisait parfaitement ce qu'il devait faire , j'avais juste demandé si le code source pouvait être amélioré , et contrairement à ce que tu dis yavait un réel effort car j'avais fait mon programme seule sans erreur de syntaxe ni quoi que ce soit , mais vous donnez chacun une version différente quand je demande des infos sur le code source , après bonjour pour s'y retrouver !
    MOn programme exécutait tout ce que je voulais au départ , depuis que vous essayez de le changer il marche plus , au départ si j'entrais 5000 j'avais à l'écran :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ./divise
    5000
    500 0
    50 0
    5 5
    0 0
    0
    je l'ai remis comme il était à la base et il marchait très bien , inutile de continuer ce post car comme tu dis on tourne en rond pour rien , merci de l'aide apportée .

    PS : je veux juste changer la fonction en procédure , çà sera plus propre .

  2. #22
    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,
    Ok, tu veux que ton programme affiche quelque chose?
    Alors n’écris pas une fonction. Car il y a une chose sur laquelle tout le monde est d’accord, c’est :
    - Une fonction retourne une valeur mais n’affiche rien.
    Apres tout c’est comme en math:
    soit f(x) = x²
    si je fais f(10), je vais avoir 100,
    je ne peux pas avoir :
    "Bonjour Ultima, ça va ? Alors voila f(10) c’est 10*10 donc sa fait 100";

    t’imagines si à chaque fois le programme t’affiche tout ce baratin alors que tu veux juste une valeur?
    Je suis à la FAC et c’est la première chose que j’ai appris sur les fonctions.

    Sur l’exécution de ton programme que tu as donné, tu sais à quoi est dut le dernier 0 ?
    C’est dû au fait que tu ais mise writeln;
    - div_ise affiche les choses que tu lui as demandé de calculer et d’afficher :
    500 0
    50 0
    5 0
    0 5

    - writeln affiche la valeur de div_ise
    0
    sur TP les variables ou fonctions non initialisées prennent la valeur 0 si elles sont du type INTEGER ou CARDINAL...
    Donc si tu conserve ton algo, efface au moins ce writeln qui ne sert à rien !

    Tu peux aussi changer, dans ton premier programme, function, par procedure.
    (Là tu seras obligé d’effacer ton writeln).

    Je pense vraiment qu’il faudrait que tu lises des cours sur les fonctions et procédures en pascal.
    Pour avoir des cours il te suffit de chercher sur le web.
    Je crois que tu peux trouver des trucs très intéressants sur la partie tutoriel de developpez.com.
    Lis aussi les code simples qui sont donnés en exercices sur :
    http://pascal.developpez.com/exercices/
    Courage, je crois que tu progresses mais que t’as juste besoins de t’exercer un peut.

  3. #23
    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
    Je pense vraiment qu’il faudrait que tu lises des cours sur les fonctions et procédures en pascal.
    sur le site il n'est nullement expliqué quelquepart clairement les fonctions et procédures .
    c'est pas les procédures qui me gênent je les ai compris et j'ai aussi compris maintenant qu'une fonction retourne uniquement une valeur , ce que je ne saisis pas ce sont les paramètres de la fonction , c'est quoi ces paramètres , toutes les données qu elle manipule , des variables , des constantes , des valeurs prédéfinies pour des variables , je regrette mais c'est explique nullepart clairement !
    si t'avais un petit exemple simple de fonction avec un seul paramètre çà m'aiderait mieux que de la théorie je pense...

  4. #24
    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

  5. #25
    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
    je l'ai déjà lu 15 fois le tuto de cyberzoide sur les fonctions , et çà m'a pas grandement aidé , par exemple pour la fonction puissance , il déclare en paramètres i et j , j je suppose que c'est l'exposant , i c'est le nombre de départ , mais pq en fait ici il a du déclarer 2 autres variables locales ?

    en fait les paramètres d'une fonction sont les données qu'elle va utiliser et retourner c'est çà?

  6. #26
    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
    Les paramètres d'une fonction sont les données qu'elle va utiliser POUR pouvoir retourner une valeur.

  7. #27
    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
    ok , alors ici pq il a pas déclaré en paramètres "i,j i2 et a" au lieu de i et j tout court ?

  8. #28
    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
    Les paramètres servent à transmettre à la fonction ou procédure des variables qui ne sont pas globales et dont elle a besoin.

    Imagine que dans ton programme principal tu as une variable tab, qui représente un tableau.
    Tab est une variable locale au programme principal, donc si dans ta fonction ou procédure tu utilises tab, ça ne fonctionne pas, car la fonction/procédure ne connait pas cette variable, elle n'y a pas accès.

    Pour qu'elle puisse l'utiliser il faut lui transmettre, et pour ça tu passes tab en paramètre dans l'appel de ta fonction/procédure.

    En plus de ça, tu peux déclarer toi meme des variables locales dans les fonctions/procédures, ce sont des variables qui n'existent pas en dehors de la fonction/procédure et tu as donc besoin de les déclarer spécialement dedans.
    Développeur écolo, je suis pour le développement durable.

  9. #29
    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
    salut,
    On peut déclarer des variables à l’intérieur d’une fonction, ceux ne sont pas des paramètres de la fonction.

    Ici (cyberzoïde), i et j sont des paramètres, on déclare i2 et a comme variables locales intermédiaires qui vont aider à calculer exposant.

  10. #30
    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
    ok l'explication est claire je commence à saisir , les paramètres de la fonctions sont des variables que le programme principal utilise .
    En gros ici pour la fonction puissance , le programme principal mettons utilisent 2 variables x et y ( x le nombre , y l'exposant ) , et pour que la fonction les calcule , il faut qu'il y est 2 paramètres dans la fonction correspondants à x et y , mais avec d'autres lettres pour plus de lisibilité de préférence , c'est celà?

  11. #31
    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
    Salut,
    C'est tout à fait cela, bravo!

  12. #32
    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
    Un petit exemple de la vie réelle qui peut peut-etre t'aider à comprendre:

    Imagine que tu as un livre, et tu souhaites que tout tes amis signent dedans.

    Pour qu'ils puissent signer, il faut qu'ils aient le livre, il faut leur envoyer, leur transmettre: c'est l'idée du paramètre d'une fonction/procédure.

    Ensuite pour le signer, ils doivent avoir un stylo, mais tu n'as pas besoin d'envoyer ton stylo avec le livre, ils peuvent utiliser leur propre stylo: c'est la variable locale.
    Développeur écolo, je suis pour le développement durable.

  13. #33
    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
    merci les gars je me sens libérée d'un gros poids , je me remets au bout tt de suite

  14. #34
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Points : 711
    Points
    711
    Par défaut
    Bonjour,

    Tu n'as toujours rien compris [voir ton nouveau sujet] http://www.developpez.net/forums/sho...d.php?t=290509 où tu as les mêmes problèmes avec les paramètres d'une fonction], malgré les réponses, assez claires je pense (pas seulement les miennes).

    Par exemple, tu écris
    Citation Envoyé par Maxence45
    ok l'explication est claire je commence à saisir , les paramètres de la fonctions sont des variables que le programme principal utilise
    Non, ce n'est pas ça : les paramètres d'une fonction (ou d'une procédure) sont des valeurs avec lesquelles elle doit faire son travail pour obtenir le résultat désiré.

    On peut, par exemple, parfaitement écrire
    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
     
    ...
     
    function p2(a : integer) : integer;
    var
      resultat : integer;
    begin
      resultat := a * a;
      p2 := resultat;
    end;
    ...
     
    var
      p : integer;
    begin
      p := p2(15);
      ...
    end.
    Comme tu peux le voir, le paramètre passé à p2 ne correspond à aucune variable du programme qui appelle la fonction p2.

    Pour cela, il vaut mieux comprendre que
    "les paramètres de la fonction sont des valeurs que le programme principal utilise, et pour lesquelles il désire connaître le résultat qu'elles donnent, une fois traitées par la fonction".

    Citation Envoyé par Maxence45
    sur le site il n'est nullement expliqué quelquepart clairement les fonctions et procédures .
    c'est pas les procédures qui me gênent je les ai compris et j'ai aussi compris maintenant qu'une fonction retourne uniquement une valeur , ce que je ne saisis pas ce sont les paramètres de la fonction , c'est quoi ces paramètres , toutes les données qu elle manipule , des variables , des constantes , des valeurs prédéfinies pour des variables , je regrette mais c'est explique nullepart clairement !
    [/b]si t'avais un petit exemple simple de fonction avec un seul paramètre çà m'aiderait mieux que de la théorie je pense...[/b]
    Au fil des réponses, tu as eu des exemples corrects qui corrigeaient ton code (par forcément dans le sujet en cours, tu en as fait suffisamment).

    Il faut lire les réponses, et essayer de comprendre ce qu'elles te montrent et te répètent au fil des jours.
    Compilation sans erreur ne signifie pas programme sans erreur.
    L'indentation n'a pas été imaginée pour faire beau, mais pour faciliter la lecture des programmes.

  15. #35
    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
    ok thetwo mais tu noteras qu'il y a un rapport entre les paramètres de la fonction et les variables utilisées dans le programme principal , je pense surtout au nombre de paramètres qui est égal aux variables ud programme principal dans l'exemple du site .

    Tu dis que les paramètres sont des valeurs , ok c'est précis , mais dans le lien que tu m'envois sur mon autre post , je dois donc considéré la chaine de caractères comme une valeur , c'est étrange .

    Ultima et thetwo mettez vous d'accord car l'un dit que j'ai compris et l'autre non lol .

  16. #36
    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
    je pense surtout au nombre de paramètres qui est égal aux variables ud programme principal dans l'exemple du site
    Le nombre de paramètres n'est pas obligatoirement égal au nombre de variables du programme principal. Il ne faut passer en paramètre que le strict minimum nécessaire pour réaliser le travail de la fonction.

    Ultima et thetwo mettez vous d'accord car l'un dit que j'ai compris et l'autre non lol .
    En même temps y en a un qui est débutant également et l'autre qui est pas mal expérimenté: choisis ton camp camarade!

    Ultima c'est bien gentil d'aider ceux qui sont encore plus débutants que toi mais quand tu le fais soit sur de toi car ce n'est pas la peine de les induire en erreur. Tu as plusieurs fois écris des choses totalement fausses ou injustifiées sur le forum.

    Moi même je me considère encore comme un débutant et quand je réponds à quelqu'un c'est que je suis sûr de moi, et si j'ai un doute je consulte mon cours ou un livre avant de répondre.
    Développeur écolo, je suis pour le développement durable.

  17. #37
    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,
    J’aimerais juste savoir, quels sont erreurs (ces choses totalement fausses) que j’ais fait merci.
    Permettez-moi de rajouter que en effet, je suis débutant et c’est essentiellement pour ça que je suis ici, c’est pour cela que je trouve que Thewho est un peut trop strict envers ceux qui sont moins bon que lui, cet attitude est découragent.

  18. #38
    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
    Il y a une erreur dans ce post ci, ou tu disais que les procédures ont accès aux variables globales mais pas les fonctions.

    Et dans un autre post tu disais qu'on ne peut pas modifier variables ou valeurs passées en paramètres d'une fonction/procédure.

    Je ne t'attaque pas mais il faut faire attention à ne pas enfoncer encore plus ceux qui ont des difficultés.
    Je ne trouve pas que thewho soit strict avec les gens, en tout cas pas avec ceux qui font des efforts.

    Imagine un forum de littérature, où on pourrait poster des nouvelles ou des extraits de romans qu'on a écrit soi-même pour avoir des avis et des conseils.
    Imagine que quelqu'un vienne sur ce forum et poste un texte bourré de fautes d'orthographes, de grammaire et de ponctuation.
    On n'essaie pas d'écrire un livre tant qu'on ne connait pas les lettres de l'alphabet, la grammaire et la ponctuation. C'est un minimum.

    Ce forum ne sert pas à donner des cours particuliers aux débutants, mais à leur répondre sur des questions précises. Pas à corriger systematiquement leurs erreurs de syntaxe.

    Je ne peux pas croire que dans les tutos qu'elle a lu on n'explique à aucun moment l'usage des paramètres et variables locales.
    Le problème c'est qu'elle veut apprendre trop vite. D'après ses dires cela fait moins d'un mois qu'elle a commencé le pascal et elle est déjà avec les fonctions et procédures. Pourtant il semble évident qu'elle a encore des lacunes ne serait-ce qu'au niveau du programme principal.
    Développeur écolo, je suis pour le développement durable.

  19. #39
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Points : 711
    Points
    711
    Par défaut
    Bonjour,
    Citation Envoyé par Ultima
    Bonjour,
    J’aimerais juste savoir, quels sont erreurs (ces choses totalement fausses) que j’ais fait merci.
    Permettez-moi de rajouter que en effet, je suis débutant et c’est essentiellement pour ça que je suis ici, c’est pour cela que je trouve que Thewho est un peut trop strict envers ceux qui sont moins bon que lui, cet attitude est découragent.
    Mon attitude est parfaitement justifiée.

    Maxence45 tourne en rond sur le même problème, et au lieu d'essayer de comprendre ce qu'on lui dit, il persiste avec un autre sujet, avec le même problème, etc..., et en plus écrit n'importe quoi (la plupart du temps) par rapport au Pascal, malgré les remarques.

    S'il veut progresser, il faut faire des efforts, et, par exemple, expliquer clairement ce qu'il ne comprend pas, au lieu de persister sur le même problème en changeant quelques bricoles.

    Dit autrement : la bonne manière s'il ne comprend pas quelque chose, que ce soit dans une réponse ou pas, est de le dire, et demander des explications, et/ou des exemples, exemples qui pourraient être liés à une question qu'il se pose, genre:
    "Je veux faire ceci, comment résoudre ce problème ?"

    La programmation, ce n'est pas du bidouillage, il y faut de la rigueur, toujours nécessaire, et du travail si on veut progresser.
    Compilation sans erreur ne signifie pas programme sans erreur.
    L'indentation n'a pas été imaginée pour faire beau, mais pour faciliter la lecture des programmes.

  20. #40
    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,
    Je ne comprends pas une chose, j’ais pourtant bien précisé qu’il y avait malentendu sur les mots que j’ai utilisé pour le cas des fonctions et procédures.
    Di moi franchement Mushroom7 : Tu me crois complètement stupide ?

    Le programme initial de Maxence démontre très clairement que les fonctions ont accès aux variables globales. (C’est pour cela que j’ais fait ma phrase, que vous avez mal compris)


    Je le répète, Je ne voulais pas dire "ne peuvent pas", je voulais dire "ne doivent pas", cela je l’ai bien précisée dès que j’ai compris que vous aviez mal interprété mes mots.

    Excusez moi si je n’ai pas été très claire, mais ma priorité été pourtant de ne pas aller trop vite, pour être le plus claire possible pour Maxence.

    Je tien aussi a dire que même si je trouve que l’attitude de TheWho est un peut strict, je comprends tout a fait sa justification, c’est d’ailleurs ce que je disais dans un autre post, la rigueur est indispensable en informatique. Toutefois il faut aussi jauger avec la patience quand on agit dans un but pédagogique.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Réponses: 10
    Dernier message: 02/07/2012, 17h30
  2. Réponses: 0
    Dernier message: 02/09/2008, 12h14
  3. Réponses: 3
    Dernier message: 15/06/2006, 16h43
  4. [JSTL] Mes variables ne sont pas remplacées par leur valeur
    Par thomine dans le forum Taglibs
    Réponses: 9
    Dernier message: 18/03/2005, 10h00
  5. variables locales ou globales ???
    Par elvivo dans le forum C
    Réponses: 13
    Dernier message: 03/07/2002, 08h22

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