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 :

Fonction refusée à la compilation


Sujet :

Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 14
    Par défaut Fonction refusée à la compilation
    Salut à tous,

    Pouvez vous me dire pourquoi cette fonction est refusée a la compilation ?

    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
    function init_tab(taille : integer): array of integer;
    var
       i : integer;
       T : array of integer;
    begin
     
       setlength(T, taille);
     
       for i := 0 to taille-1 do
       begin
          write('Entrer la ', i+1, ' e valeur du tableau : ');
          readln(T[i]);
       end;
     
    end; { init_tab }
    voila mon code source entier :

    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
    program tri;
     
    var
       tab : array of integer;
       a   : integer;
     
     
    function init_tab(taille : integer): array of integer;
    var
       i : integer;
       T : array of integer;
    begin
     
       setlength(T, taille);
     
       for i := 0 to taille-1 do
       begin
          write('Entrer la ', i+1, ' e valeur du tableau : ');
          readln(T[i]);
       end;
     
    end; { init_tab }
     
     
    procedure view_tab(T : array of integer; taille : integer);
    var i : integer;
    begin
       for i:=0 to taille-1 do
       begin
          writeln('tab[', i, '] = ', T[i]);
       end;
     
    end; { view_tab }
     
     
    begin					
     
       writeln('Entrer la taille du tableau	: ');
       readln(a);
     
       tab := init_tab(a);
     
       writeln('Voici le tableau n''etant pas trie : ');
       view_tab(tab, a);
     
    end.
    et voici l'erreur de free pascal compiler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tri.pas(7,38) Error: Type identifier expected
    tri.pas(7,38) Fatal: Syntax error, ";" expected but "ARRAY" found
    Fatal: Compilation aborted

  2. #2
    Membre expérimenté Avatar de Tux++
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    281
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 281
    Par défaut
    Bonjour,


    en pascal standard tu ne peux renvoyer un type composé comme retour d'une fonction enfin pas directement

    Tu dosi créer un type :

    Type
    Matrice = Array of integer;

    function....(): Matrice



  3. #3
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 969
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 969
    Par défaut
    Jai,

    Tu déclares une type Array of integer, et tu ne t'en sers jamais.

    S'il est déclaré, il faut t'en servir partout où tu veux gérer des variables de ce type.

    Pascal est très strict sur le type des données, c'est une des raisons qui en ont fait un langage très utilisé pour l'initiation à la programmation, car il oblige à la rigueur.

  4. #4
    Membre très actif
    Avatar de diden138
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    714
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 714
    Par défaut Re
    Tu déclares une type Array of integer, et tu ne t'en sers jamais.
    où ? il n'a jamais déclarer de type array of integer
    Pour ton problème il faut comme on te la dit , définir un type de donnée que tu va utiliser plus tard dans ton code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Type
     Tab_int=Array of integer;
    Var
     i : integer;
     T :Tab_int;
    function init_tab(taille : integer):Tab_int;
    ...
    je te laisse le soin de continuer
    ah une chose encore tu utilise un tableau dynamique tu devrais alors savoir que le passage à la fonction se fait par référence.
    Ps: si c'est résolu n'oublie pas de le mettre.
    Cordialement,

  5. #5
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 969
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 969
    Par défaut
    Gae,
    Citation Envoyé par diden138 Voir le message
    où ? il n'a jamais déclarer de type array of integer
    C'est vrai, j'ai lu un peu vite. C'est dû aux réflexes : dès je vois Array of Integer, j'en conclus qu'on est dans une section Type.

  6. #6
    Membre très actif
    Avatar de diden138
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    714
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 714
    Par défaut Re
    j'avoue que moi aussi
    Cordialement,

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

Discussions similaires

  1. Interface de fonction qui ne compile pas. Pourquoi ?
    Par shadock0 dans le forum Fortran
    Réponses: 8
    Dernier message: 18/01/2012, 10h34
  2. c++, fonction modifiable après compilation
    Par Spartx dans le forum Langage
    Réponses: 27
    Dernier message: 25/08/2011, 02h03
  3. fonction dir après compilation
    Par Anduriel dans le forum MATLAB
    Réponses: 2
    Dernier message: 08/07/2011, 08h27
  4. appel direct de fonction refusé !
    Par Papy_77 dans le forum Général Python
    Réponses: 5
    Dernier message: 24/01/2010, 20h07
  5. Réponses: 3
    Dernier message: 27/03/2006, 13h06

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