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 :

Passage de paramètres de type prédefini à une procédure


Sujet :

Langage Pascal

  1. #1
    Membre régulier
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Points : 85
    Points
    85
    Par défaut Passage de paramètres de type prédefini à une procédure
    salut,
    pourquoi pascal n'accepte pas cette écriture

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    procedure permuter_element_tableau(var x,y : string[2] );
    var t : string;
    begin
    t := x ;
    x := y ;
    y := t ;
    end;
    le problème c'est que j'ai défini un nouveau type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    type  tab_ch = array[1..10] of string[2];
    cette entête n'est pas accepté non plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    procedure permuter_element_tableau(var x,y : string );
    merci.

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 950
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 950
    Points : 5 667
    Points
    5 667
    Par défaut
    Nai,

    Ça refuse ton code parce qu'il ne respecte pas la syntaxe du langage.

    Parce qu'il faut définir des types, c'est à ça que ça sert.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    type
      str2 = string[2];
     
      tab_ch = array[1..10] of str2;
    ...

  3. #3
    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
    L'explication logique est qu'en pascal, si on definit par exemple les types suivants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    type
           tab1= array[1..2] of string;
           tab2= array[1..2] of string;
    ces deux types sont bien differents. Consequence, on peut realiser l'affectation suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var 
         a:tab1;
         b:tab2;
    begin
    //...
    a:=b;  //erreur type incompatible
    Alors, si il arrive que tu declares une entete comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    procedure permuter_element_tableau(var x,y : string[1..2] );
    il serait alors impossible de trouver un type compatible avec le type specifier dans l'entete pour les raisons sus enoncées.

    Ceci dit, pour passer un tableau en parametre il convient de specifier un type compatible dans l'entete. Ce qui paut se faire seulement de la maniere suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    type
           tableau= array[1..2] of string;
    var 
          a, b : tableau;
     
    procedure exemple(var x, y: tableau); 
    //...
     
    begin
    //...
    exemple(a,b); //a et b sont sont compatible avec l'entete specifier lors de la 
                       // creation de la procedure
    //...

  4. #4
    Membre régulier
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Points : 85
    Points
    85
    Par défaut
    merci pour vos réponses.
    bravo droggo ça marche maintenant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ch = string[2];
    tab_ch = array[1..10] of ch ;
    merci bcp

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/07/2010, 10h39
  2. Passage d'un paramètre avec quote pour une procédure dynamique
    Par dcarroz dans le forum Développement
    Réponses: 7
    Dernier message: 26/01/2010, 11h06
  3. Réponses: 4
    Dernier message: 01/01/2007, 10h26
  4. [ADO] Passage de paramètre de type Date dans une requête
    Par e-ric dans le forum Bases de données
    Réponses: 6
    Dernier message: 25/01/2006, 12h36
  5. Réponses: 2
    Dernier message: 19/03/2005, 17h09

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