Recherche des mots palindromes dans un tableau des chaînes – Bac pratique 2009 [ Algorithme + Python ]

Algo et Python 13-08-24
118 0

Sujet bac informatique pratique 2009 (Bac scientifique)

Soit T un tableau de N chaînes de caractères non vides et dont la taille maximale est 5 caractères.

On se propose d’écrire un programme Python permettant :

- de remplir le tableau T par N chaînes (2<=N<=30) - éliminer de chaque élément du tableau tous les caractères non alphabétiques - convertir toutes les chaînes non vides en majuscule - afficher toutes les chaînes non vides palindromes N.B : une chaine est dite palindrome si elle se lit de la même façon de gauche à droite et de droite à gauche. Exemples : AZZA,RADAR,AA,Z. Exemple : Si N=5 et les éléments de T sont :

A54a 15aZ Radar 2009 H ?

Le tableau après l’étape 2 contiendra les chaînes suivantes

Aa AZ Radar H

Le tableau après l’étape 3 contiendra les chaînes suivantes

AA AZ RADAR H

Le programme affichera : AA   RADAR   H

Solution Algorithmique

Voici le principe de l'algorithme pour accomplir les différentes tâches demandées :

1. Remplir le tableau T avec N chaînes :

Demander à l'utilisateur d'entrer un nombre N (2 <= N <= 30). Créer un tableau T de taille N.

Pour chaque indice de 0 à N−1, demander à l'utilisateur de saisir une chaîne de caractères.

Stocker cette chaîne dans le tableau T[i].

2. Éliminer tous les caractères non alphabétiques :

Parcourir chaque élément du tableau T.

Pour chaque chaîne, créer une nouvelle chaîne ne contenant que les caractères alphabétiques (de A à Z et de a à z).

Remplacer la chaîne initiale par cette nouvelle chaîne filtrée.

3. Convertir toutes les chaînes non vides en majuscules :

Parcourir à nouveau chaque élément du tableau T.

Pour chaque chaîne non vide, convertir tous les caractères en majuscules.

4. Afficher toutes les chaînes non vides qui sont des palindromes :

Parcourir le tableau T.

Pour chaque chaîne, vérifier si elle est un palindrome. Pour cela, comparer la chaîne avec son inverse.

Si la chaîne est un palindrome, l'afficher.

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

 

Algorithme du programme principal

Déclaration des objets

Objet

Type / Nature


n

entier

t

tableau de 30 entiers

La fonction saisie

Cette fonction retourne un entier n entre 4 et 10 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.

Déclaration des objets

Objet

Type / Nature

i

entier

La fonction eliminer_majus

Cette procédure élimine tous les caractères non alphabétiques et convertit tous les caractères en majuscules.

Déclaration des objets

Objet

Type / Nature

i

entier

j

entier

ch

chaîne des caractères

La fonction test_palindrome

Cette fonction vérifier si la chaîne des caractères est un palindrome

Déclaration des objets

Objet

Type / Nature

i

entier

La procédure recherche_palindrome

Cette procédure recherche et affiche les mots se trouvant dans le 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 des caractères à 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 des caractères.

2- Ajouter chaque caractère au tableau.

Pour créer une application en Python pour éliminer de chaque élément du tableau tous les caractères non alphabétiques, convertir toutes les chaînes non vides en majuscule et afficher toutes les chaînes non vides palindromes, on suit ces étapes :

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 caractères pour le tableau t.

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

QPushButton nommé 'palindrome_bt' pour exécuter le module recherche_palindrome.

QLabel nommé 'msg' pour afficher un message d'erreur si ch est vide ou ne contient pas des lettres minuscules.

QLabel nommé 'liste' pour afficher les mots palindromes.

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

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

 

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