bonjour,
je souhaiterais passe un tableau en parametre dans une fonction. Comment dois je faire ?
J'ai un package machine:
un package client:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 package machine is task type Machine_Type is entry Init (Ident : Natural); entry Get(temps: in Duration; ClientId, tacheId : Positive); end Machine_Type; type TTabMachine_Type is array (1..3) of Machine_Type; procedure affiche(ClientId, tacheId : Positive; S : String) end machine;
son body:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 package client is procedure Put (ClientId, tacheId : Positive; S : String); task type Client_Type is entry Init (Ident : Natural;tabMach: Machine_Type); end Client_Type; end Client;
main:
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 task body Client_Type is Id:Natural; --LesMachines : array(1..3) of Machine_Type; LesMachines :TTabMachine_Type; tache : array (1 .. 10) of Duration := (others => 5.0); begin select accept Init(Ident:Natural; tabMach:TTabMachine_Type) do Id:=Ident; LesMachines:=tabMach; => E R R E U R de compilation end Init; end select;
Lorsque que je compile j'ai l'erreur suivante:
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 procedure clientServ is Nb_machine : constant Positive := 3; Nb_client: constant Positive :=8; LesMachines : TTabMachine_Type; LesClients: array (1 .. Nb_client) of Client_Type; begin put_line("Lancement application"); put_line("Creation des machines"); for i in 1..Nb_machine loop LesMachines(i).Init(i); end loop; put_line("Creation des clients"); for i in 1..Nb_client loop LesClients(i).Init(i,LesMachines); end loop; end clientServ;
Qu'est ce qui ne va pas ?left hand of assignement must not be limited type
component type "Machine_type" of type "TTabMachine_Type" is limited
Cordialement
Partager