Documente Academic
Documente Profesional
Documente Cultură
repeat
echange :=false ;
for i :=1 to n-1 do
begin
if T[i]>T[i+1] then
begin
echange := true ;
aux := T[i] ;
T[i] :=T[i+1] ;
T[i+1] :=aux ;
End ;
End ;
Cours d’informatique en ligne :
n :=n-1 ;
Until (echange = false) or (n=1) ;
End ;
Compléter la procédure de tri à bulles en pascal ci-dessus, pour trier un tableau T, de taille n en
ordre croissant.
Page 1/5
Devoir de contrôle n°1-SEM2- 4ème Mathématiques Année Scolaire 2016-2017
Questions:
1) Analyser le problème en le décomposant en modules.
2) Déduire l'algorithme du programme principal ainsi que les algorithmes des modules
envisagés.
3) Déduire le programme pascal et l’enregistrer sous le nom « DC3M.pas » dans
C:\BAC2017
Analyse du Programme principal Algorithme de la procédure saisir :
Nom : problème 0) DEF Proc saisir(var x:entier)
Résultat= proc Afficher(T,n) 1) Répéter
Proc effacer(x,T,n) Ecrire("entier à supprimer x=") , lire(x)
Proc saisir(x) jusqu'à (FN verif(x,t,n)=vrai)
Proc Remplir(t,n) 2)Fin Saisir
Fin problème T.D.O.Locaux
Tableau de déclaration de nouveau type Objet Type/Nature
Type
Verif Fonction
TAB=tableau de 14 entiers Algorithme de la procédure decaler:
T.D.O. Globaux 0) DEF Proc decaler(p :entier,Var t :tab, Var n :entier)
Objet Type/Nature 1) pour i de p à n-1 faire
T[i]←T[i+1]
T TAB FinPour
n,x entier 2)n ←n-1
Afficher, effacer, remplir, saisir Procédure 3) Fin inserer
Algorithme du programme principal : T.D.O.Locaux
0) Début problème Objet Type/Nature
1) Proc Remplir(t,n)
2) proc Afficher(T,n) i entier
3) Proc saisir(x)
4) Proc effacer(x,T,n)
5) proc Afficher(T,n) Algorithme de la procédure effacer :
6) Fin problème 0) DEF Proc effacer(x :entier,Var t :tab, Var n :entier)
1)i1
Algorithme de la procédure Afficher : 2) tant que verif(x,t,n)=vrai et (n<>0) faire
0)DEF Proc afficher(t :tab, n :entier) si t[i]=x alors PROC decaler(i,t,n)
1)Pour i de 1 à n faire sinon ii+1
Ecrire("T[",i, "]=",t[i]) FinSi
FinPour Fintantque
2) Fin Afficher 3) Fin effacer
T.D.O.Locaux T.D.O.Locaux
Objet Type/Nature Objet Type/Nature
i entier i entier
Algorithme de la procédure Remplir
0)DEF proc Remplir (var T:tab ,var n:entier) Algorithme de la fonction verif :
1) Répéter 0) DEF FN verif(x :entier, t :tab, n :entier) :booléen
Cours d’informatique en ligne :
Page 2/5
Devoir de contrôle n°1-SEM2- 4ème Mathématiques Année Scolaire 2016-2017
randomize;
for i:=1 to n do
t[i]:=random(11)+20;
Cours d’informatique en ligne :
end;
Page 3/5
Devoir de contrôle n°1-SEM2- 4ème Mathématiques Année Scolaire 2016-2017
Deuxième méthode :
Utiliser la fonction position à la place de la fonction vérif. Position permet de renvoyer la position
d’un entier dans le tableau, s’il n’existe pas elle renvoie 0
Page 4/5
Devoir de contrôle n°1-SEM2- 4ème Mathématiques Année Scolaire 2016-2017
program probleme;
uses wincrt; procedure decaler(p:integer;var t:tab;var n:integer);
type var i:integer;
tab=array[1..14] of integer; begin
var
t:tab; for i:=p to n-1 do
n,x,:integer; t[i]:=t[i+1];
procedure afficher(t:tab;n:integer);
var i:integer; n:=n-1;
begin end;
for i:=1 to n do
writeln('T[',i,']=',T[i]);
end;
function procedure effacer (x:integer;var t:tab;var n:integer);
position(x:integer;t:tab;n:integer):integer; var i:integer;
var begin
i,p:integer;
begin while (position(x,t,n)<>0) and (n<>0 )do
i:=0;p:=0; decaler(position(x,t,n), t,n);
repeat
i:=i+1; end;
if t[i]=x then p:=i;
until (p<>0) or (i=n); begin
remplir(t,n);
position:=p; afficher(t,n);
end; saisir(x);
effacer(x,t,n);
procedure remplir(var t:tab; var n:integer); afficher(t,n);
var i:integer; end.
begin
repeat
write('n=');readln(n);
until n<15;
randomize;
for i:=1 to n do
t[i]:=random(11)+20; Cours d’informatique en ligne :
end;
end;
Page 5/5