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 entre 5 et 20) 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.
Voici une approche algorithmique pour résoudre le problème, étape par étape :
1- Saisie des éléments du tableau T
:
Saisir un tableau T
de N
entiers positifs de 3 chiffres chacun, où 5 ≤ N ≤ 20
.
Chaque entier doit être compris entre 100 et 999 inclusivement.
2- Vérifier si un nombre est symétrique :
Un nombre est symétrique s'il est identique à son inverse. Par exemple, 121, 424, et 454 sont symétriques, car en les lisant de gauche à droite ou de droite à gauche, on obtient le même nombre.
3- Chercher et afficher les nombres symétriques :
Parcourir le tableau T
, vérifier si chaque nombre est symétrique, et les afficher.
Dans cet algorithme, On va utiliser une fonction et deux procédures:
Algorithme du programme Principal
1 2 3 4 5 6 7 8 |
Algorithme entiers_symetrique Debut n<-saisie_taille() Ecrire('Remplissage du tableau t') remplir(t,n) Ecrire('les nombres symetriques sont') afficher_symetrique(t,n) Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
n | entier |
t | tableau des entiers |
La fonction saisie_taille
Cette fonction saisit un entier entre 5 et 20.
1 2 3 4 5 6 7 8 9 10 |
fonction saisie_taille():entier Début Ecrire('donner un entier entre 5 et 20') Lire(n) Tant que (n<5) ou (n>20) faire Ecrire('donner un entier entre 5 et 20') Lire(n) Fin tant que retourner n Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
n | entier |
La procédure remplir
Cette procédure remplit le tableau t par des chiffres.
1 2 3 4 5 6 7 8 9 10 11 |
procedure remplir(@t:tab;n:entier) Début Pour i de 0 à n-1 faire Ecrire("donner un entier>0 forme de 3 chiffres pour elt N°"+i+": ") lire(t[i]) Tant que (t[i]<100) ou (t[i]>999) faire Ecrire("donner un entier>0 forme de 3 chiffres pour elt N°"+i+": ") lire(t[i]) Fin tant que Fin pour Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
i | entier |
La procédure afficher_symetrique
Cette procédure affiche les éléments symétriques du tableau
1 2 3 4 5 6 7 8 |
procedure afficher_symetrique(t:tab;n:entier) Début Pour i de 0 à n-1 faire Si (t[i] div 100 = t[i] mod 10) alors # test si le nombre est symetrique Ecrire('t['+i+']= '+t[i]) Fin si Fin pour Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
i | entier |
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 |
from numpy import array t=array([int()]*30) #declaration du tableau des entiers def saisie_taille() : n=int(input("donner un entier entre 5 et 20: ")) while(n<5) or (n>20) : n=int(input("donner un entier entre 5 et 20: ")) return n def remplir(t,n): for i in range (n) : t[i]=input("donner un entier>0 forme de 3 chiffres pour elt N°"+str(i)+": ") while (t[i]<100) or (t[i]>999): t[i]=input("donner un entier>0 forme de 3 chiffres pour elt N°"+str(i)+": ") def afficher_symetrique(t,n): for i in range (n) : #test si l'entier est symetrique ou non if (t[i] // 100 == t[i] % 10): print(t[i],end=' ') #programme principal n=saisie_taille() print('Remplissage du tableau t') remplir(t,n) print('les nombres symetriques sont') afficher_symetrique(t,n) |
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
+216 92 886 231
medaliprof@gmail.com
Site robotique réalisé par Mohamed Ali-Prof Info