Utiliser une procedure pour remplir un tableau en pascal
Résolu
pass
-
pass -
pass -
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.
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.