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 :

Problème Pointeur ADA.


Sujet :

Ada

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Problème Pointeur ADA.
    Bonjour,
    Je suis débutant en ADA , et j'ai un souci concernant les pointeurs.

    Voici le fichier.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
     
    	Type Pointeur  is access   Objet'Class ;
     
     
    	   Type Cellule ; 
    	    Type Ptr_Cellule is access Cellule ; 
    	   Type Cellule is 
     
    	   record 
    	    Element : Pointeur ; 
     
    	   Suivant : Ptr_Cellule ; 
     
    	   end record ; 
    	     Function Moment_Total (La_Liste : in Ptr_Cellule ) return Float ;
    et là le fichier.adb
    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
     
     
    	 Function Moment_total (La_Liste :  in Ptr_Cellule ) return Float is 
     
    	      Local: Ptr_Cellule ;
     
    	       Resultat : Float := 0.0 ; 
    	        begin 
    	        Loop 
    		 if Local = Null then                                
                       return Resultat ; 
     
                          end if ; 
     
    		 Resultat := Resultat + Moment(Local.Element.all ) ;
    		 Local := Local.Suivant ; 
     
    		 end Loop ;
     
    	  end Moment_total ;
    Voici le code que je cherche à exécuter pour calculer le moment total d'un ensemble d'objet de classe composé de cercle , triangle , et polygone.Le moment par composant individuel j'arrive à le calculer et ça marche dans un autre fichier qui ne nous interésse pas ici.
    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
    With ES_Simples , Geometrie ; 
     
    Procedure Objet_Pointant is 
     
    use ES_Simples , Geometrie ; 
                            -- Pointeurs
     
    		   C_p ,T_p ,  P_p :  Pointeur ;
     
     
    		   -- Pour former la Liste Chainees.
    		     L1 : Ptr_Cellule := new Cellule' (C_p , Null ) ;
     
    		   L2 : Ptr_Cellule := New Cellule'(T_p  , L1 )  ; 
     
    		   L3 : Ptr_Cellule := New Cellule' (P_p , L2 ) ; 
     
    		   La_Liste : Ptr_Cellule ; 
     
    		   M_Total : Float ; 
     
     Begin 
     
    		    Afficher ("--------Pointeurs-------------------") ; 
     
     
    			Saut_Ligne ;
     
    			La_Liste := L1 ; 
     
    		       Afficher("Moment_total = ") ;
     
     
    		        M_Total := Moment_total(La_Liste) ;
     
    		       Afficher( M_Total ) ;
     
    			Saut_Ligne ;
     
    		      end Objet_Pointant ;
    La compilation donne :
    [CODE]

    $ gcc -c Objet_Pointant.adb
    Objet_Pointant.adb:3:11: warning: file name does not match unit name, should be "objet_pointant.adb"
    Objet_Pointant.adb:10:20: warning: "C_p" is never assigned a value
    Objet_Pointant.adb:10:25: warning: "T_p" is never assigned a value
    Objet_Pointant.adb:10:32: warning: "P_p" is never assigned a value
    gnatbind -x Objet_Pointant.ali
    gnatlink Objet_Pointant.ali
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Et l'exécution du code.<code>Moment_total =  0.00000E+00
    Le souci c'est comment affecter des valeurs aux pointeurs C_p , T_p , P_p pour qui font références à cercle , Triangle , et Polygone qui appartiennent à Objet'Class pour calculer le moment total.
    Ne vous interressez pas à ES_Simples qui marche et permet la lectures et l'affichage de données.
    Merci d'avance pour vos réponses.
    c urgent.

  2. #2
    Invité
    Invité(e)
    Par défaut
    pour qui font références à
    pour qu'ils fassent....



    Si non, comme pour n'importe quel accès, avec " := new"

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par jovalise Voir le message
    pour qu'ils fassent....



    Si non, comme pour n'importe quel accès, avec " := new"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Bonjour,
    Je voulais dire que C_p , T_p , P_p sont des pointeurs vers cercle , triangle , Polygone.

  4. #4
    Invité
    Invité(e)
    Par défaut
    J'avais bien comprise, mais quelle sera ta question ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par jovalise Voir le message
    J'avais bien comprise, mais quelle sera ta question ?
    Bonjour ,
    En fait la question est comment affecter des valeurs aux trois Pointeurs , de manière à ce que la fonction Moment_Total puisse effectuer le calcul des moments du Cercle , Triangle , Polygone respectivement .
    Cordialement.

  6. #6
    Invité
    Invité(e)
    Par défaut
    je suppose en faisant C_p := new Cercle_Type ' (quelque chose); De même pour T_p et P_p respectivement.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    [/S]
    Citation Envoyé par jovalise Voir le message
    je suppose en faisant C_p := new Cercle_Type ' (quelque chose); De même pour T_p et P_p respectivement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Merci JOVALISE ça marche finalement.
    Encore Merci.

Discussions similaires

  1. Problème Pointeurs d'objets
    Par Julien_C++ dans le forum C++/CLI
    Réponses: 6
    Dernier message: 03/08/2007, 17h00
  2. Problème pointeur de fonction
    Par ired dans le forum C++Builder
    Réponses: 7
    Dernier message: 16/06/2007, 14h24
  3. problème pointeur sur structure
    Par lejohn dans le forum C
    Réponses: 9
    Dernier message: 01/05/2007, 14h17
  4. Interfaçage ADA / C : problème IO Ada
    Par Yannick_from_31 dans le forum Ada
    Réponses: 2
    Dernier message: 29/03/2007, 11h45
  5. [MFC] Problème pointeur sur une classe
    Par mick74 dans le forum MFC
    Réponses: 7
    Dernier message: 14/04/2004, 15h17

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