SVP aider moi au "Pascal"..

Fermé
sohaieb Messages postés 146 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 1 septembre 2017 - 2 oct. 2009 à 19:06
Bonjour,svp qui peu m'aider à la correction de cet program,pasque quand on atteint la procedure "tri" il me dit "runtime error 202 .." ce ça le program:
****************
****************
program classe;
uses wincrt;
type tab1=array[1..40]of string;
tab2=array[1..40]of real;
var t1,t3:tab1;
t2:tab2;
n:integer;
procedure remplir1(var t1:tab1;var n:integer);
var i,a:integer;
begin
a:=1;
repeat
writeln('ecrire la taille du tableau:');
readln(n);
until n in [3..40];
for i:=1 to n do
repeat
writeln('entrer les noms des élèves:');
write(a,')');
readln(t1[i]);
a:=a+1;
until t1[i]<>'';
end;
procedure remplir2(var t2:tab2;n:integer);
var i,a:integer;
begin
a:=1;
for i:=1 to n do
repeat
writeln('entrer les moyennes:');
write(a,')');
readln(t2[i]);
a:=a+1
until t2[i]<20;
end;
procedure remplir3(var t3:tab1;n:integer);
var i,a:integer;
begin
a:=1;
for i:=1 to n do
repeat
writeln('entrer la date du naissance:');
write(a,')');
readln(t3[i]);
a:=a+1;
until (length(t3[i])=10)and(t3[i][3]='/')and(t3[i][6]='/');
end;
procedure tri(var t1:tab1;var t2:tab2;var t3:tab1;n:integer);
var i,j,pn:integer;
aux2,aux1:string;
aux:real;
begin
for i:=1 to n-1 do
begin
pn:=i;
for j:=1 to n do
if t2[j]>t2[pn]then
pn:=j;
if i<>pn then
begin
aux:=t2[i];
t2[i]:=t2[pn];
t2[pn]:=aux;
aux1:=t1[i];
t1[i]:=t1[pn];
t1[pn]:=aux1;
aux2:=t3[i];
t3[i]:=t3[pn];
t3[pn]:=aux2;
end;
end;
end;
procedure afficher(t1:tab1;t2:tab2;t3:tab1;n:integer);
var i:integer;
begin
for i:=1 to 2 do
writeln(t1[i],'***',t2[i],'***',t3[i]);
end;
begin
remplir1(t1,n);
remplir2(t2,n);
remplir3(t3,n);
tri(t1,t2,t3,n);
afficher(t1,t2,t3,n);
end.
***********
***********
et meerci bcp pour votre aides :)