On se propose d’écrire un programme Python permettant saisir les éléments d’un tableau T de N entiers positifs de 3 chiffres chacun(N est une constante) puis de chercher et d’afficher les nombres symétriques de ce tableau.
Exemple : Pour N=7 et T
| 424 | 715 | 133 | 121 | 454 | 616 | 566 |
Le programme affichera : Les nombres symétriques de T sont : 424, 121, 454 et 616.
On se propose l'algorithme suivant :
|
1 2 3 4 5 6 7 8 9 10 |
Algorithme Symetrique Début Saisie(T) Ecrire (" Les nombres symétriques de T sont : ") Pour i de 0 à N-1 faire Si Verif(T|i]) alors Ecrire (T[i]) Fin si Fin pour Fin |


|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Algorithme symetrique Debut # Fixer le nombre d'éléments à saisir à 7. n <-- 7 # Appeler la procédure saisie pour remplir les n premières cases. saisie(t) # Afficher un message annonçant les nombres symétriques. Ecrire("Les nombres symétriques de T sont : ") # Parcourir les n premiers éléments du tableau. Pour i de 0 à n-1 faire # Vérifier si l'élément t[i] est un nombre symétrique. Si verif(t[i]) alors # Afficher le nombre si le chiffre des centaines # est identique au chiffre des unités. Ecrire(t[i]) Fin si Fin pour Fin |
Déclaration des objets
| Objet | Type / Nature |
|---|---|
| t | tableau des entiers |
Cette procédure permet de remplir les n premières cases du tableau t par des entiers de trois chiffres (compris entre 100 et 999). Elle vérifie chaque valeur saisie et répète la saisie tant que la valeur n’est pas valide.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Procédure saisie(var t:tab) Début # Saisir les n premiers éléments du tableau. Pour i de 0 à n-1 faire # Initialiser le booléen test à False. # Il indique si la valeur saisie est valide. test <-- Faux # Répéter la saisie tant que la valeur n'est pas valide. Tant que test = Faux faire # Demander un entier de trois chiffres strictement positif. Ecrire("Donner un entier > 0 formé de 3 chiffres pour elt N°" ,i, " : ") Lire(t[i]) # Vérifier que le nombre appartient à l'intervalle [100, 999]. Si 100 <= t[i] <= 999 alors # La valeur saisie est valide. test <-- Vrai Fin si Fin tant que Fin |
Déclaration des objets
| Objet | Type / Nature |
|---|---|
| i | entier |
Cette fonction vérifie si un entier de trois chiffres est symétrique, c’est-à-dire si son chiffre des centaines est identique à son chiffre des unités. Elle retourne Vrai si les deux chiffres sont égaux, sinon elle retourne Faux.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Fonction verif(elt:entier):booléen Début # Extraire le chiffre des centaines avec la division entière. # Exemple : 525 DIV 100 donne 5. # # Extraire le chiffre des unités avec le reste de la division. # Exemple : 525 MOD 10 donne 5. # # Comparer le chiffre des centaines avec celui des unités. Si elt DIV 100 = elt MOD 10 alors # Renvoyer True si les deux chiffres sont identiques. retourner Vrai Sinon # Renvoyer False si les deux chiffres sont différents. retourner Faux Finsi Fin |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# ========================================================== # Importation de la bibliothèque NumPy # ========================================================== # Importer la fonction array qui permet de créer des tableaux. from numpy import array # ========================================================== # Déclaration du tableau des entiers # ========================================================== # Déclarer un tableau t contenant 30 éléments entiers. t = array([int()] * 30) # ========================================================== # Procédure de saisie des nombres # ========================================================== def saisie(t): # Saisir les n premiers éléments du tableau. for i in range(n): # Initialiser le booléen test à False. # Il indique si la valeur saisie est valide. test = False # Répéter la saisie tant que la valeur n'est pas valide. while test == False: # Demander un entier de trois chiffres strictement positif. t[i] = int(input("Donner un entier > 0 formé de 3 chiffres pour elt N°", i , " : " )) # Vérifier que le nombre appartient à l'intervalle [100, 999]. if 100 <= t[i] <= 999: # La valeur saisie est valide. test = True # ========================================================== # Fonction de vérification d'un nombre symétrique # ========================================================== def verif(elt): # Extraire le chiffre des centaines avec la division entière. # Exemple : 525 // 100 donne 5. # # Extraire le chiffre des unités avec le reste de la division. # Exemple : 525 % 10 donne 5. # # Comparer le chiffre des centaines avec celui des unités. if elt // 100 == elt % 10: # Renvoyer True si les deux chiffres sont identiques. return True else: # Renvoyer False si les deux chiffres sont différents. return False # ========================================================== # Programme principal # ========================================================== # Fixer le nombre d'éléments à saisir à 7. n = 7 # Appeler la procédure saisie pour remplir les n premières cases. saisie(t) # Afficher un message annonçant les nombres symétriques. print("Les nombres symétriques de T sont : ") # Parcourir les n premiers éléments du tableau. for i in range(n): # Vérifier si l'élément t[i] est un nombre symétrique. if verif(t[i]): # Afficher le nombre si le chiffre des centaines # est identique au chiffre des unités. # end=" " permet d'afficher les nombres sur la même ligne. print(t[i], end=" ") |
Exécution du programme

Pour créer une application en Python et Designer QT qui saisit les éléments d’un tableau T de N entiers et affiche les nombres symétriques, on va suivre ces étapes:
a- Ouvrez Qt Designer et créez un nouveau fichier de type Main Window.
b- Ajoutez ces widgets:
QLineEdit nommé 'ch' pour entrer les entiers.
QPushButton nommé 'remplir_bt pour mettre les entiers dans le tableau t
QLabel nommé 'msg' pour afficher des messages d'erreur et les nombres symétriques
QPushButton nommé 'bt_test' pour rechercher les nombres symétriques.

Enregistrez le fichier avec l'extension .ui, par exemple tabtab-2.ui.
Voici un exemple de script Python qui utilise l'interface graphique générée par Qt Designer.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
from PyQt5.uic import loadUi from PyQt5 import QtCore, QtGui from PyQt5.QtWidgets import * from PyQt5 import QtCore, QtGui, QtWidgets from numpy import array t=array([int()]*30) app = QApplication([]) windows = loadUi ("tabtab-2.ui") # Fonction qui supprime des espaces de la chaine des carcatères def supprimer_espaces (ch) : while(ch[0]==' '): # elimnier tous les espaces au début de la chaine ch=ch[1:len(ch)] while(ch[len(ch)-1]==' '): # elimnier tous les espaces a la fin de la chaine ch=ch[0:len(ch)-1] while (ch.find(' ')>0): ch=ch.replace(" ", " ") # remplacer les doubles espaces apar un seul espace return ch # Procedure qui remplit un tableau a partir d'une chaine des caractère def createTab(): ch = windows.ch.text() global n # pour la taille di tableau if ch=="": windows.msg.setText("Veuillez remplir la chaîne") else: windows.msg.clear() # effacer le message d erreur ch= supprimer_espaces(ch) i=0 j=0 ch1='' test_3chiffres=True # parcourir les caracteres de la chaine while((i<len(ch)) and test_3chiffres and (('0'<=ch[i]<='9') or (ch[i]==' '))): if ('0'<=ch[i]<='9'): ch1=ch1+ch[i] if ((ch[i]==' ') or (i==len(ch)-1)) : t[j]=int(ch1) test_3chiffres=(100<=t[j]<=999) ch1='' j=j+1 i=i+1 if (i<len(ch)) or test_3chiffres==False : windows.msg.setText("La chaine doit contenir des nombres de trois chiffres ") else : if 5<=j<=20: n=j tab='' for k in range (j) : tab=tab+ 't['+str(k)+']= '+ str(t[k])+ '\n' #afficher les elements du tableau windows.tab_label.setText(tab) else: windows.msg.setText("La taille du tableau entre 5 et 20 ") def test_symetrique(): liste='' for i in range (n) : if (t[i] // 100 == t[i] % 10): liste=liste+str(t[i])+' ' windows.msg.setText(liste) windows.remplir_bt.clicked.connect ( createTab ) windows.bt_test.clicked.connect ( test_symetrique ) windows.show() app.exec_() |
Exécution du programme
1) Remplissage du tableau

2) Recherche et affichage des nombres symétriques

Vous pouvez voir aussi :
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.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
Site robotique réalisé par Mohamed Ali Haj Salah - Prof Info