Un nombre est dit palindrome s'il est écrit de la même manière de gauche à droite ou de droite à gauche Exemple : 454 , 23832 et 10801 sont des nombres palindrome
Ecrire un programme pascal qui permet de tester si un nombre >0 saisie au clavier est Palindrome ou non.
Pour vérifier si un nombre est un palindrome, on peut suivre les étapes suivantes :
1- Lire le nombre : Prendre en entrée un nombre entier positif.
2- Convertir le nombre en chaîne de caractères : Cela permet de comparer facilement les chiffres du début et de la fin.
3- Comparer les chiffres : Comparer les chiffres de la chaîne du début et de la fin en avançant vers le centre.
4- Afficher le résultat : Si tous les chiffres correspondent, alors le nombre est un palindrome ; sinon, il ne l'est pas.
Dans cet algorithme, On va utiliser deux fonctions.
Algorithme du programme principal
1 2 3 4 5 6 7 8 9 |
Algorithme test_nbr_palindrome Debut ch= saisie_numerique() Si test_palindrome(ch): ecrire(ch,' est palindrome') Sinon ecrire(ch,' est non palindrome') Finsi Fin |
Déclaration des objets
Objet | Type / Nature |
ch | chaîne des caractères |
La fonction saisie_numerique
Cette fonction retourne une chaîne qui contient un nombre > 0.
1 2 3 4 5 6 7 8 9 10 |
Fonction saisie_numerique() Début ecrire('donner un nombre >0') lire(ch) Tantque non(Estnum(ch)) : ecrire('donner un nombre >0') lire(ch) Fin Tantque retourner ch Fin |
La fonction test_palindrome
Cette fonction teste si un nombre est composé des chiffres dans l'ordre croissant ou non.
Cette fonction utilise l'indice i pour parcourir la chaîne de caractères du début vers la fin et de la fin vers le début.
Elles Compare les chiffres à ces indices.
Si un couple de chiffres ne correspond pas, la fonction retourne une variable booléenne contenant la valeur 'Faux'.
Si la boucle se termine sans trouver de différences, la fonction retourne une variable booléenne contenant la valeur 'Vrai'.
1 2 3 4 5 6 7 8 |
Fonction test_palindrome(ch) Début i<-0 Tant que (ch[i]==ch[long(ch)-i-1]) ou (i<long(ch)-2) Faire i=i+1 Fin tant que retourner (ch[i]==ch[long(ch)-i-1]) 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 |
def saisie_numerique(): # Saisie d'une chaine ch=input("donner un nombre >0 ") while not(ch.isdecimal()) : ch=input("donner un nombre >0 ") return ch # fonction qui teste un nombre cubique ou non def test_palindrome(ch): i=0 while (ch[i]==ch[len(ch)-i-1]) and (i<len(ch)//2) : i=i+1 return ch[i]==ch[len(ch)-i-1] ch= saisie_numerique() if test_palindrome(ch): print(ch,' est palindrome') else: print(ch,' est non palindrome') |
Exécution du programme
Pour créer une application en Python pour afficher le tableau des n entiers en utilisant Qt Designer pour l'interface graphique, suivez 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 un nombre sous forme d'une chaîne des caractères.
QPushButton
nommé 'afficher_bt' pour exécuter le module test_palindrome.
QLabel
nommé 'testpalindrome' pour afficher le nombre est palindrome ou non.
Enregistrez le fichier avec l'extension .ui
, par exemple test_palindrome.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 |
from PyQt5.uic import loadUi from PyQt5 import QtCore, QtGui from PyQt5.QtWidgets import * from PyQt5 import QtCore, QtGui, QtWidgets app = QApplication([]) windows = loadUi ("test_palindrome.ui") def test_palindrome() : ch = windows.ch.text() if ch.isdecimal(): i=0 # initialiser l'indice while (ch[i]==ch[len(ch)-i-1]) and (i<len(ch)//2) : i=i+1 if (ch[i]==ch[len(ch)-i-1]) : windows.testpalindrome.setText('est un nombre palindrome') else : windows.testpalindrome.setText('est un nombre non palindrome') else : windows.testordre.setText('donner un nombre >0') windows.afficher_bt.clicked.connect ( test_palindrome ) windows.show() app.exec_() |
Exécution du programme
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