Utiliser une procedure pour remplir un tableau en pascal

Résolu/Fermé
pass - 7 févr. 2021 à 12:59
 pass - 7 févr. 2021 à 15:42
Bonjour,
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

Utilisateur anonyme
7 févr. 2021 à 13:12
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.
0