J2 S5 BacScientifiques
J2 S5 BacScientifiques
J2 S5 BacScientifiques
Suite arithmétique
On se propose de concevoir une interface graphique permettant de saisir un nombre X, de longueur paire et
composé de 6 à 20 chiffres, puis de vérifier si toutes les tranches successives de deux chiffres de X, une fois
triées dans l’ordre croissant, constituent des termes d’une suite arithmétique croissante.
Une suite arithmétique croissante est une suite dans laquelle chaque terme permet de déduire le suivant en
lui ajoutant une constante r appelée raison (pour tout n > 0 ; Un = Un-1 + r avec r > 0).
Exemples :
- Pour X = 301015250520 ; Les tranches de X : 3 0 1 0 1 5 2 5 0 5 2 0
Les tranches de X triées : 0 5 1 0 1 5 2 0 2 5 3 0
Les tranches successives de X, une fois triées dans l’ordre croissant, forment des termes d’une suite
arithmétique croissante de raison r = 5. En effet, (10 – 5) = (15 – 10) = (20 – 15) = (25 – 20) = (30 – 25) = 5
- Pour X = 41331020 ; Les tranches de X : 4 1 3 3 1 0 2 0
Les tranches de X triées : 1 0 2 0 3 3 4 1
Les tranches successives de X, une fois triées dans l’ordre croissant, ne forment pas des termes d’une suite
arithmétique croissante.
Travail demandé
1. Créer l’interface graphique illustrée dans la figure Fig1 et l’enregistrer sous le nom
InterfaceArithmétique. Cette interface contient les éléments suivants :
Un label contenant le texte "Suite arithmétique"
Un label contenant le texte "X=",
Une zone de saisie pour la saisie du nombre X,
Un label pour afficher un premier message,
Un label pour afficher un deuxième message,
Un bouton intitulé "Vérifier". Fig1
2. Créer un programme en Python et l’enregistrer sous le nom SuiteArithmétique dans lequel on
demande :
a. d’implémenter l’algorithme suivant de la fonction Trier(CH) qui permet de trier dans l’ordre
croissant les tranches de deux chiffres de la chaîne CH.
Fonction Trier(CH : Chaîne de caractères) : Chaîne de caractères
DEBUT
PERMUT Vrai T.D.O.L
Tant que PERMUT Faire Objet Type/Nature
PERMUT Faux
K Entier
Pour K de 0 à Long(CH)-3) [Pas=2] Faire
BLOC1 Sous_chaîne(CH, K, K+2) PERMUT Booléen
BLOC2 Sous_chaîne(CH, K+2, K+4) BLOC1, BLOC2 Chaîne de caractères
Si BLOC1>BLOC2 Alors
CH Sous_chaîne(CH, 0, K)+BLOC2+BLOC1+Sous_chaîne(CH, K+4, Long(CH))
PERMUT Vrai
FinSi
Fin Pour
Fin Tant que
Retourner CH
FIN
Page 1 sur 2
b. de développer une fonction nommée Calculer(X) permettant de retourner, pour un nombre X dont
les tranches de deux chiffres sont triées dans l’ordre croissant, un entier égal à :
- la différence entre deux tranches successives de X dans le cas où cette différence est constante
pour toutes les tranches successives,
- zéro dans le cas contraire.
c. de développer un module Play qui s’exécute suite à un clic sur le bouton "Vérifier" permettant :
- de récupérer la valeur du nombre X saisi et de s’assurer de sa validité afin d’afficher le message
adéquat via le label dédié à l’affichage, comme illustré dans la figure Fig2,
- d’exploiter les fonctions Trier et Calculer afin d’afficher le message adéquat via les labels
dédiés à l’affichage, comme illustré dans les figures Fig3 et Fig4.
d. d’exploiter l’annexe présentée ci-après tout en apportant les modifications nécessaires à l’intégration
de l’interface graphique InterfaceArithmétique.
Fig2
Fig3 Fig4
Annexe
from PyQt5.uic import loadUi
from PyQt5.QtWidgets import QApplication
……
……
app = QApplication([])
windows = loadUi ("Nom_Interface.ui")
windows.show()
windows.Nom_Bouton.clicked.connect (Nom_Module)
app.exec_()
Grille d’évaluation
Tâches Nombre de points
1. Création de l’interface InterfaceArithmétique. 3
2. Création du programme SuiteArithmétique. 17 =
a. Implémentation de la fonction Trier. 4.5
b. Développement de la fonction Calculer. 6
c. Développement du module Play 5
d. Exploitation de l’annexe. 1.5
Page 2 sur 2