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 :

comment utiliser : Ada.text_io.Get_float ?


Sujet :

Ada

  1. #1
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut comment utiliser : Ada.text_io.Get_float ?
    Bonjour|x|Bonsoir,

    Je voudrais utiliser Get_float mais celui-ci a plusieurs déclaration dans le package ada.text_io.float_io que voici (Sans file management):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    procedure Get
         (Item  : out Num;
          Width : Field := 0);
     
    procedure Get
         (From : String;
          Item : out Num;
          Last : out Positive);
    Je ne sais pas laquelle et comment l'utiliser , j'ai utilisé la 1ere avec le code suivant qui comprends 3 fichier (le main file , mon paquet body créer .adb et mon paquet créer .
    ads):


    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
    with Ada.Text_IO;
    with Identification;
     
      --  File  : log_in.adb  
     
    Procedure log_in is
     
       Password : Identification.Password_Value;
       virgules :  Identification.virgules_Value ;
     
       begin
     
       Identification.Get (Password => Password);
     
    if Password = "admin" then
          Ada.Text_IO.Put_Line (Item => "Welcome, Administrator.");
       end if;
     
        if virgules'Valid then
            Ada.Text_IO.Put_Line("A float number was not asked") ;
    end if;                        end log_in;

    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
    with Ada.Text_IO;
    with Ada.float_text_IO;
     
        --  File  :  identification.adb
     
    package body identification is
     
    procedure Get_float
         (Item  : out virgules_Value;
          Width : Field := 0) is
     
    begin
          Ada.float_text_IO.get(Item => virgules);
          Ada.Text_IO.Skip_Line;
     
    end Get_float;
     
    procedure Get (Password : out Password_Value ) is
     
    begin
    Ada.Text_IO.Put (Item => "Hello, User. What's your name? ");
     
    Get_Name : declare
             Name : String := Ada.Text_IO.Get_Line;
          begin
             if Name /= "codezero1" then
                Ada.Text_IO.Put_Line (Item => "You're not Administrator.");
                Get_float ;
             else
                Ada.Text_IO.Get (Item => Password);
                Ada.Text_IO.Skip_Line;
                Ada.Text_IO.New_Line;
             end if;
       end Get_Name;
     
    end Get;
     
    end identification;

    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
     
      --  File  : identification.ads
     
    package identification is
     
       subtype Password_Value is String (1..5);
       subtype virgules_Value is Float ;
     
       procedure Get (Password : out Password_Value);
     
       procedure Get_float
         (Item  : out virgules_Value;
          Width : Field := 0);
         --  errors: "Field" is not visible ,and, non-visible declaration at a-textio.ads:74
     
    end identification;
    Les erreurs du compilateur sont :
    identification.ads:13:15: "Field" is not visible
    identification.ads:13:15: non-visible declaration at a-textio.ads:74

  2. #2
    Membre actif

    Homme Profil pro
    Mathématicien et développeur
    Inscrit en
    Mars 2012
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Mathématicien et développeur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 132
    Points : 241
    Points
    241
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par codezero1 Voir le message
    Les erreurs du compilateur sont :
    identification.ads:13:15: "Field" is not visible
    identification.ads:13:15: non-visible declaration at a-textio.ads:74
    Tu as besoin d'un "with Ada.Text_IO; use Ada.Text_IO;" en tête de identification.ads.
    Explication: le "use" va rendre "Field" visible.

    Si tu utilises GPS, il te suffit de cliquer sur la petite clé à molette en face de l'erreur et GPS te corrigera ça tout seul .

    Maintenant... as-tu vraiment besoin de ce Width ? Tu ne t'en sers pas dans le code de Get_float.

  3. #3
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par Zerte Voir le message
    Tu as besoin d'un "with Ada.Text_IO; use Ada.Text_IO;" en tête de identification.ads.
    Explication: le "use" va rendre "Field" visible.
    Effectivement je n'obtiens plus les erreurs cités par contre j'obtiens celles-ci : identification.adb:13:37: "virgules" is undefined
    identification.adb:28:13: missing argument for parameter "Item" in call to "get_float" declared at identification.ads:11


    Voici les fichiers corrigés :

    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
     
      with Ada.Text_IO;
    with Identification;
     
      --  File  : log_in.adb  
     
    Procedure log_in is
     
       Password : Identification.Password_Value;
       virgules :  Identification.virgules_Value ;
     
       begin
     
       Identification.Get (Password => Password);
     
    if Password = "admin" then
          Ada.Text_IO.Put_Line (Item => "Welcome, Administrator.");
       end if;
     
        if virgules'Valid then
            Ada.Text_IO.Put_Line("A float number was not asked") ;
    end if;                        end log_in;

    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
    package body identification is
     
    procedure Get_float
         (Item  : out virgules_Value) is
     
    begin
          Ada.float_text_IO.get(Item => virgules);
          Ada.Text_IO.Skip_Line;
     
    end Get_float;
     
    procedure Get (Password : out Password_Value ) is
     
    begin
    Ada.Text_IO.Put (Item => "Hello, User. What's your name? ");
     
    Get_Name : declare
             Name : String := Ada.Text_IO.Get_Line;
          begin
             if Name /= "codezero1" then
                Ada.Text_IO.Put_Line (Item => "You're not Administrator.");
                Get_float ;
             else
                Ada.Text_IO.Get (Item => Password);
                Ada.Text_IO.Skip_Line;
                Ada.Text_IO.New_Line;
             end if;
       end Get_Name;
     
    end Get;
     
    end identification;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    with Ada.Text_IO;
    use Ada.Text_IO;
     
    package identification is
     
       subtype Password_Value is String (1..5);
       subtype virgules_Value is Float ;
     
       procedure Get (Password : out Password_Value);
     
       procedure Get_float
         (Item  : out virgules_Value);
     
    end identification;

    Citation Envoyé par Zerte Voir le message
    Si tu utilises GPS, il te suffit de cliquer sur la petite clé à molette en face de l'erreur et GPS te corrigera ça tout seul .
    Non ,j'utilise Scite en IDE configuré .

    Citation Envoyé par Zerte Voir le message
    Maintenant... as-tu vraiment besoin de ce Width ? Tu ne t'en sers pas dans le code de Get_float.
    Oui, je n'en ai pas besoin .

  4. #4
    Membre actif

    Homme Profil pro
    Mathématicien et développeur
    Inscrit en
    Mars 2012
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Mathématicien et développeur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 132
    Points : 241
    Points
    241
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par codezero1 Voir le message
    Effectivement je n'obtiens plus les erreurs cités par contre j'obtiens celles-ci :
    identification.adb:13:37: "virgules" is undefined
    Effectivement, "virgules" n'est défini nulle part dans identification.adb.

    Citation Envoyé par codezero1 Voir le message
    identification.adb:28:13: missing argument for parameter "Item" in call to "get_float" declared at identification.ads:11
    Tu fais un appel à la procédure "get_float" sans paramètre, alors que tu en as défini un (Item).

  5. #5
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut
    J'ai corrigé mon code mais comment déclarer virgules dans "identification.ads" ??? erreur incluse :

    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
    with Ada.Text_IO;
    with Identification;
     
      --  File  : log_in.adb  
     
    Procedure log_in is
     
       Password : Identification.Password_Value;
     
       begin
     
       Identification.Get (Password => Password);
     
    if Password = "admin" then
          Ada.Text_IO.Put_Line (Item => "Welcome, Administrator.");
       end if;
       Identification.receive_float(virgules);
       --  error : "virgules" is undefined (more references follow)
        if virgules'Valid then
            Ada.Text_IO.Put_Line("A float number was not asked") ;
    end if;                        end log_in;

    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
    with Ada.Text_IO;
    with Ada.float_text_IO;
     
        --  File  :  identification.adb
     
    package body identification is
     
    procedure receive_float (virgules : float) is
    virgules : Float ;
     
    begin
          Ada.float_text_IO.get(Item => virgules);
          Ada.Text_IO.Skip_Line;
     
    end receive_float;
     
    procedure Get (Password : out Password_Value ) is
     
    begin
    Ada.Text_IO.Put (Item => "Hello, User. What's your name? ");
     
    Get_Name : declare
             Name : String := Ada.Text_IO.Get_Line;
          begin
             if Name /= "codezero1" then
                Ada.Text_IO.Put_Line (Item => "You're not Administrator.");
                receive_float;
             else
                Ada.Text_IO.Get (Item => Password);
                Ada.Text_IO.Skip_Line;
                Ada.Text_IO.New_Line;
             end if;
       end Get_Name;
     
    end Get;
     
    end identification;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    with Ada.Text_IO;
    with Ada.float_text_IO;
     
      -- identification.ads
     
    package identification is
     
       subtype Password_Value is String (1..5);
     
       procedure Get (Password : out Password_Value);
     
       procedure receive_float (virgules : float);
     
    end identification;

  6. #6
    Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Septembre 2015
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Septembre 2015
    Messages : 175
    Points : 62
    Points
    62
    Par défaut
    Résolu !!
    Voici la correction :
    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
    with Ada.Text_IO;
    with Ada.float_text_IO;
     
      -- identification.ads
     
    package identification is
     
       subtype virgules_Value is float;
     
       procedure Get_virgules (virgules : out virgules_Value);
     
       ----------------------------------------------------------------------------------------------
     
       subtype Password_Value is String(1..5);
     
       procedure Passe (Password : out Password_Value);
     
     
       procedure virgules_et_passe;
     
    end identification;
    Début du corps:

    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
    with Ada.Text_IO; use Ada.Text_IO;
    with Ada.Float_Text_IO;
     
    package body Identification is
     
    	procedure Passe (Password : out Password_Value) is	
    begin
    	Ada.Text_IO.Get (Password);
                Ada.Text_IO.Skip_Line;
                Ada.Text_IO.New_Line;
     
    	end Passe;
     
    procedure Get_virgules (virgules  : out virgules_Value) is
    begin
        Ada.Float_Text_IO.Get (virgules);
        Ada.Text_IO.Skip_Line;
       end Get_virgules;
     
       procedure virgules_et_passe is
       virgules : Identification.virgules_Value;
       Password : Identification.Password_Value;
     begin

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

Discussions similaires

  1. Comment utiliser une bibliothèque Ada en C ?
    Par Invité dans le forum Débuter
    Réponses: 3
    Dernier message: 25/01/2015, 10h41
  2. Réponses: 4
    Dernier message: 24/02/2009, 12h06
  3. comment utiliser actionscript ?
    Par webs dans le forum Flash
    Réponses: 3
    Dernier message: 09/02/2003, 23h11
  4. Comment utiliser OUT ?
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 3
    Dernier message: 20/07/2002, 09h35
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

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