Tri d'un tableau et vérification que les valeurs sont consécutives
Bonjour tout le monde;
je viens solliciter votre aide concernant mon prog qui permet d'entrer des valeurs (entiers) dans un tableau, puis le trier, ensuite dire si ces valeurs sont consécutives ou pas; mais le problème est que ce dernier, quand je l'exécute, des fois il apparaît juste, et la plus part du temps non, surtout quand je tape une valeur négative ou un 0.
Pour consécutif ou pas, j'ai utilisé un flag mais ce flag ne marche pas, car il mentionne toujours que les valeurs ne sont pas consécutives, aidez-moi s'il vous plait.
:merci:
Voici mon progr :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| program t1;
const n=5;
var truc:array[0..n] of integer;
x,i,j,posmin:integer;
cons:boolean;
begin
for i:=0 to n do
begin
writeln('entrez un valeur:',i);
read(truc[i]);
end;
for i:=0 to n do
begin
posmin:=i;
for j:=i+1 to n do
begin
if truc[j]<truc[i] then
posmin:=j;
end;
x:=truc[posmin];
truc[posmin]:=truc[j];
truc[j]:=truc[i];
truc[i]:=x;
end;
for i:=0 to n do
begin
write(truc[i],' ');
end;
cons:=true;
for i:=0 to n do
begin
if truc[i+1]<>truc[i]+1 then
cons:=false;
end;
if cons=true then
write('les nombres sont tous conscutifs')
else
writeln('les nombres ne sont pas tous conscutifs');
end. |
tableaux: probème 5% résolut.
bonjour à vous , merci pour votre aide, pour les fonctions et procédures je n'ultise pas encore, etape par étape (je veux apprendre de la base.......à...).
grace à vous j'ai trouver ma bétise, je suis trés contente, vous m'avez pas donnez la solu, mais juste vos remarques. et j'ai changer mon code comme suit
Code:
1 2 3 4 5
| for i:=n downto 1 do
begin
if truc[i]<>truc[(i-1)]+1 then
cons:=false;
end; |
ou bien
Code:
1 2 3 4 5
| for i:=1 to n do
begin
if truc[i]<>truc[(i-1)]+1 then
cons:=false;
end; |
50% de mon problème est réglé, mais pour mon code je crois qu'il est juste, mais son execution défois juste et défois fausse pourquoi?
une autre question s'il vus plait: je peut utilsé n comme l'indice dernier d'un tableau, mais ce n je le précise en exectoin, ex:
write('entrez le nombre des valeurs dans ce tab');
read(n);
existe t'il un moyen de faire ça , dans l'algo, il y'a la fonction redim, et pour le pascal il ya quoi?
mes respects