Version évoluée du maximum, il cherche les deux
Version évoluée du maximum, il cherche les deux plus grands nombres différents du tableau et fait leurs différences. Il affiche ensuite les endroits du tableau où on peut trouver ces maximums
program diffmax ;
uses Algotypes;
uses AlgoVecteurs;
var ;
var taille,i,j,max1,max2,k : integer;
V,pos1,pos2 : Vecteur;
begin
write('Entrez la taille du tableau : ');
readln(taille);
v:=init_vect(taille);
pos1:=init_vect(taille);
pos2:=init_vect(taille);
i:=0;max1:=V[0];j:=0;max2:=V[1]
while (j<taille) do begin pos1[j]:=0; j:=j+1; end;
k:=0;
while (j<taille) do begin pos2[j]:=0; j:=j+1; end;
j,k:=0,0;
while (i<taille) do
begin
if (V[i] > max1) then
begin
max1:=V[i]
j:=0;
while (j<=taille) do
begin
pos1[j]:=0;
j:=j+1;
end;
j:=0;
pos1[j]:=i;
end;
else
begin
if V[i]==max1 then
begin pos1[j]:=i;j:=j+1; end;
end;
if ((V[i] > max2) and (V[i]<>max1)) then
begin
max2:=V[i]
k:=0;
while (k<=taille) do
begin
pos2[k]:=0;
k:=k+1;
end;
k:=0;
pos2[k]:=i;
end;
else
begin
if (V[i]==max2) then
begin pos2[k]:=i;k:=k+1; end;
end;
i:=i+1;
end;
j:=1;k:=1;
writeln('la différence des maximums est', max1-max2);
writeln('le premier maximum est ',max1);
writeln('Et sa ou ses positions dans le tableau : ');
writeln(pos1[0]);
while(j<taille)do
begin
if(pos1[j]<>0)then
begin
writeln(pos1[j]);
end;
end;
writeln('le premier maximum est ',max2);
writeln('Et sa ou ses positions dans le tableau : ');
writeln(pos2[0]);
while(k<taille)do
begin
if(pos2[k]<>0)then
begin
writeln(pos2[k]);
end;
end;
end.
Codeurs : Moi
Date : 30/10/2007
Language : Turbo-Pascal
Ligne : 86