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 :

Syntaxe procédure et fonction


Sujet :

Langage Pascal

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Syntaxe procédure et fonction
    bonsoir, je viens d'entamer le chapitre des procédures et fonctions avec le langage pascal. mais il y'a une chose que je n'arrive pas a comprendre, la déclaration des variables locales dans l'entête de la procédure ou fonction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    En-tête :
    procedure <nom_proc> (liste de paramètres) ;
    voila ce que je n'ai pas compris.
    quel est la différence entre déclarer une variable dans la liste de paramètres ou alors faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    procedure <nom_proc> (liste de paramètres) ;
    var <nom_variable> : <type_variable> ;
    autre petite question à part les variables quel sont les autres paramètres pour les procédures et fonctions.

  2. #2
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    La différence réside dans le role que joue ces variables. Un paramètre comme son non l'indique sert a paramétrer une fonction en selon le cas d'utilisation. On peut prendre le cas d'une fonction de salutation dans plusieurs langues. On peut utiliser un paramètre pour choisir la langue.
    une variable locale a une fonction sert juste a conserver des données utilisées par la fonction pour ses calculs internes
    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
     
    program salutation;
     
    type
            TLangue=(fr, ang, esp);
     
    procedure saluer(lang : TLangue);
     const 
               helloFr='Bonjour';
               helloAng='Good morning';
               helloEsp='Buenos dias'; 
    begin
     Case lang of
       fr : write(helloFr);
       ang : write(helloAng);
       esp : write(helloEsp);
     end;
    end;
     
    Begin
     saluer(ang);
     writeln(' Nabster');
    End.
    Ce programme affichera : Good morning The nabster's

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    et bien darrylsite, merci tu a bien clarifier les choses
    maintenant me reste plus qu'a pratiquer pour bien les utiliser.

  4. #4
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    les variable locale sont uniquement visible dans la fonction ou elle sont déclarée.

    c'est une notion de programmation, la portée :
    - portée globale d'interface, visible par toute l'unité et toutes les unités appelante.

    - portée globale d'implementation, visible uniquement dans l'implementation de l'unité.

    - portée locale, dans les fonctions et méthodes de classe, visible uniquement, comme dis precedement, par la fonction ou la méthode.

    c'est déclaration peuvent être :
    un/des type(s)
    une/des constante(s)
    une/des variable(s)
    une/des fonction(s)

    la visibilité de la portée dans le code est descendante. c'est à dire que la déclaration supérieur ne peux accéder à la déclaration inférieur, mais la déclaration inférieur peut voir la déclaration supérieur.
    d'ou les class abstract
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    type 
      TA = class; // <- class abstract, préserve l'ordre A, B
     
      TB = class
        A : TA; // peux voir TA
      end;
     
      TA = class
        B : TB; // peux voir TB
      end;
    sans class abstract :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    type
      TA = class
        B : TB; // erreur à la compilation
      end;
     
      TB = class
        A : TA; // peux voir TA
      end;
    et les commutateurs Forward des fonctions, utiles dans certains cas.


    le seul cas ou une déclaration supérieur peut faire appel à une déclaration inférieur c'est les pointeurs. En effet, et tu le vera quand tu y sera, les pointeurs ne provoque pas d'erreur de déclaration dans ce cas (voir l'exemple des classes) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    type
      PA = ^TA; // pas d'erreur, mais attend une déclaration plus bas
      PB = ^TB; // pas d'erreur, mais attend une déclaration plus bas
      TB = <type>
      TA = array of TB;

    des questions ?
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  5. #5
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    plus de questions pour l'instant, merci bien. explication claire.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/03/2006, 15h38
  2. Mysql5: différences entre procédures et fonctions
    Par El Riiico dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 25/11/2005, 05h43
  3. Réponses: 5
    Dernier message: 14/10/2005, 12h11
  4. Syntaxe de la fonction SQL month() ??
    Par merlubreizh dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/09/2005, 11h16
  5. syntaxe procédure stockée
    Par KRis dans le forum SQL
    Réponses: 4
    Dernier message: 06/05/2004, 18h04

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