Procédure affichage mode de passage "Pascal"
Bonjour,
Program Seif;
Uses Wincrt;
Type
Tab=array[1..100] Of String;
Var
T:Tab;
N:Integer;
Procedure Saisie (Var N:Integer);
Begin
Repeat
Writeln ('Entrer La Dimension Du Tableau');
Readln (N);
Until (N>=2) And (N<=20);
End;
Procedure Saisie_Tab (N:Integer ; Var T:Tab);
Var
i:Integer;
Begin
For i:=1 To N do
Begin
Repeat
Writeln ('Entrer T[',i,']');
Readln(T[i]);
Until (length(T[i])<=20) And (T[i]<>'') And ((Pos(' ',T[i]))<>0);
End;
End;
Procedure Affichage (N:Integer ; T:Tab);
Var
i:Integer;
Begin
For i:=1 To N Do
Write(T[i],' ');
End;
Begin
Saisie (N);
Saisie_Tab (N,T);
Affichage (N,T);
End.
le probléme ici , il m'affiche un erreur de type run-time 202 lorsque j'ajoute var avant T:tab dans l'entéte du procédure affichage le probléme est reglé mais je veux une explication car normalemnt le tableau dans l'affichage doit passé par valeur car on ne change pas le contenu de tableau , seulement on veux l'afficher . svp me réponds et merci d'avance
Program Seif;
Uses Wincrt;
Type
Tab=array[1..100] Of String;
Var
T:Tab;
N:Integer;
Procedure Saisie (Var N:Integer);
Begin
Repeat
Writeln ('Entrer La Dimension Du Tableau');
Readln (N);
Until (N>=2) And (N<=20);
End;
Procedure Saisie_Tab (N:Integer ; Var T:Tab);
Var
i:Integer;
Begin
For i:=1 To N do
Begin
Repeat
Writeln ('Entrer T[',i,']');
Readln(T[i]);
Until (length(T[i])<=20) And (T[i]<>'') And ((Pos(' ',T[i]))<>0);
End;
End;
Procedure Affichage (N:Integer ; T:Tab);
Var
i:Integer;
Begin
For i:=1 To N Do
Write(T[i],' ');
End;
Begin
Saisie (N);
Saisie_Tab (N,T);
Affichage (N,T);
End.
le probléme ici , il m'affiche un erreur de type run-time 202 lorsque j'ajoute var avant T:tab dans l'entéte du procédure affichage le probléme est reglé mais je veux une explication car normalemnt le tableau dans l'affichage doit passé par valeur car on ne change pas le contenu de tableau , seulement on veux l'afficher . svp me réponds et merci d'avance
1 réponse
-
ModérateurRuntime Error 202 : Stack overflow error (cf. Google)
Cependant je ne vois pas d'erreur dans ce code, même en le testant, à part peut-être la condition (Pos(' ',T[i]))<>0 qui oblige à commencer la chaîne par un espace...
Tu peux t'aider d'un IDE d'apprentissage comme IPCute, pour voir au fur et à mesure de ton programme quels sont les appels faits...