Trier un tableau des entiers – Bac Pratique 2014 [ Algorithme + Python ]

Algo et Python 20-08-24
39 0

Travail demandé

Soit T un tableau contenant des n entiers distincts avec n appartient à l’intervalle [1,99].

Pour trier dans l’ordre croissant les éléments du tableau T, on propose la méthode suivante :

1- Placer chaque élément T[i] dans la case d’indice T[i] d’un tableau intermédiaire T1, sachant que les éléments du tableau T1 sont initialisés à zéro.

2- Placer dans l’ordre tous les entiers différents de zéro du tableau TI, dans le tableau T.

Exemple :

Pour T=

6 2 11 8 4 5

 

Après application du principe de tri décrit précédemment, on pbtient le tableau intermédiare TI ci-dessous :

T1

0 2 0 4 5 6 0 8 0 0 11

 

On aura le tableau T trié suivant :

Pour T=

2 4 5 6 8 11

Travail demandé :

Ecrire un programme Python qui permet de :

1- remplir un tableau T par n entiers distincts strictement positifs et ne dépasse pas 99 avec 5≤n≤30.

2- trier le tableau T en utilisant la méthode décrite ci-dessus.                                                                                                                                               -

3- afficher le tableau T après tri.

Solution Algorithmique

Voici le principe de l'algorithme qui permet de réaliser les trois étapes demandées :

1. Remplir un tableau T par n entiers saisis dans un ordre croissant :

Initialisation : Créer un tableau T de taille n.

Saisie des éléments :

a) Saisir le premier élément du tableau t[0].

b) Pour chaque élément i de 1 à n-1 : comparer t[i] à T[i-1] :

- Si t[i] est supérieur ou égal à T[i-1], l'affecter à T[i].

- Sinon, redemander la saisie de l'entier jusqu'à ce que l'ordre croissant soit respecté.

2. Tri du tableau T avec la méthode décrite

Principe

- Utiliser un tableau intermédiaire T1 de taille 100 (indices de 0 à 99) initialisé à zéro.

- Placer chaque élément de T dans la case d’indice correspondant dans T1.

- Parcourir T1 et copier tous les éléments non nuls dans T dans l'ordre croissant.

Étapes

a- Pour chaque élément T[i] de T, placer T[i] dans T1 à l'indice T[i].

b- Parcourir T1 de l'indice 1 à 99. Chaque fois que T1[j] est non nul, placer T1[j] dans T.

c-T est maintenant trié dans l'ordre croissant.

3. Affichage du tableau T après tri

Une fois que le tableau T est trié, il suffit de l'afficher.

Dans cet algorithme, On va utiliser 3 fonctions et 3 procédures :

Déclaration des objets

Objet

Type / Nature

t

tableau de 100 entiers

t1

tableau de 100 entiers

n

entier

m

entier

La fonction saisie

Cette fonction retourne un entier n entre 1 et 99 saisi par l'utilisateur.

Déclaration des objets

Objet

Type / Nature

n

entier

La procédure remplir

Cette procédure remplit le tableau t de n entiers distincts.

Déclaration des objets

Objet

Type / Nature

i

entier

La fonction max

Cette fonction recherche le plus grand élément dans le tableau.

Déclaration des objets

Objet

Type / Nature

i

entier

x

entier

La procédure trier

Cette procédure trie les éléments du tableau t d'une façon croissante.

Déclaration des objets

Objet

Type / Nature

i

entier

j

entier

m

entier

La procédure afficher_tableau

Cette procédure affiche les éléments du tableau.

Déclaration des objets

Objet

Type / Nature

i

entier

Solution en Python

Exécution du programme

Solution en Python et Designer QT

Pour remplir un tableau d'entiers à partir d'une chaîne de caractères en Python, vous pouvez suivre les étapes suivantes :

1- Découper la chaîne de caractères en sous-chaînes contenant les entiers.

2- Convertir chaque sous-chaîne en entier.

3- Ajouter chaque entier au tableau.

Pour créer une application en Python pour trier les éléments du tableau dans l'ordre croissant .

1- Créer l'interface graphique avec Qt Designer

a- Ouvrez Qt Designer et créez un nouveau fichier de type Main Window.

b- Ajoutez ces widgets:

QLineEdit nommé 'ch' pour entrer des entiers .

QPushButton nommé 'remplir_bt' pour exécuter le module createTab afin de remplir le tableau à partir de la chaine 'ch'.

QPushButton nommé 'bt_trier' pour exécuter le module tri_Tab afin de trier le tableau T.

QLabel nommé 'msg' pour afficher un message d'erreur si ch est vide ou contient des valeurs non numériques ou les éléments du tableau ne sont pas dans l'ordre croissant.

QLabel nommé 'tab_label' pour afficher les éléments du tableau T.

QLabel nommé 'tab_label1' pour afficher les éléments du tableau T1.

Enregistrez le fichier avec l'extension .ui, par exemple tabtab-2.ui.

2- Créer le script Python pour l'application

Voici un exemple de script Python qui utilise l'interface graphique générée par Qt Designer.

Exécution du programme

1) Remplissage du tableau:

2) Affichage du tableau trié :

0 commentaire

laisser un commentaire

Veuillez noter s'il vous plaît*

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Passion de robotique

Atelier robotique

Construction des robots

Bras robotique

Maison intelligente

But de ce site web

La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.

Coordonnées

Zaouiet Kontech-Jemmel-Monastir-Tunisie

+216 92 886 231

medaliprof@gmail.com

Photos des articles

Site robotique réalisé par Mohamed Ali-Prof Info