Tri des fichiers – Bac pratique – Section informatique – 2018

Bac Info 12-01-26
25 0

Sujet (Algo et programmation - Bac 2018)

Soit "Source.txt" un fichier texte rempli par des entiers de l’intervalle [0,255], suivi chacun par un seul espace, représentant des codes de couleurs en décimal. Ce fichier contient au maximum 20 lignes composée chacune de 10 entiers.

Afin d’obtenir un fichier texte "Resultat.txt" représentant une palette de couleurs triées de la plus claire àla plus foncée, du haut en bas, on procède comme suit : - transférer le contenu de chaque ligne du fichier "Source.txt" vers une ligne d’une matrice M àraison d’un entier par case, - trier dans l’ordre croissant le contenu de chaque colonne de la matrice M,

- transférer le contenu de chaque ligne de la matrice M, après le tri, vers une ligne du fichier "Resultat.txt" tout en ajoutant un espace de séparation après chaque entier.

Exemple : Pour le contenu du fichier "Source.txt" suivant :

Travail demandé :

En utilisant l'éditeur de texte disponible (Bloc-notes, Notepad, Notepad++, ...), créer dans le dossier de travail le fichier texte "txt" et y saisir le contenu présenté dans l'exemple en respectant le contenu de chaque ligne.

Soit la procédure Tri_Rapide ci-dessous, écrite en langage Pascal, qui permet de trier dans l’ordre croissant un tableau T dont les indices des cases sont dans l’intervalle [d,f].

Ecrire un programme en Python intitulé "Palette" permettant :

- de transférer le contenu du fichier "source.txt" vers une matrice M comme décrit précédemment,

- d’utiliser le module Tri_Rapide pour trier dans l’ordre croissant chaque colonne de la matrice M,

- de transférer le contenu de la matrice M, après le tri, vers un fichier "source.txt" comme décrit précédemment,

- d'afficher le contenu du fichier "source.txt".

 

Solution Algorithmique

Dans cet algorithme, On va utiliser cinq procédures:

- la procédure remplir_matric()

- la procédure afficher_matrice()

- la procédure tri_rapide()

- la procédure tri_matrice()

- la procédure remplir_fichier_resultat()

 

Algorithme du programme Principal

Déclaration des objets

Objet Type / Nature
ligne entier
m matrice
t tableau

 

La procédure remplir_matrice

Cette procédure sert à lire le contenu du fichier texte Source.txt et à stocker les nombres qu’il contient dans une matrice m, ligne par ligne.

1- Elle ouvre le fichier Source.txt en mode lecture.

2- Elle lit toutes les lignes du fichier.

Pour chaque ligne :

- Elle supprime le caractère de fin de ligne (\n).

- Elle extrait les nombres entiers séparés par des espaces.

- Elle place ces nombres successivement dans les colonnes de la matrice m sur la ligne courante.

- Après avoir rempli une ligne de la matrice, elle passe à la ligne suivante.

- Elle utilise la variable globale ligne pour compter le nombre de lignes déjà remplies.

3- Enfin, elle ferme le fichier.

Déclaration des objets

Objet Type / Nature
colonne entier
f_source fichier
listes chaîne
liste chaîne
nbr chaîne
ligne entier(variable globale)

 

La procédure afficher_matrice

Cette procédure affiche à l’écran les éléments de la matrice de caractères ligne par ligne.

1- Elle parcourt la matrice selon le nombre de lignes l et de colonnes c.

2- Elle affiche chaque caractère de la matrice avec un espace entre les éléments.

3- Elle passe à la ligne après l’affichage de chaque ligne de la matrice.

Déclaration des objets

Objet Type / Nature
i entier
j entier

 

La procédure tri_rapide

Cette procédure permet de trier un tableau t par ordre croissant en utilisant l’algorithme du tri rapide (Quick Sort).

1- Elle choisit un pivot (l’élément du milieu du sous-tableau).

2- Elle place ce pivot au début du sous-tableau.

3- Elle partitionne le tableau :

- Tous les éléments inférieurs au pivot sont déplacés à gauche.

- Les éléments supérieurs ou égaux restent à droite.

- Elle remet ensuite le pivot à sa position définitive dans le tableau.

4- Elle applique récursivement le même traitement au sous-tableau situé à gauche du pivot, puis au sous-tableau situé à droite du pivot

Déclaration des objets

Objet Type / Nature
m entier
x entier
p entier

 

La procédure tri_matrice

Cette procédure sert à trier séparément chaque colonne de la matrice m par ordre croissant.

Elle parcourt les 10 premières colonnes de la matrice.

Pour chaque colonne :

1- Elle copie les éléments de cette colonne dans le tableau temporaire t.

2- Elle applique la procédure tri_rapide pour trier le tableau t.

3- Elle recopie ensuite les valeurs triées de t dans la colonne correspondante de la matrice m.

Déclaration des objets

Objet Type / Nature
i entier
j entier

 

La procédure remplir_fichier_resultat

Cette procédure permet d’écrire le contenu de la matrice m (déjà triée) dans le fichier texte Resultat.txt.

1- Elle ouvre le fichier Resultat.txt en mode écriture.

2- Elle parcourt la matrice ligne par ligne.

Pour chaque ligne, elle construit une chaîne contenant les 10 valeurs de la ligne, séparées par des espaces et écrit cette chaîne dans le fichier, suivie d’un saut de ligne.

3- Enfin, elle ferme le fichier.

Déclaration des objets

Objet Type / Nature
f fichier
i entier
j entier
liste chaîne

 

Solution en Python

Exécution du programme

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 Haj Salah - Prof Info