Vous êtes sur la page 1sur 21

ACTIVITÉS

D’ LGORITHMIQUE
ET DE PROGRAMMATION
Chapitre 1
Les structures de
données

1
Exercice N°1 :
Quel est le rôle de ces trois programmes :
Programme 1 Programme 2 Programme 3
a = 20 a=20 a=20
b = 30 b=30 b=30
a,b = b,a a=a+b c=a
print ("A = ",a," b = ",b) b=a-b a=b
a=a-b b=c
print('a= ',a,' b= ',b) print('a= ',a,' b= ',b)
Après exécution A = et B= Après exécution A = et B= Après exécution A = et B=

Exercice N° 2 :
Exécuter les scripts python ci-dessous et donner les résultats trouvés
Instruction Résultat Conclusion Instruction Résultat Conclusion
a = 27 27 a = 15.45 15.45
b=5 5 b = 1.5 1.5
print (a,"+",b,"=",a + b) print (a,"+",b,"=",a + b)
print (a,"-",b,"=",a – b) print (a,"-",b,"=",a - b)
print (a,"*",b,"=",a * b) print (a,"*",b,"=",a * b)
print (a,"**",b,"=",a ** b) print (a,"**",b,"=",a ** b)
print (a,"/",b,"=",a / b) print (a,"/",b,"=",a / b)
print (a,"//",b,"=",a // b) print (a,"//",b,"=",a // b)
print (a,"%",b,"=",a % b) print (a,"%",b,"=",a % b

Exercice N°3 :
Réorganiser les lignes du code suivants pour que le programme affiche le montant à payer par un client qui a acheté
q cahiers, sachant que le prix d’un cahier est p=2500 et qu’il a une remise de 10% :
a) print("le montant a payé est" , m)
b) m= p*q
c) q=int(input(‘donner la quantité ‘))
d) r= (10*m)/100
e) p = 2500
f) m=m-r

Exercice N°4 :
Traduisez les instructions suivantes en Python, puis evaluez-les
a=7 b=5 c=2 d=9
w= -a * b div d mod c  ……………………………………
x= (a * b) div (d mod c)  ……………………………………
y = a-b * c + d  ……………………………………
z= (a-b) * c + d  ……………………………………

Exercice N°5 :
Exécutez et interpréter les instructions suivantes :
Instruction Résultat Rôle
print(abs (-7))
print(fabs(-9,75))
print(pow(3,4))
print(round (2.45))
print(sqrt (16))
print(trunc (2.45))
print(int(6.7))
print(float(5))
print(round(5.76543, 2))
print(math.floor(6.66))

2
print(math.ceil(6.66))
print(randint(2,5))
print(uniform(0,5))

Exercice N°6 :
Compléter le tableau suivant en faisant les affectations nécessaires aux variable x et y. On commence par :
x=False
y=False
print(not(x))
x y not(x) x or y x and y
False False
False True
True False
True True

Exercice N°7 :
Soit les variable c1="bonjour" et c2= "sarra"
Exécuter les instructions et compléter le tableau suivant :
Instruction Résultat Observation
print(c1[0])
print(c2[0 :4])
print(c1[ :5])
print(c1[1 : ])
print(len(c1))
print(c1,’ ‘,c2)
‘ma’ in c1
‘o’ not in c2
print(c1.find(‘o’))
print(c2.count(‘a’))
c3=c1.upper()
print(c3)
print(c3.lower())
print (c1*3)
print (c1.capitalize() )
c4=c1+’ ‘+c2
print (c4)
print(c4.split() )
c5= c2.replace(‘a’, ‘e’)
print(c5)
c6= ‘ ’ +c4+ ‘ ’
print(c6)
print(c6.strip() )

Exercice N°8 :
Soit np= "Mehdi Tounsi"
Remplir le tableau ci-dessous par le résultat chaque instruction :
Instructions Résultats Instructions Résultats
print(np[0]) print(np[1:4])
print(np[1]) print(np[1:])
print(np[2]) print(np[:3])
print(np[-1]) print(np[:])
print(np[-2]) print(np[::-1])
print(np[-3])

3
Conclusion :
ch[nb]
ch[-1]
ch[-a]
ch[ a :b]
ch[ :a]
ch[a :]
ch[:]
ch[::-1]
a= ˮ0123456789ˮ
Exécuter a.isdigit()
Exécuter ″15.754″.isdigit()
Exécuter ″-1654″.isdigit()
Exécuter a [0] = ˮbˮ que remarque vous et comment corriger pour obtenir la chaine ˮb123456789ˮ

Exercice N°9 :
Soit ch une chaine non vide
Remplir le tableau ci-dessous
Instruction Résultat
ch="aZEaty"
ch2=ch*5
print(ch2)
print(ch.isupper())
print(ch.lower())
print(ch2.find('g'))
print(ch2.count('a'))
ch3=ch2.replace('a','&&&&',4)
print(ch3)

Exercice N°10 :
1/Saisir le programme suivant : D’après ces programmes quel est le rôle des codes suivants :
t=[] Instruction Rôle
#ceci est un commentaire :)
t=[]
t.append(5)
#
t.append(7)
t.append(x)
t.append(5)
t.count(x)
print(t)
t.index(7)
2/Ajouter à ce programme les instructions t.pop())
suivantes : t.pop(i))
print(t.count(5)) t.sort()
print(t.index(7)) t.reverse()
print(t.pop()) t.insert(i,x)
print(t.pop(1)) t.clear()
len(t)
3/ Ajouter à ce programme les instructions
type(t)
suivantes :
t=[5, 7, 5]
t.sort()
print(t)
t.reverse()
print(t)
t.insert(1,23)
print(t)
t.clear()
print(t)

4
print(len(t))
type(t)

Exercice N°11 :
Ecrire un programme qui affiche une liste de taille n contenant des nombres entre 1 et 10 tir ́es au hasard.

5
Chapitre 2

Les actions
élémentaires
simples

6
Exercice n°1 :
Pour n € N donné, calculer le nombre de chiffres qui le composent.

Exercice n°2 :
Ecrire un programme qui permet de former puis d’afficher un entier R de quatre chiffres à partir de deux entiers à
deux chiffres M et N strictement positifs et ceci en intercalant le nombre N entre les deux chiffres de M.
Exemple : Si M = 56 et N = 21 alors l’entier R sera égal à 5216.

Exercice n°3 :
Ecrire un programme qui affiche la valeur de la surface colorée en bleu.

La seule donnée est le rayon r.

Exercice n°4 :
Ecrire un programme permettant de saisir un nombre N formé de trois chiffres (c'est-à-dire le nombre est compris
entre 100 et 999) puis on vous demander de calculer et afficher la racine carrée de la partie entière de la division du
nombre constitué par les chiffres des centaines et des unités de N, par le chiffre des dizaines (Non Nul) de n.
Exemple
N=569 59 /6 = 9.833 Racine(9) = 3.000
N=327 37 /2 = 18.500 Racine(18) = 4.242

Exercice N°5
Ecrire un programme python qui saisit votre date de naissance sous la forme "jj/mm/aaaa" dans une variable dn puis
calcule et affiche la somme de jj, mm et aaaa
Exemple : si dn="12/06/2018" le programme affiche 12+06+2018 =2036

Exercice N°6
Ecrire un programme python qui permet d’inverser un entier n donné de trois chiffres.
Exemple : si n=528 le programme affichera : "528 inversé devient 825"

Exercice N°7
Ecrire un programme python qui permet de saisir une chaîne de caractères ch formée d’un nom et d’un prénom et
affiche les deux lettres initiales en majuscules et chaque lettre suivie par un point.
Remarque :
Le nom et le prénom doivent être non composés. Par conséquent, la chaîne ch ne comportera qu’un seul
espace qui ne figurera pas à son début.
Exemple : si ch="Tounsi Mohamed" le programme affichera : "T.M."

Exercice N°8
Ecrire ensuite exécuter les instructions Python suivantes :
n="jazi" p="sinda"
print(‘Votre prénom est :’,p, ‘\n’, ‘votre nom est :’, ‘n’)
……………………………………………………………………………………………………………………………………………………………………………………..
print(‘Votre prénom est :’,p, ‘\t’, ‘votre nom est :’, ‘n’)
……………………………………………………………………………………………………………………………………………………………………………………..
print(‘l\’élève s\’appelle :’, p, ‘\t’, ‘n’)
……………………………………………………………………………………………………………………………………………………………………………………..
print("Mon prénom est :{0} et mon nom est : {1}".format(p,n))
……………………………………………………………………………………………………………………………………………………………………………………..

7
Exercice N°9
Un nombre est dit “palindrome” s’il se lit de la même façon de gauche à droite et de droite à gauche. Par exemple
12321 est palindrome.
Pour n € N donné, afficher True ou False selon que le nombre est palindrome ou pas. (on vous demande deux solutions
différentes)

8
Chapitre 3
Les structures de
contrôle
conditionnelles

9
Exercice N°1 :
On désire afficher avec la moyenne (moy) d’un élève, l’appréciation (app) :
Moyenne (Moy) Appréciation (app)
20 >= moy >18 Excellent
18 >= moy >16 Très Bien
16 >= moy > 14 Bien
14 >= moy >12 Assez Bien
12 >= moy >=10 Passable
moy < 10 Faible

Il s’agit de calculer la moyenne des trois notes n1, n2 et n3 de coefficients respectifs 2, 4 et 1.


Questions :
1) Analyser le problème nommé Bulletin
2) Ecrire l’algorithme correspondant
3) Traduire cet algorithme en Python.

Exercice N°2 :
Analyser le problème qui permet de saisir un entier et affiche si c’est un carré parfait* (sa racine est une valeur entière.
Ex : 16, 64)

Exercice N°3 :
Analyser le problème qui permet de saisir 3 réels a, b et c (a≠0), puis résout l’équation du second degré : ax²+bx+c=0.
(On demande deux solutions différentes)

Exercice N°4 :
Analyser le problème qui permet de saisir le numéro d’un mois et affiche son nom.

Exercice N°5 :
Analyser le problème intitulé CLASSEMENT qui permet de saisir 3 entiers, les permute de façon à les classer par ordre
croissant puis affiche le résultat.

Exercice N°6 :
Soit (ABC) un triangle de côtés a, b et c. D'après le théorème de Pythagore, le triangle (ABC) est rectangle en
B, si et seulement si l'égalité a2 + b2 = c2 est vérifiée.

Connaissant les longueurs des trois côtés, rédiger un programme permettant de déterminer si (ABC) est rectangle et si
oui, en quel point.

Exercice N°7 :
Faites l’analyse (Pré analyse, analyse, tableau de déclaration d’objets et algorithme) du problème qui permet de saisir
deux réels a et b et une opérande op et donne le résultat correspondant. (On demande deux solutions différentes)
Exemple :
a=5; b=2; op='/' alors le résultat est 2,5.

10
Exercice N°8 :
Un entier est dit cube (ou Armstrong) si la somme des cubes de ses chiffres est égale à lui-même.
Exemple : 153=13+53+33 153 est cube.
Analyser ce problème qui permet de saisir un entier de trois chiffres et affiche si cet entier est cube ou non.

Exercice N°9 :
Analyser le problème qui permet de lire un nombre d'articles (entier), le prix unitaire de l'article (réel), calcule le prix
total, tenant compte d'un taux de tva de 19,5% et d'une réduction de 20% si le montant hors taxe est supérieur à 10000
dinars, une réduction de 5% si le montant hors taxe est compris entre 5000 et 10000 dinars; si le montant est compris
entre 0 et 5000 dinars, il n'y a pas de réduction.

L'algorithme écrira le prix unitaire, le montant hors taxe, le montant toute taxe comprise réduction déduite !

Exercice N°10 :
Analyser le problème qui permet de saisir une heure sous la forme HH :MM :SS, puis indiquera s'il s'agit d'une heure
valide ou non.

Exercice N°11 :
Analyser le problème qui permet de demander l’âge d’un enfant à l’utilisateur. Ensuite, il l’informe de sa catégorie :
• « Poussin » de 6 à 7 ans
• « Pupille » de 8 à 9 ans
• « Minime » de 10 à 11 ans
• « Cadet » après 12 ans

Exercice N°12 :
Dans une entreprise, le calcul des jours de congés payés s’effectue de la manière suivante : si une personne est entrée
dans l’entreprise depuis moins d’un an, elle a droit à deux jours de congés par mois de présence, sinon à 28 jours au
moins. si c’est un cadre et s’il est âgé d’au moins 35 ans et si son ancienneté est supérieure à 3 ans, il lui est accordé 2
jours supplémentaires. S’il âgé d’au moins 45 ans et si son ancienneté est supérieure à 5 ans, il lui est accordé 4 jours
supplémentaires, en plus des 2 accordés pour plus de 35 ans.
Analyser le problème qui permet de calculer le nombre de jours de congés à partir de l’âge, l’ancienneté et sa nature
(cadre ou non).

11
Chapitre 4
La saisie
contrôlée

12
1. Ecrire une structure de contrôle permettant de saisir un entier positif ou nul.
2. Ecrire une structure de contrôle permettant de saisir une lettre alphabétique.
3. Ecrire une structure de contrôle permettant de saisir un entier compris entre 1 et 10.
4. Ecrire une structure de contrôle permettant de saisir un réel compris entre 1 et 10.
5. Ecrire une structure de contrôle permettant de saisir un chiffre.
6. Ecrire une structure de contrôle permettant de saisir une voyelle.
7. Ecrire une structure de contrôle permettant de saisir un symbole.
8. Ecrire une structure de contrôle permettant de saisir l’heure en saisissant le nombre d’heure, le nombre de
minutes et le nombre de secondes.

13
Chapitre 5

Les structures

de contrôle
itératives

14
- On demande de donner l'algorithme et la traduction en Python pour chaque exercice.
- On utilisera certaines fonctions et procédures standard pour la résolution des problèmes proposés.

Exercice N°1 :
Ecrire un programme intitulé SOMME permettant d’additionner les N éléments d’un tableau T (NMAX=100).

Exercice N°2 :
Ecrire un programme qui saisit deux entiers positifs a et b (a<b) et affiche tous les nombres premiers de l'intervalle [a,
b].

Exercice N°3 :
Ecrire un programme qui saisit un entier n et le réécrit sous la forme d'un produit de nombres premiers,
Exemple: Si n = 60 -Le programme affichera "60 = 2 * 2 * 3 * 5",

Exercice N°4 :
Le couple (4,2178) vérifie la propriété suivante : 4*2178 = 8712 (8712 et 2178 sont inversés en écriture), Ecrire un
programme qui affiche, tous les couples (n,m) vérifiant cette propriété tels que n dans [2,10] et m dans [1,3276].

Exercice N°5 :
Ecrire un programme qui saisit une chaîne de caractères c représentant un code binaire de 8bits. Le programme
déterminera le code ASCII et le caractère qui correspondent à ce code.
Exemple: si c = "01011001" →le programme affichera: "89 : Y".
→ Indication. : Pour cet exemple, on détermine le code ASCII comme suit:
Code binaire 0 1 0 1 1 0 0 1
Code ASCII 0* 27 + 1 * 26 + 0 * 25 + 1 *24 + 1 * 23 +0 * 22 + 0 * 21 + 1 * 20

Exercice N°6 :
Réaliser un programme qui saisit une chaîne de caractères m, efface les caractères répétés et affiche la nouvelle
chaîne.
Exemple :
Si m= "BbrbraRvrbAoo" →le programme affichera: "Bravo".

Exercice N°7 :
Un mot est dit palindrome lorsqu'il est lu de la même façon de droite à gauche ou inversement. Exemple: Aziza.
Réaliser un programme qui saisit un mot et affiche s'il est palindrome ou non en évitant la distinction entre les
majuscules et minuscules.
On demande pour cela deux solutions différentes : une solution sans structures itératives et une autre avec structures
itératives.

Exercice N°8 :
Ecrire un programme qui saisit deux chaînes de caractères m1 et m2 et affiche le nombre de répétitions et les positions
de m2 dans m1.
Exemple: si m1 = "FOUroulou" et m2 = "ou"
→le programme affichera: "Répétitions: 2 ; Positions: 5- 8 -".

Exercice N°9 :
Ecrire un programme qui saisit un tableau T de n entiers compris entre 1 et 26 qui représentent des ordres
alphabétiques. Le programme affichera le mot composé des lettres qui correspondent à ces ordres en majuscules.
Exemple: pour n = 4 et :
T: 2 9 5 14
B I E N
→Le programme affichera: "Le mot associé est: BIEN".

15
Exercice N°10 :
Ecrire un programme qui saisit un tableau T de n caractères (n> 1) et affiche le caractère de plus grand code ASCII.

Exercice N°11 :
Ecrire un programme qui saisit un tableau T de n caractères et affiche si le tableau est symétrique ou non.

Exercice N°12 :
Ecrire un programme qui saisit un entier n et affiche tous les entiers de 1 à n qui contiennent le chiffre 6 et le nombre
des chiffres 6 contenus dans tous ces entiers.
Exemple :
Si n = 66 → Le programme affichera
"6 16 26 36 46 56 60 61 62 63 64 65 66 Le nombre de chiffres 6 est: 14"

Exercice N°13 :
Ecrire un programme qui saisit un tableau T de n chaîne de caractères et affiche la chaîne commune la plus longue.
Exemple : Si n = 3
T: réPéTition InTuiTion diSpArition
→ Le programme affichera: "La chaîne commune la plus longue est :ion"

16
Chapitre 6
Les sous
programmes

17
Exercice N°1 :
Soit l'algorithme suivant :
0) Début Nombres
1) Lire (n)
2) Si FN Verif(n) Alors
Ecrire (n, " est valable")
Finsi
3) Fin Nombres

L’algorithme ci-dessus permet de saisir un entier positif n formé de quatre chiffres et de l’afficher avec la mention "
est valable", s’il vérifie la condition suivante :
Le chiffre des milliers, qui ne doit pas être nul, est suivi par ses multiples.
Exemple :
n = 2888 8 est un multiple de 2
n = 3696 6 et 9 sont des multiples de 3
n = 1 541 5,4 el 1 sont des multiples de 1
Questions :
1. Transformer la séquence 1) en une procédure Saisie en ajoutant les contrôles nécessaires.
2. Ecrire la fonction Verif permettant de vérifier si le premier chiffre du nombre est suivi effectivement par ses
multiples ou non.
3. Traduire l'algorithme Nombres en Python.

Exercice N°2 : Vaches Taureaux


On propose de programmer le jeu VACHES TAUREAUX.
Pour qui ne connaît pas le jeu, voici les règlements :
Un joueur choisit un numéro arbitraire de 4 chiffres et l’adversaire essaye de le trouver. Il propose chaque fois un
numéro de 4 chiffres et le premier joueur répond par vache pour chaque numéro existant dans la mauvaise case, et
par taureau pour chaque numéro en place.
Ecrire un programme qui choisit un numéro de 4 chiffres au hasard. Puis saisit, un à un, des entiers de 4 chiffres et
pour chaque entier il précise, combien de vaches et combien de taureaux. Une fois le numéro est trouvé, le programme
s’arrête et affiche le nombre des essais.
Exemple d’exécution : (supposant que le programme a choisi 5098)
Essai 1 : 2508
1 Taureau(x)
2 Vache(s)
Essai 2 :
...
Bravo ! Vous l’avez trouvé en 9 coups !

Exercice N°3 : Cryptage !


On se propose de programmer un petit codeur/décodeur de textes. Son travail consiste à :
- Inverser chaque mot de longueur impaire.
- Inverser les lettres deux à deux de chaque mot de longueur paire.

Ecrire un programme en Python qui saisit une chaîne S et la code/décode par la méthode précédente puis l’affiche à
l’écran.
Exemple d’exécution :
Introduire le texte : Je veux crypter ce texte
eJ evxu retpyrc ec etxet

Exercice N°4 : Produit Numérique Rationnel


Le produit numérique d’un entier positif N est défini par le produit de ses chiffres non nuls. Exemple : le produit
numérique de 80540 est 8x5x4=160, le produit numérique de 152 est 1x5x2=10.
Le produit numérique rationnel est le résultat des produits numériques successifs jusqu’à obtenir un nombre d’un seul
chiffre.

18
Exemple : 8 est le produit numérique rationnel de 99 (99818).

Ecrire un programme qui saisit un entier strictement positif n>1000 est affiche ses produits numériques jusqu'à obtenir
son produit numérique rationnel.

Exemple d’exécution :
Introduire un entier positif : 123456789
123456789
362880
2304
24
8
Le produit numérique rationnel est 8

Exercice N°5 :
Deux entiers N1 et N2 sont dits frères si chaque chiffre de N1 apparaît au moins une fois dans N2 et inversement.
Ecrire un programme Python qui saisit deux entiers N1 et N2, vérifie et affiche s'ils sont frères ou non.

Exemples :
- Si N1 = 1164 et N2 = 614 alors le programme affichera : N1 et N2 sont frères
- Si N1 = 905 et N2 = 9059 alors le programme affichera : N1 et N2 sont frères
- Si N1 = 405 et N2 = 554 alors le programme affichera : N1 et N2 ne sont pas frères

Exercice N°6 :
L'algorithme ci-dessous est celui d'un programme permettant de saisir un entier n (1≤n≤100) et de déterminer
combien de fois il est divisible par 2.

0)Début Divisibles
1)Ecrire ("Donner un entier dans [1,100]")
Lire (n)
2)Ecrire (n," est divisible ", Fn Nb_Divis2(n), " par 2")
3)Fin Divisibles

Exemples :
11 est divisible 0 fois par 2
4 est divisible 2 fois par 2
8 est divisible 3 fois par 2

Questions:
1. Transformer la séquence 1) en une procédure Saisie et ajouter les contrôles nécessaires sur la saisie de n.
2. Ecrire la fonction Nb_Divis2, permettant de retourner le nombre de fois où n est divisible par 2.
3. Traduire cet algorithme en Python.

19

Vous aimerez peut-être aussi