Bonjour,
Je cherche la solution du preoblème suivant en Pascal:
1- Ecrire une unité qui contient:
a- déclaration d'un tableau à n éléments (1<n<50) entiers.
b- procédure qui lit le tableau.
c- fonction qui retourne l'indice du tableau, du plus grand élément à partir d'une position donée (de k) à l aposition n (1<k<n).
d- procédure qui affiche les éléments du tableau.
2- Ecrire un programme en Turbo Pascal qui fait apple aux procédures et fonctions de l'unité pour ordonner un tableau au sens décroissant.
Merci d'avance, j'ai galéré avec cet exercice..

uses wincrt;
type
tab=array[1..60]of integer;
var
n,i,j,k:integer;
t,tp,tn:tab;
procedure saisie_n(var n:integer);
begin
repeat
writeln('donner entier');
readln(n);
until (n>0)and (n<60);
end;
procedure remplir_t(n:integer;var t:tab);
var i:integer;
begin
for i:=1 to n do
begin
writeln('donner entier');
readln(t[i]);
end;
end;
procedure classement(n:integer;t:tab;var tp ,tn:tab);
var i,j,k:integer;
begin
for i:=1 to n do
begin
if t[i]<0 then
begin
for j:=1 to n do
tn[j]:=t[i];
end;
if t[i]>=0 then
begin
for k:=1 to n do
tp[k]:=t[i];
end;
end;
end;
procedure affichage(n:integer;t,tn,tp:tab);
begin
for i:=1 to n do
writeln('le tableau a analyser :'t[i]);
for j:=1 to n do
writeln('le tableau positif est :',tp[j]);
for k:=1 to n do
writeln('le tableau negatif est:',tn[k]);
end;
begin
saisie_n(n);
remplir_t(n,t);
classement(n,t,tp,tn);
affichage(n,t,tp,tn);
end.
****************************************************************************************
essaye le c mieux que rien chui pas sur et je ne l'ai pas encore compilé.bonne chance!
****************************************************************************************
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 faussesprocedure 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