Vous êtes sur la page 1sur 9

Lycée Pilote Sfax Niveau : 4ème Année

Professeurs : Mme Rekik & Mme Sellami

Pour chacun des exercices suivants :


- Créer un dossier de travail portant le nom "Exercices Série3"
- Copier dans ton dossier de travail, le fichier "Série3.rar" publié dans le Classroom, puis d’extraire
son contenu, en utilisant le mot de passe "serie3", dans ce même dossier de travail.
- D’élaborer une solution modulaire au problème posé.
- De vérifier, à la fin de chaque exercice, que tous les fichiers créés sont dans le dossier de
travail correspondant.

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) Copier le fichier "interface_codage.ui" dans votre dossier de travail.


2) Compléter l’interface graphique par les éléments présentés précédemment comme illustrée
ci-dessous.

-1-
Lycée Pilote Sfax Niveau : 4ème Année
Professeurs : Mme Rekik & Mme Sellami

3) Ouvrir le fichier "annexe.py" et l’enregistrer sous le nom "comp_decomp.py".


4) Développer dans le programme "comp_decomp" :
- une fonction "verif1" qui permet de vérifier si une chaine ch est binaire ou non
- une fonction "verif2" qui permet de vérifier si une chaine ch est numérique et de longueur
maximale 8.
- une fonction "compression" qui permet de compresser une chaine ch
- une fonction "decompression" qui permet de décompresser une chaine ch
- développer un module "tache1", qui s’exécute à la suite d’un clic sur le bouton
"Compression", permettant de récupérer la chaine ch saisie, d’exploiter la fonction "verif1" et
la fonction "compression" puis d’afficher le résultat via le label dédié à l’affichage de
l’interface "interface_codage".
- développer un module "tache2", qui s’exécute à la suite d’un clic sur le bouton
"Décompression", permettant de récupérer la chaine ch saisie, d’exploiter la fonction "verif2"
et la fonction "decompression" puis d’afficher le résultat via le label dédié à l’affichage de
l’interface "interface_codage".

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é :

1) Copier le fichier "interface_riche.ui" dans votre dossier de travail.


2) Compléter l’interface graphique par les éléments présentés précédemment comme illustrée
ci-dessous.

3) Ouvrir le fichier "annexe.py" et l’enregistrer sous le nom "riche.py".


4) Développer dans le programme "riche" :
- une fonction "verif_riche" qui permet de vérifier si un entier n est riche ou non
- un module "verifier_nombre", qui s’exécute à la suite d’un clic sur le bouton "Vérifier",
permettant de récupérer le nombre saisi, puis d’exploiter la fonction "verif_riche" afin
d’afficher le message adéquat via le label dédié à l’affichage de l’interface "interface_riche".
Exemples d’exécution :

-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

3) Ouvrir le fichier "annexe.py" et l’enregistrer sous le nom "unit_parfait.py"


4) Développer dans le programme "unit_parfait" :
- une fonction "verif_nbre" qui permet d’exploiter la fonction "test_primalite" pour vérifier si
un nombre est unitairement parfait ou non.
- un module "tester", qui s’exécute à la suite d’un clic sur le bouton "Vérifier", permettant de
récupérer le nombre saisi, puis d’exploiter la fonction "verif_nbre" afin d’afficher le message
adéquat via le label dédié à l’affichage de l’interface "interface_unitp".

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é :

1) Concevoir une interface graphique et l’enregistrer, sous le nom "interfaceTri_chaine.ui".


2) Ouvrir le fichier "annexe.py" et l’enregistrer sous le nom "Tri_chaine.py"
3) Développer dans le programme "Tri_chaine" :
- un module "tri" qui permet de trier la chaine et de calculer le nombre de permutations
effectuées
- un module "trier_ch", qui s’exécute à la suite d’un clic sur le bouton "Trier", permettant de
récupérer la chaine saisie, puis d’exploiter le module "tri" afin d’afficher les messages
adéquats via les labels dédiés à l’affichage de l’interface "interfaceTri_chaine".

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).

Pour vérifier si un entier naturel N (N ≥ 2) est un nombre hautement abondant ou non, on se


propose de concevoir une interface graphique contenant les éléments suivants :
 Un label contenant le texte : "Nombre hautement abondant"
 Un label demandant la saisie d’un nombre : "Introduire un entier ≥ 2 : "
 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
"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-

Vous aimerez peut-être aussi