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

Ada Discussion :

record et array


Sujet :

Ada

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut record et array
    Bonjour,

    Alors voilà je viens juste de démarrer la programmation en ADA. J'aimerais faire un record comprenant un tableau et deux entiers mais j'ai des erreurs à la compilation.
    Pour vous donner une idée du code (package):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    type Tableau is array (Integer range 1..100) of Integer;
    type File is private;
     
    ...
     
    type File is  record
    Tab: Tableau;
    tete: Integer;
    queue: Integer;
    end record;
     
    end File_tableau;
    Savez-vous où je me plante ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Peut-être as-tu oublié le mot réservé "private" ?

    Si non, j'en sais rien, quelle est l'erreur ? As-tu bien commencé ton paquetage avec le mot "package" ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Ben si j'ai l'impression d'avoir mis en private...
    Voilà le package:

    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
     
    package File_tableau is
     
    type File is private;
    type Tableau is private;
    Taille_Max: constant Positive :=5;
     
    function Nouvelle_File return File;
     
    function Est_Vide(F: in File) return boolean;
     
    function Est_Pleine(F: in File) return boolean;
     
    procedure Enfiler(F: in out File; E: Integer);
     
    private
    type Tableau is array (Integer range 1..Taille_Max) of Integer;
     
    type File is  record
    Tab: Tableau;
    tete: Integer;
    queue: Integer;
    end record;
     
    end File_tableau;
    et le package body


    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    with Ada.Integer_Text_IO, Ada.Text_IO;
    use Ada.Integer_Text_IO, Ada.Text_IO;
     
    package body File_tableau is
     
    bidon:Integer;
     
    procedure enfiler(F: in out File; E: in Integer) is
    begin
    if(Est_Pleine(F)) then
    Put("File pleine");
    else 
    F.Tab(F.queue):=E;
    F.queue:=(F.queue-1) MOD Taille_Max;
    end if;
    end enfiler;
     
    procedure defiler(F: in out File; E: out Integer) is
    begin
    if(Est_vide(F)) then
    Put("File vide");
    else 
    E:=F(F.tete);
    F(F.tete):=-1;
    F.tete:=(F.tete-1) MOD Taille_Max;
     
    end if;
    end defiler;
     
    function Nouvelle_File return File is
    F:File;
    begin
    F.tete:=Taille_Max;
    F.queue:=Taille_Max;
    F.Tab:=(others => -1);
    return F;
    end Nouvelle_File;
     
    function Est_Vide(F: in File) return Boolean is
    begin
    if(F.tete=F.queue) then return True;
    else return False;
    end if;
    end Est_vide;
     
    function Est_Pleine(F: in File) return Boolean is
    begin
    if(F.queue=F.tete+1) then return True;
    else return False;
    end if;
    end Est_Pleine;
     
    begin
    bidon:=0;
    end File_tableau;
    Mais le compilateur me retourne:
    file_tableau.adb:23:04: array type required in indexed component
    file_tableau.adb:24:01: array type required in indexed component
    gnatmake: "file_tableau.adb" compilation error

  4. #4
    Invité
    Invité(e)
    Par défaut
    oups j'ai mal lu, je vais regarder mieux pardon.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Voilà, ligne 23 24 il te faut écrire F.Tab := .

    Un oubli probablement. F est une file.

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup c'etait effectivement ca , merci, merci

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

Discussions similaires

  1. Tableau Array record
    Par tintin62 dans le forum Débuter
    Réponses: 7
    Dernier message: 24/08/2010, 22h03
  2. Record en Array of StringList
    Par BuzzLeclaire dans le forum Langage
    Réponses: 14
    Dernier message: 31/10/2009, 16h00
  3. Réponses: 1
    Dernier message: 23/05/2009, 13h35
  4. low d un array of record : pb ds boucle FOR
    Par sp2308 dans le forum Débuter
    Réponses: 9
    Dernier message: 24/01/2009, 19h09
  5. [LG] Array to packed record
    Par Nomiss dans le forum Langage
    Réponses: 4
    Dernier message: 16/12/2005, 22h28

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