Degré de ressemblance – Bac Pratique 2015 [ Algorithme + Python ]

Algo et Python 03-09-24
142 0

Sujet bac informatique pratique 2015 (Bac scientifique)

On définit le degré de ressemblance DR entre deux mots de même longueur par la formule suivante : DR= (nombre de caractères en commun bien placés / longueur du mot) * 100 (Un caractère est dit bien placé lorsqu’il occupe la même position dans les deux mots.

Exemples :

- Pour mot1= « EXEMPLE » et mot2 »EXAMENS » à DR=(3/7)*100=42.85

- Pour mot1= « TRAITEMENTS » et mot2 =  « IFORMATIQUE » à DR=(0/11)*100=00.00

Ecrire un programme Python qui permet de saisir une chaine Ch non vide et composée de lettres majuscules, puis de remplir un tableau T par N(5≤N≤10) chaines de caractères composées de lettres majuscules et de même longueur que Ch et d’afficher le degré de ressemblance entre ch et les éléments de T.

Solution Algorithmique

Pour résoudre ce problème, voici le principe de l'algorithme qui permet de calculer le degré de ressemblance (DR) entre une chaîne de caractères Ch et les éléments d'un tableau T de chaînes de caractères de même longueur :

1. Saisie de la chaîne Ch

1- Demander à l'utilisateur de saisir une chaîne ch composée de lettres majuscules.

2- Vérifier que ch n'est pas vide.

2. Remplir le tableau T

1- Demander à l'utilisateur de saisir un nombre N (où 5 ≤ N ≤ 10).

2- Remplir le tableau T avec N chaînes de caractères, chacune composée uniquement de lettres majuscules et ayant la même longueur que ch.

3- Vérifier que chaque chaîne saisie a bien la même longueur que ch.

3. Calcul du degré de ressemblance (DR)

Pour chaque mot dans le tableau T :

a) Comparer Ch et le mot : Parcourir les caractères des deux chaînes et compter le nombre de caractères bien placés (caractères identiques aux mêmes positions).

b) Calculer le DR : Utiliser la formule : DR=(nombre de caractères en commun bien placés / longueur du mot) * 100

4. Affichage des résultats

Afficher le DR pour chaque chaîne du tableau T par rapport à Ch.

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


Algorithme du programme principal

Déclaration des objets

Objet Type / Nature
n entier
ch chaîne des caractères
t tableau des 20 chaînes des caractères

 

La fonction saisie_taille

Cette fonction retourne un entier n entre 5 et 10 saisi par l'utilisateur.

Déclaration des objets

Objet

Type / Nature

n

entier

La fonction saisie_ch

Cette fonction retourne une chaîne de caractères formée des lettres majuscules.

Déclaration des objets

Objet Type / Nature
ch chaine des caracteres

 

La fonction verif_majus

Cette fonction vérifie si une chaine est composé uniquement des lettres majuscules ou non.

Déclaration des objets

Objet

Type / Nature

i

entier

La procédure remplir

Cette procédure remplit le tableau t des mots composé uniquement des lettres majuscules et dont ses longueurs sont égaux à long de ch

Déclaration des objets

Objet

Type / Nature

i

entier

La fonction calcul_ressemblance

Cette fonction calcule le degré de ressemblance entre deux chaînes.

Déclaration des objets

Objet Type / Nature
i entier
cp entier

 

La procédure afficher_degre_ressemblance

Cette procédure calcule et affiche le DR pour chaque chaîne du tableau T par rapport à ch.

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 des chaînes à 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 mots.

3- Ajouter chaque sous-chaîne  au tableau.

Pour créer une application en Python pour calculer et afficher le DR pour chaque chaîne du tableau T par rapport à ch.

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 le mot.

QLineEdit nommé 'tab_ch' pour entrer les chaines à mettre dans le tableau.

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

QPushButton nommé 'bt_calcul' pour exécuter le module afficher_degre_ressemblance.

QLabel nommé 'msg' pour afficher les messages d'erreur

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

QLabel nommé 'resultat' pour afficher les mots zigzag.

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

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

Exécution du programme

 

Vous pouvez voir aussi :

1) des exercices sur les chaînes des caractères

2) des exercices sur les tableaux

3) des sujets Bac pratique

4) des sujets Bac théorique

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