Ta procedure classement ne donne pas le résultat voulu...
En fait dans ton algoritme tn=t si t[n]<0 et tp=t si t[n]>=0...
De plus le type de tab est inadapté...
const Nmax=60;
type Tab=record
a:array[1..Nmax] of integer;
n:integer;
end;
procedure Neg(var t,tn,tp:Tab);
var i:integer;
begin
tn.n:=0;
tp.n:=0;
for i:=1 to t.n do
if t.a[i]<0 then begin
tn.a[i]:=t.a[i];
inc(tn.n);
end
else begin
tp.a[i]:=t.a[i];
inc(tp.n);
end
end;Pour le reste il est à noter que remplir_t et affichage sont également fausses
procedure remplir_t(n:integer;var t:tab); // avec TON type tab
var i:integer;
begin
for i:=1 to n do
saisie_n(t[i]);
end;
procedure affichage(n:integer;t,tn,tp:tab); // avec TON type tab
var i:integer;
begin
write('le tableau a analyser : ');
for i:=1 to n do
write(t[i],' ');
writeln('le tableau positif : ');
for i:=1 to n do
write(tp[i],' ');
writeln('le tableau negatif : ');
for i:=1 to n do
write(tn[i],' ');
end; --
La confiance n'exclut pas le contrôle