Bonjour
J'ai un exercice et je demande juste si mon raisonnement est bon, merci de votre aide
Mon raisonnement est le suivant :Ecrire un rogramme contenant une procédure qui reçoit un tableau
d'entiers non trié et sa longueur effective en paramètres, et qui y déplace
en fin de tableau tous les éléments dépassant une valeur donnée (ici 10).
Hormis le critère de déplacement, l'ordre du tableau doit être respecté.
Ex.: si x=10, alors 5,12,-8,27,1,17 devient 5,-8,1,12,27,17.
Le traitement doit se faire en un seul passage. (Hypothèse inductive)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 procedure deplacer(const x:Integer;var t:tableau; const long:Integer); var i,j,k,tmp :Integer; begin if long>1 then begin j:=1; while (j<long)and(t[j]<x) do inc(j); for i:=j to long do if t[i]<=x then begin tmp:=t[i]; for k:=i downto j+1 do t[k]:=t[k-1]; t[j]:=tmp; inc(j) end end end;
Partager