Utiliser une procedure pour remplir un tableau en pascal
Résolu
Bonjour,
pouvez vous me dire pourquoi mon programme n'affiche pas les mots merci,cordialement.
pouvez vous me dire pourquoi mon programme n'affiche pas les mots merci,cordialement.
Program fff;
Uses crt;
Type
X = array[1..5] Of string;
Var
tab : X;
i : integer;
Procedure remptab(mot:X);
Begin
mot[1] := 'XANTHINES' ;
mot[2] := 'AIRELLES' ;
mot[3] := 'TOUT ';
mot[4] := 'DEBUTANTS' ;
mot[5] := 'RENTIERES ';
End;
Begin
remptab(tab);
For i:= 1 To 5 Do
writeln(tab[i]);
End.
3 réponses
-
Bonjour,
Le tableau "mot" est passé par valeur en non par référence donc les modifications sont internes à la procédure. En sortie, le tableau retrouve sa valeur initiale.
Si on avait un passage par référence Procedure remptab(var mot:X); il en serait autrement.
Sans modifier votre passage de paramètres, il faudrait inclure la boucle For dans la procédure.
Sinon, il faut passer le tableau par référence.