Académique Documents
Professionnel Documents
Culture Documents
Exercice n°1
On se propose d’écrire un programme qui permet de compresser ou de décompresser une chaine de
caractères.
La compression se fait pour une chaine formée uniquement de 0 et 1
La décompression se fait pour une chaine numérique de longueur maximale 8 caractères.
Exemples :
Si la chaîne = "10010111" alors la chaine compressée est "1201031"
Si la chaîne = "41031" alors la chaîne décompressée est "11110111"
Pour accomplir cette tâche, on se propose de concevoir une interface graphique contenant les éléments
suivants :
Un label contenant le texte "Compression / Décompression d’une chaine"
Un label demandant la saisie d’une chaine "Chaîne"
Une zone de saisie permettant la saisie de la chaine
Un label pour afficher le message adéquat
Un bouton intitulé "Compression"
Un bouton intitulé "Décompression"
Un bouton intitulé "Annuler" qui permet d’effacer la zone de saisie, et le message
Un bouton intitulé "Quitter" qui permet de quitter l’interface
Travail demandé :
-1-
Lycée Pilote Sfax Niveau : 4ème Année
Professeurs : Mme Rekik & Mme Sellami
Exemples d’exécution :
-2-
Lycée Pilote Sfax Niveau : 4ème Année
Professeurs : Mme Rekik & Mme Sellami
Exercice n°2
Un nombre est dit riche si au moins un de ses facteurs premiers est répété deux fois ou plus dans la
décomposition du nombre en facteurs premiers.
Exemples :
• Le nombre 72 est dit riche, car 2 et 3 se répètent plus qu’une fois dans sa décomposition en facteurs
premiers (72= 23*32).
• Le nombre 22 n’est pas riche, car tous ses facteurs premiers existent une seule fois (22 =2*11).
Pour accomplir cette tâche, on se propose de concevoir une interface graphique contenant les éléments
suivants :
Un label contenant le texte "Nombre riche"
Un label demandant la saisie d’un nombre "Nombre positif à 2 ou à 3 chiffres : "
Une zone de saisie permettant la saisie du nombre
Un label pour afficher le message adéquat
Un bouton intitulé "Vérifier"
Un bouton intitulé "Annuler" qui permet d’effacer la zone de saisie et le message
Un bouton intitulé "Quitter" qui permet de quitter l’interface
Travail demandé :
-3-
Lycée Pilote Sfax Niveau : 4ème Année
Professeurs : Mme Rekik & Mme Sellami
Exercice n°3
Un entier N est dit unitairement parfait s’il est égal à la somme de ses diviseurs unitaires sauf
lui-même.
On appelle diviseur unitaire d’un entier N, tout entier D qui vérifie les conditions suivantes :
- D est un diviseur de N
- D et (N div D) sont premiers entre eux
N.B : Deux nombres sont dits premiers entre eux si leur premier commun diviseur (PGCD) est égal à 1
Exemple : Pour N=60
N est un entier unitairement parfait car il est égal à la somme de ses diviseurs unitaires
Les diviseurs de 60 1 2 3 4 5 6 12 15 20 30
60 DIV diviseur 60 30 20 15 12 10 5 4 3 2
Test de primalité entre eux oui non oui oui oui non oui oui oui non
Les diviseurs unitaires de 60 1 3 4 5 12 15 20
La somme des diviseurs unitaires de 60
60
Travail demandé :
1) Concevoir une interface graphique (voir les exemples d’exécution) et l’enregistrer sous le nom
"interface_unitp.ui".
Fonction test_primalite ( p, k : entier) : booléen
2) Développer la fonction "test_primalite" décrite Début
Répéter
ci-contre, (qui vérifie si deux entiers p et k sont Si p>k alors
p p-k
premiers entre eux), dans un programme et Sinon
k k-p
l’enregistrer dans votre dossier de travail sous Fin si
Jusqu’à p = k
le nom "test.py". Retourner p = 1
Fin
Exemples d’exécution :
-4-
Lycée Pilote Sfax Niveau : 4ème Année
Professeurs : Mme Rekik & Mme Sellami
Exercice n°4
Pour trier, dans l’ordre croissant des alphabets, une chaîne non vide de longueur maximale 20 caractères,
on se propose de concevoir une interface graphique comme présentée ci-dessous.
N.B : Le tri est effectué en utilisant la méthode de tri par sélection et il implique uniquement les lettres
alphabétiques de la chaîne.
Travail demandé :
Exemples d’exécution :
-5-
Lycée Pilote Sfax Niveau : 4ème Année
Professeurs : Mme Rekik & Mme Sellami
Exercice n°5
Un nombre N est dit super-pairplus s’il vérifie les trois conditions suivantes :
Condition 1 : N est pair
Condition 2 : N est formé uniquement par des chiffres pairs
Condition 3 : tous les diviseurs de N autre que 1 sont des entiers pairs.
Exemples :
- N = 64 est un entier super-pairplus car 64 vérifie les trois conditions :
Condition 1 : 64 est pair
Condition 2 : 64 est formé uniquement par des chiffres pairs (6 et 4)
Condition 3 : les diviseurs de 64 autres que 1 (2, 4, 8, 16, 32 et 64) sont des entiers pairs.
- N = 28 n’est pas un entier super-pairplus car une des trois conditions (condition 3)
n’est pas vérifiée :
Condition 1 : 28 est pair
Condition 2 : 28 est formé uniquement par des chiffres pairs (2 et 8)
Condition 3 : les diviseurs de 28 autres que 1 (2, 4, 7, 14 et 28) ne sont pas tous des
entiers pairs. En effet, 7 est impair
Pour vérifier si un entier naturel N (N > 0) est un nombre super-pairplus ou non, on se propose
de concevoir une interface graphique contenant les éléments suivants :
Un label contenant le texte : "Nombre super-pairplus "
Un label demandant la saisie d’un nombre "Introduire un entier > 0 : "
Une zone de saisie permettant la saisie du nombre
Un bouton intitulé "Vérifier"
Un label pour afficher le message adéquat
Travail demandé :
1) Concevoir une interface graphique comme illustrée ci-dessus et l’enregistrer sous le nom
"InterfaceSuperPairplus.ui".
2) Ouvrir le fichier "annexe.py" et l’enregistrer sous le nom "NbreSuperPairplus.py"
3) Développer, dans le programme "NbrSuperPairplus" :
une fonction SuperPairplus (N) qui permet de vérifier si un entier N est super-pairplus
ou non.
un module "Play", qui s’exécute suite à un clic sur le bouton "Vérifier", permettant de
récupérer l’entier N saisi, puis d’exploiter la fonction "SuperPairplus" afin d’afficher le
message adéquat via le label dédié à l’affichage de l’interface "InterfaceSuperPairplus".
Exemples d’exécution :
-6-
Lycée Pilote Sfax Niveau : 4ème Année
Professeurs : Mme Rekik & Mme Sellami
Exercice n°6
Un nombre N est dit lisse lorsque son plus grand diviseur premier est inférieur ou égal à la racine
carrée du nombre N.
Pour vérifier si un entier naturel N (N > 1) est un nombre lisse ou non, on se propose de concevoir
une interface graphique contenant les éléments suivants :
Un label contenant le texte : "Nombre lisse"
Un label demandant la saisie d’un nombre : "Introduire un entier > 1 : "
Une zone de saisie permettant la saisie du nombre
Un bouton nommé "Vérifier"
Un label pour afficher le message adéquat
Travail demandé :
1. Concevoir une interface graphique comme illustrée ci-dessus et l’enregistrer sous le nom
"InterfaceLisse.ui".
2. Ouvrir le fichier "annexe.py" et l’enregistrer sous le nom "NbreLisse.py"
3. Développer, dans le programme " NbreLisse" :
une fonction Lisse (N) qui permet de vérifier si un entier N est lisse ou non.
un module "Play", qui s’exécute suite à un clic sur le bouton "Vérifier", permettant de
récupérer l’entier N saisi, puis d’exploiter la fonction "Lisse" afin d’afficher le message
adéquat via le label dédié à l’affichage de l’interface "InterfaceLisse".
N.B. :
Le candidat est appelé à développer un module qui permet de vérifier la primalité d’un
entier sans faire recours à des fonctions prédéfinies telles que isprime().
Exemples d’exécution :
-7-
Lycée Pilote Sfax Niveau : 4ème Année
Professeurs : Mme Rekik & Mme Sellami
Exercice n°7
Un nombre N est dit hautement abondant si la somme de ses diviseurs (lui-même inclus) est
strictement supérieure à la somme des diviseurs de n’importe quel nombre plus petit que lui (le nombre
inclus).
Exemples :
8 est hautement abondant car la somme de ses diviseurs, qui est égale à 15 (1+2+4+8=15),
est strictement supérieure à la somme des diviseurs de tout entier plus petit que lui.
5 n’est pas hautement abondant car la somme de ses diviseurs, qui est égale à 6 (1+5 =6),
est inférieure à 7 qui la somme des diviseurs de 4 (1+2+4=7).
Travail demandé :
1. Concevoir une interface graphique comme illustrée ci-dessus et l’enregistrer sous le nom
"InterfaceHautementAbondant.ui".
2. Ouvrir le fichier ‘annexe.py’ et l’enregistrer sous le nom ‘NbreHautementAbondant.py’
3. Développer, dans le programme " NbreHautementAbondant" :
une fonction HautementAbondant(N) qui permet de vérifier si un entier N est
hautement abondant ou non.
un module "Play", qui s’exécute suite à un clic sur le bouton "Vérifier", permettant de
récupérer l’entier N saisi, puis d’exploiter la fonction "HautementAbondant" afin
d’afficher le message adéquat via le label dédié à l’affichage de l’interface
"InterfaceHautementAbondant".
Exemples d’exécution :
-8-
Lycée Pilote Sfax Niveau : 4ème Année
Professeurs : Mme Rekik & Mme Sellami
Exercice n°8
Pour déterminer si un nombre N strictement positif est divisible par 7, il suffit de le décomposer en des
tranches de trois chiffres en commençant par la droite et d’insérer alternativement des + et des – devant
les tranches et commençant par l’opérateur +. On effectue l’opération ainsi écrite, si le résultat est
divisible par 7 alors N est divisible par 7.
Exemple :
Pour N = 3717315 et en appliquant la règle de divisibilité par 7 ci-dessus,
On obtient +3-717+315 = -391 qui est divisible par 7 donc N est divisible par 7.
Travail demandé :
1) Concevoir une interface graphique (voir les exemples d’exécution) et l’enregistrer sous le nom
"interface_divis7.ui".
2) Ouvrir le fichier "annexe.py" et l’enregistrer sous le nom "divis7.py"
3) Dans le programme "divis7", ajouter les instructions nécessaires qui permettent de résoudre ce
problème.
Exemples d’exécution :
-9-