appel procedure ac tableau

appel procedure ac tableau - Ada - Programmation

Marsh Posté le 20-11-2004 à 18:34:59    

Bonsoir !
je voulai savoir si ct possible de faire une appelle de procedure ac un tableau.
Jem'explique :  
J'ai une procedure ki sapel kom ca :  
 
procedure Mergesort (T : in out T_Tab1 ; N,G,D : in Integer) is
 
G fai cette procedure ds un autre fichier que mon prog principal et je voudrais l'appeler ds mon programme principal...Mais ca ne fonctionne pas. En effet, le tableau T de la procedure ci dessus est de type T_Tab1 (ki est defini ds le prog principal) mais ds le fichier de ma procedure il n'est pas defini dc ca ne fonctionne pas...
 
Alors pouvez vous m'aidez svp !!!
 
Il est egalemen possible ke je nai pa tre tre bien compris les cours et ke le corps de la procedure doit forcement etre ecrit ds mon prog principal...Mais alors la c un peu dommage...
 
Merci bcp !

Reply

Marsh Posté le 20-11-2004 à 18:34:59   

Reply

Marsh Posté le 21-11-2004 à 13:56:10    

j'ai un peu oublier le principe en ada, mais je crois que quand ton programme se decompose en plusieurs fichier, il faut faire comme en C :  
Creer un fichier .adb qui ne contient que le prototype des fonctions pour tout tes modules (donc tous, sauf le fichier du programme principal)
Dans ton programme principal, tu ajoutes :  

Code :
  1. with mon_adb1;
  2. use mon_adb1;


c'est peut etre pas exactement ca (j'ai une memoire très spéciale (: ) mais le principe y est, regarde les librairies incluse par defaut dans ada pour la structure des .adb etc...

Reply

Marsh Posté le 21-11-2004 à 18:08:09    

oki merci je v essayer ca... J'ai regarde ds les bouquins mais ca ma pas bcp aide... (fo voir comme ils expliquent, ca fait peur !!!).

Reply

Marsh Posté le 21-11-2004 à 18:11:05    

En fait les prototypes sont dans le .ads et le .adb c'est le corps.

Reply

Marsh Posté le 26-11-2004 à 10:12:50    

tu crée une unité par ex: unit1
dans unit1 (dans les spec) tu declare ton type tableau et les spec de ta procedure
dans le body tu ecris ta procedure
 
dans ton prog principal tu met au debut
 
with unit1;  
use unit1;
 
ainsi tu as accés au type tableau dans ton prog principal et tu peux appeler la procedure que tu dersires avec une variable de type tableau en parametre.
 
 

Reply

Marsh Posté le 28-11-2004 à 13:21:01    

tu peux créer un sous type tableau aussi

Reply

Marsh Posté le 29-11-2004 à 16:14:25    

Code :
  1. type My_Array is array (..) of ..;
  2. procedure X ( Y : in My_Array );


Ou je n'ai pas compris la question?

Reply

Marsh Posté le 29-11-2004 à 19:30:24    

103e a écrit :

Code :
  1. type My_Array is array (..) of ..;
  2. procedure X ( Y : in My_Array );


Ou je n'ai pas compris la question?


 
Ouais c'est à peu pres ce que je disait
 
Tu peux aussi faire dans un package  
 

Code :
  1. subtype mon_tab is array ... of ...

Reply

Marsh Posté le 19-06-2005 à 15:01:25    

Bonjour,
 
je n'ai pas très bien compris la manip exposée: il me semble que mon problème rejoint celui déjà donné.
Voilà, j'ai un fichier principal 'proceduremain.adb' qui contient une procédure 'proceduremain' avec plusieurs choix possibles pour l'utilisateur:
Si l'utilisateur tape '1' il exécute une procédure 'procedure1' (sans paramètres) qui se trouve dans le fichier 'procedure1.adb'. Cette procédure marche de façon "autonome".
Si l'utilisateur tape '2' il exécute une procédure 'procedure2' (sans paramètres) qui se trouve dans le fichier 'procedure2.adb'. Cette procédure marche de façon "autonome".
...
etc
Est-ce que quelqu'un pourrait m'expliquer comment implémenter les procédures autonomes 'procedure1', 'procedure2', ...,etc. dans la procédure principale 'proceduremain', s'il vous plaît ?
 
Merci,
 
loucki

Reply

Marsh Posté le 21-06-2005 à 15:12:51    

il faudrais que tu crées une unité avec l'ensemble des tes procedures.
---> un fichier ADS et un fichier ADB
 
puis tu declares tes unités au debut de ton programme principal (whith monunité, use monunité) --> tu peux desormais executer toutes les procedure de ton unité à partir de ton prog. principal!
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed