0% ont trouvé ce document utile (0 vote)
22 vues5 pages

TP6 Solution

Le document présente des travaux pratiques en informatique axés sur l'algorithmique et la programmation en Python. Il couvre trois exercices : le tri d'un tableau par sélection, le tri par insertion, et la recherche dichotomique dans un tableau trié. Chaque exercice inclut des algorithmes détaillés et des instructions pour l'implémentation en Python.

Transféré par

عالم الخيال
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
22 vues5 pages

TP6 Solution

Le document présente des travaux pratiques en informatique axés sur l'algorithmique et la programmation en Python. Il couvre trois exercices : le tri d'un tableau par sélection, le tri par insertion, et la recherche dichotomique dans un tableau trié. Chaque exercice inclut des algorithmes détaillés et des instructions pour l'implémentation en Python.

Transféré par

عالم الخيال
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

.

Travaux Pratiques (TP) 6 - Informatique 1 (Algorithmique 1/Python) -


Tronc Commun MIP (Mathématiques-Informatique-Physique) - Semestre 1
Objectifs
- Utiliser les algorithmes de tri en Python pour trier des tableaux.
- Utiliser l’algorithme de recherche dichotomique en Python pour chercher une valeur dans un
tableau trié.

Exercice 1 : Le tri d’un tableau par sélection


Écrire un programme en Python permettant de trier un tableau T selon l’algorithme du tri par sélection
dans l’ordre croissant. Le programme doit afficher les étapes de tri itération par itération.
Le déroulement du processus d’exécution doit suivre les étapes suivantes :

On donne l’algorithme de tri par sélection suivant :

Algorithm 1 : Tri tab par sélection


Variables : tableau : T[n] :entier ;
n, x, i, j, posmin : entier ;
Début
écrire(”Entrez la taille du tableau T : ”) ;


lire(n) ;
Pour i 0 jusqu’à n-1 faire
écrire(”entrez la valeur de T[”, i, ”]= ”) ;
lire(T[i]) ;


FinPour


Pour i 0 jusqu’à n-2 faire


posmin i;
Pour j i+1 jusqu’à n-1 faire


si (T[j]<T[posmin]) alors
posmin j;
Finsi


FinPour


x T[posmin] ;


T[posmin] T[i] ;
T[i] x;


FinPour
Pour i 0 jusqu’à n-1 faire
écrire(T[i], ” ”) ;
FinPour
Fin

Tronc Commun MIP 1 2024-2025


# Algorithme de t r i par s e l e c t i o n
# Demander a l ’ u t i l i s a t e u r de s a i s i r l a t a i l l e du t a b l e a u
t a i l l e = i n t ( i n p u t ( ”E ntre z l a t a i l l e du t a b l e a u : ”) )
T = [0] * taille
x , i , j , posmin = 0 , 0 , 0 , 0
# S a i s i e d e s v a l e u r s dans l e t a b l e a u
f o r i in range ( t a i l l e ) :
T[ i ] = i n t ( i n p u t ( f ”Entre z l a v a l e u r de T[ { i }]= ”) )
# A f f i c h a g e du t a b l e a u avant l e t r i
p r i n t ( ”Tableau avant l e t r i : ” , T)
# T r i par s e l e c t i o n
f o r i in range ( t a i l l e = 1) :
posmin = i
f o r j in range ( i + 1 , t a i l l e ) :
i f T [ j ] < T [ posmin ] :
posmin = j
# Etape de p e r m u t a t i o n
x = T[ posmin ]
T[ posmin ] = T [ i ]
T[ i ] = x
# A f f i c h a g e de l ’ e t a p e de t r i
p r i n t ( f ”Etape { i + 1} : {T} ”)

# A f f i c h a g e du t a b l e a u t r i e
p r i n t ( ”Tableau t r i e : ” , T)

Exercice 2 : Le tri d’un tableau par insertion


Écrire un programme en Python permettant de trier un tableau T selon l’algorithme du tri par insertion
dans l’ordre croissant. Le programme doit afficher les étapes de tri itération par itération.
Le déroulement du processus d’exécution doit suivre les étapes suivantes :

Tronc Commun MIP 2 2024-2025


On donne l’algorithme de tri par insertion suivant :

Algorithm 2 : Tri tab par insertion


Variables : tableau : T[n] :entier ;
n, i, j, elt suivant : Entier ;
Début
écrire(”Entrez la taille du tableau T : ”) ;


lire(n) ;
Pour i 0 jusqu’à n-1 faire
écrire(”entrez la valeur de T[”, i, ”]= ”) ;
lire(T[i]) ;


FinPour


Pour i 1 jusqu’à n-1 faire // on commence par le 2ème élément (début de la partie non triée)


elt suivant T[i] ;
j i - 1 ; // indice du 1er élément à droite de la partie triée


Tantque ((j >= 0) ET (elt suivant < T[j])) faire


T[j+1] T[j] ; // Décalage
j j - 1;


FinTantque
T[j +1] elt suivant ; // Insertion de l’élément suivant


FinPour
Pour i 0 jusqu’à n-1 faire
écrire(T[i], ” ”) ;
FinPour
Fin

# Algorithme de t r i par i n s e r t i o n avec a f f i c h a g e d e s e t a p e s


# Demander a l ’ u t i l i s a t e u r de s a i s i r l a t a i l l e du t a b l e a u
t a i l l e = i n t ( i n p u t ( ”E ntre z l a t a i l l e du t a b l e a u T : ”) )
T = [0] * taille
i , j , elt suivant = 0 , 0 , 0

# S a i s i e d e s v a l e u r s dans l e t a b l e a u
f o r i in range ( t a i l l e ) :
T[ i ] = i n t ( i n p u t ( f ”Entre z l a v a l e u r de T[ { i }]= ”) )

# A f f i c h a g e du t a b l e a u avant l e t r i
p r i n t ( ”Tableau avant l e t r i : ” , T)
# T r i par i n s e r t i o n
f o r i in range (1 , t a i l l e ) :
e l t s u i v a n t = T[ i ]
j = i = 1

w h i l e j >= 0 and e l t s u i v a n t < T [ j ] :


T[ j + 1 ] = T [ j ] # D e c a l a g e
j == 1

T[ j + 1 ] = e l t s u i v a n t # I n s e r t i o n de l ’ e l e m e n t s u i v a n t

# A f f i c h a g e de l ’ e t a p e de t r i
p r i n t ( f ”Etape { i } : {T} ”)

# A f f i c h a g e du t a b l e a u t r i e
p r i n t ( ”Tableau t r i e : ” , T)

Tronc Commun MIP 3 2024-2025


Exercice 3 : La recherche dichotomique
Écrire un programme en Python qui effectue la recherche d’une valeur V dans un tableau trié par
ordre croissant T, en suivant l’algorithme de recherche dichotomique.
Exemple : Prenant un tableau trié T de 6 éléments et la valeur recherchée V=10 :

L’algorithme de recherche dichotomique fourni est le suivant :

Algorithm 3 : Recherche dichotomique


Variable : tableau : T[n] : entier
V, inf, sup, mil, n, i : entier


Début
Pour i 0 jusqu’à n-1 faire
écrire(” Entrez la valeur de T[”,i,”]= ”) ;
lire(T[i]) ;
Finpour
écrire (”Donner la valeur à rechercher :”) ;


lire (V) ;


inf 0;


sup n-1 ;
mil (inf+sup)/2 ;
Tantque (inf<=sup et V<>T[mil]) faire


Si (V<T[mil]) alors
sup mil-1 ;


Sinon
inf mil+1 ;


Finsi
mil (inf+sup)/2 ;
Fintantque
Si (T[mil] = V) alors
écrire (”la valeur ”, V , ” existe dans le tableau T en position ”, mil) ;
Sinon
écrire (”La valeur de ”, V, ” n’existe pas dans le tableau”) ;
Finsi
Fin

Tronc Commun MIP 4 2024-2025


# Algorithme de r e c h e r c h e d i c h o t o m i q u e
# Variables
T = []
V, i n f , sup , mil , n , i = 0 , 0 , 0 , 0 , 0 , 0
# Demander a l ’ u t i l i s a t e u r de s a i s i r l a t a i l l e du t a b l e a u
n = i n t ( i n p u t ( ”En tre z l a t a i l l e du t a b l e a u t r i e : ”) )
# S a i s i e d e s v a l e u r s dans l e t a b l e a u
f o r i in range (n) :
T. append ( i n t ( i n p u t ( f ”Entrez l a v a l e u r de T[ { i }]= ”) ) )
# Demander l a v a l e u r a r e c h e r c h e r
V = i n t ( i n p u t ( ”Donnez l a v a l e u r a r e c h e r c h e r : ”) )
# I n i t i a l i s e r l e s indices i n f e r i e u r , superieur et milieu
i n f , sup = 0 , n = 1
m i l = ( i n f + sup ) // 2
# Recherche b i n a i r e
w h i l e i n f <= sup and V != T [ m i l ] :
i f V < T[ mil ] :
sup = m i l = 1
else :
i n f = mil + 1
m i l = ( i n f + sup ) // 2
# V e r i f i e r s i la valeur a ete trouvee
i f T[ m i l ] == V:
p r i n t ( ”La v a l e u r ” , V, ” e x i s t e dans l e t a b l e a u T en p o s i t i o n ” , m i l )
else :
p r i n t ( ”La v a l e u r de ” , V, ”n ’ e x i s t e pas dans l e t a b l e a u ”)

Tronc Commun MIP 5 2024-2025

Vous aimerez peut-être aussi