Sujet type bac pratique n°9 : les chiffres romains et la matrice des motifs (Qt Designer et PyQt5)
Écris tes programmes en Python ou en algorithme et vérifie-les tout de suite, puis ouvre la correction exercice par exercice.
Comme à l'épreuve pratique : l'interface est dessinée dans Qt Designer et enregistrée sous le nom interface.ui, le programme Python la charge avec loadUi. Les noms des objets imposés doivent être respectés. Tout se fait dans l'Atelier Qt de Mission Carthage, sur téléphone comme sur PC. Barème sur 20 points.
Sujet : les chiffres romains (20 pts)
Les chiffres romains I, V, X, L, C, D et M valent 1, 5, 10, 50, 100, 500 et 1000. Pour lire un nombre écrit en chiffres romains, on additionne la valeur de ses lettres, sauf quand une lettre vaut moins que la suivante : elle est alors retranchée. Exemples : XIV = 10 - 1 + 5 = 14, MCMXCIV = 1994, MMXXVI = 2026.
Un texte fait de ces sept lettres n'est pas toujours un nombre romain bien formé : IIII ou IC se lisent 4 et 99, mais s'écrivent IV et XCIX. Pour le vérifier, on réécrit la valeur D en chiffres romains et on compare avec le texte saisi. On utilise pour cela une matrice R de 4 lignes et 10 colonnes de chaînes : la ligne 0 contient l'écriture des unités de 0 à 9 (« », I, II, III, IV, V, VI, VII, VIII, IX), la ligne 1 celle des dizaines (« », X, XX, …, XC), la ligne 2 celle des centaines (« », C, CC, …, CM) et la ligne 3 celle des milliers (« », M, MM, MMM ; les autres colonnes restent vides). Alors D s'écrit R[3][milliers] + R[2][centaines] + R[1][dizaines] + R[0][unités], pour 1 ≤ D ≤ 3999.
L'interface contient :
- une étiquette avec le texte « Nombre romain : »,
- une zone de saisie nommée txtR (QLineEdit),
- un bouton nommé btnConvertir (QPushButton) avec le texte « Convertir »,
- une étiquette nommée lblRes (QLabel) pour le résultat.
Travail demandé
- 1) Concevoir l'interface graphique décrite ci-dessus et l'enregistrer sous le nom interface.ui (3 pts).
- 2) Créer un programme Python et l'enregistrer sous le nom Romain.py (1 pt).
- 3) Dans ce programme, développer une fonction Valeur(c) qui renvoie la valeur du chiffre romain c, ou 0 si c n'est pas un chiffre romain, en utilisant la structure Selon (2 pts).
- 4) Développer une fonction Valide(ch) qui renvoie Vrai si ch est non vide et formée uniquement de chiffres romains (2 pts).
- 5) Développer une fonction RomainDec(ch) qui renvoie la valeur décimale du nombre romain ch (3 pts).
- 6) Développer une procédure RemplirR(R) qui remplit la matrice R décrite ci-dessus (3 pts).
- 7) Développer une fonction DecRomain(R, d) qui renvoie l'écriture en chiffres romains de l'entier d (1 ≤ d ≤ 3999) à l'aide de la matrice R (2 pts).
- 8) Développer un module Play, appelé par un clic sur le bouton btnConvertir, qui affiche « Chiffre romain invalide » si le texte saisi n'est pas valide ; sinon, si la valeur D du texte n'est pas comprise entre 1 et 3999 ou si DecRomain ne redonne pas le texte saisi, « Nombre romain mal formé » ; sinon « R = D », où R est le nombre romain et D sa valeur décimale (2 pts).
- 9) Ajouter les instructions qui remplissent la matrice R, chargent l'interface, relient le bouton au module Play et affichent la fenêtre (2 pts).
Exemples : pour MCMXCIV, l'étiquette affiche « MCMXCIV = 1994 » ; pour IIII, « Nombre romain mal formé » ; pour MXA, « Chiffre romain invalide ».
Correction détaillée
La correction de ce devoir est réservée aux abonnés. Elle donne l'analyse, l'algorithme en notation tunisienne, le programme Python vérifié et les erreurs fréquentes de chaque exercice. Avec un compte gratuit, tu peux ouvrir 3 corrections de ton choix.
Connecte-toi d'abord : créer un compte ou me connecter.
Tu as encore 0 correction(s) gratuite(s) à utiliser.
Il te faut un abonnement actif pour les autres corrections. Voir les tarifs ou demander un code sur WhatsApp, Instagram ou Facebook.
Les corrections gratuites de cet appareil ont déjà été utilisées, avec ce compte ou un autre : chaque appareil a droit à 3 corrections gratuites, quel que soit le nombre de comptes. Pour les autres corrections, il faut un abonnement. Voir les tarifs ou écrire sur WhatsApp.
Mission Carthage est en période de test : le site s'ouvre avec un code d'accès. Demande ton code sur WhatsApp, Instagram ou TikTok, puis tape-le sur missioncarthage.tn.
Cette correction n'est pas encore publiée. Reviens bientôt.
Impossible de charger la correction. Vérifie ta connexion et réessaie.
Toutes les corrections jusqu'au devoir de synthèse3 mois pour 20 TND, offre jusqu'au 30 novembre 2026 Envoyer à un parent pour qu'il paieSujet original écrit pour Mission Carthage, dans le format de l'épreuve pratique d'informatique du bac Sciences de l'informatique. Ce n'est pas un sujet officiel.
Tout le programme : Bac Sciences de l'informatique · Revoir le cours · Tous les devoirs