Vous êtes sur la page 1sur 11

Programmation TI12, TI13

Python

ISET DE KEBILI
Atelier N°2
Les structures itératives
 Les boucles :

Tant que Répéter ..Jusqu’a Pour


while cond de non arrêt : while True : for c in range(debut,fin+1 ,pas):
instruction 1 instruction 1 Instruction 1
... ... ...
instruction n instruction n Instruction n
if (cond d’arret) :
break

 Les tableaux à une seule dimension :

Rochdy BELHASSEN
Déclaration Explication
from numpy import * Pour déclarer un tableau de 20 entiers avec
T = array ([int ( )] * 20) importation de la bibliothèque Numpy.
from numpy import * Pour déclarer un tableau de 100 réels avec
T = array ([float ()] * 100) importation de la bibliothèque Numpy.
from numpy import * Pour déclarer un tableau de 50 chaînes de
T = array ([str ( )] * 50 , dtype = object) caractères avec importation de la
ou bien T = array ([str] * 50) bibliothèque Numpy.
from numpy import * Pour déclarer un tableau de 10 booléens
T = array ([bool ( )] * 10) avec importation de la bibliothèque Numpy.

 Les tableaux à deux dimensions

Déclaration Explication
from numpy import * Pour déclarer une matrice M de 6 lignes
M = array ( [ [ int ( )] * 5 ] * 6 ) et de 5 colonnes d’entiers.

Atelier N°2-- Les structures itératives 1


Programmation TI12, TI13
Python

ISET DE KEBILI
Exercice 1 :
1. Voici deux programmes permettant d’obtenir la somme de chiffres d’affaires :
Version1 Version 2
S=0 S=0
CA1 = float(input("Entrez la valeur de CA1 : ")) for i in range(1, 21):
S = S + CA1 CA = float(input(f"Donnez le chiffre d'affaires
CA2 = float(input("Entrez la valeur de CA2 : ")) numéro {i}: "))
S = S + CA2 S += CA
CA3 = float(input("Entrez la valeur de CA3 : "))
S = S + CA3 print(f"La somme des CA est de : {S:.3f}")
CA4 = float(input("Entrez la valeur de CA4 : "))
S = S + CA4
……
CA20 = float(input("Entrez la valeur de CA20 : "))
S = S + CA20

print("La somme des CA est de :", S)


Quels sont les avantages de la version 2 :
a) Le programme est plus court.
b) Elle donne un résultat exact.
c) le traitement est plus rapide
d) Le programme peut être adapté facilement.

Rochdy BELHASSEN
2. Voici trois programmes permettant d’obtenir la somme de chiffres d’affaires :
Version1 Version 2 Version 3
S=0 S=0 S=0
CA = float(input("Donnez le for i in range(1, 21): CA = float(input("Donnez le
chiffre d'affaires : ")) CA = float(input(f"Donnez le chiffre d'affaires : "))
while CA != 0: chiffre d'affaires numéro {i}: ")) while CA != 0:
CA = float(input("Donnez le S += CA S += CA
chiffre d'affaires : ")) CA = float(input("Donnez
S += CA print("La somme des CA est ", le chiffre d'affaires : "))
S)
print("La somme des CA est
print("La somme des CA est ", de :", S)
S)

2.1- Dans la version 3, comment peut-on arrêter de saisir des CA ?


a) Quand la somme est calculée.
b) En saisissant un CA nul.
c) En indiquant le nombre de CA à saisir.

2.2- Quel est l’avantage de la version 1 par rapport à la version 2 :


a) le résultat de la somme est exact.
b) le traitement est plus rapide.
c) l’initialisation des variables est juste.
d) le nombre de CA à saisir peut être inconnu.

2.3- Selon vous quelle est la meilleure version :


a) Version 1
b) Version 2
c) Version 3

Atelier N°2-- Les structures itératives 2


Programmation TI12, TI13
Python

ISET DE KEBILI
3. Soit le programme suivant :
S=0
REPONSE = input("Voulez-vous saisir une note O/N : ")

while REPONSE == 'O':


NOTE = float(input("Donnez une note : "))
S += NOTE
REPONSE = input("Voulez-vous saisir une autre note O/N
: ")

print("S =",S)

3.1- Que fait ce programme ?


a) Détermine la moyenne des notes.
b) Détermine la somme des notes.
c) Fournit la réponse Oui ou Non.
d) Détermine la moyenne des étudiants.

3.2- Si un utilisateur saisit les notes : 3 puis 4 puis 12, quel sera le contenu de la variables S
à la fin du traitement ?
a) 12
b) 7

Rochdy BELHASSEN
c) 19
d) 0
3.3- Est ce que l’utilisateur peut ne pas saisir aucune note ?
a) oui
b) non

3.4- Comment l’utilisateur peut-il arrêter la saisie des notes ?


a) en tapant « N » , b) en tapant « ONONON »
c) en tapant « H » , d) en tapant « O ».

4. Voici trois programmes différents ayant comme objectif de calculer la somme de ventes
saisies par l’utilisateur :
Version1 Version 2 Version 3
TOT_HT = 0 VENTE = 0 VENTE = float(input("Saisir la
VENTE = float(input("Saisir la TOT_HT = 0 vente : "))
vente : ")) TOT_HT = 0
while VENTE != 0:
while VENTE != 0: VENTE = float(input("Saisir while VENTE != 0:
TOT_HT += VENTE la vente : ")) TOT_HT += VENTE
VENTE = float(input("Saisir TOT_HT += VENTE
la vente : ")) print("La somme de ventes est
print("La somme de ventes est : ", TOT_HT)
print("La somme de ventes : ", TOT_HT)
est : ", TOT_HT)

4.1- Complétez le tableau suivant :


Version1 Version 2 Version 3
La boucle fonctionne correctement.
On ne peut pas sortir de la boucle.
On ne peut pas entrer dans la boucle.

Atelier N°2-- Les structures itératives 3


Programmation TI12, TI13
Python

ISET DE KEBILI
4.2- Si l’utilisateur saisit les chiffres 10, 20 et 0, que contiendra la variable TOT_HT à la fin
de l’exécution de chacun des programmes:
Version1 Version 2 Version 3
0
20
30
N’affiche pas le total

4.3- Si l’utilisateur saisit les chiffres 10, 20, 20 et 0, que contiendra la variable TOT_HT à la
fin de l’exécution de chacun des programmes:
Version1 Version 2 Version 3
0
40
50
N’affiche pas le total

Exercice 2 :
A/ Soit le programme suivant:
D = int(input("Donner un entier positif D : "))

Rochdy BELHASSEN
while D < 0:
D = int(input("Veuillez donner un entier positif D : "))

C=1
if D == 0:
R=0
else:
R=1

while C < D:
R=R+2*C+1
C=C+1

print(R)
1) Donner les valeurs de R et de C pour chacun des cas suivants :

D=0 D=5 D=7


R R R
C C C

2) Déduire le rôle de ce programme. (Quel rapport entre D et R ?)


3) Après avoir répondre à la question N°2, peut-on réécrire ce programme autrement?
Comment ?

Atelier N°2-- Les structures itératives 4


Programmation TI12, TI13
Python

ISET DE KEBILI
B/
Soit le programme suivant :
N = int(input("Donner un entier positif N : "))

while N < 0:
N = int(input("Veuillez donner un entier positif N : "))

M=N
NB = 0

while M > 0:
M = M // 10
NB = NB + 1

print(NB)
1) Donner les valeurs de M et de NB pour chacun des cas suivants :

N=12 N=235 N=25891


M M M
NB NB NB

2) Déduire le rôle de ce programme? (Le rapport entre N et NB)

Rochdy BELHASSEN
3) Après avoir répondre à la question N°2, peut-on réécrire cet algorithme autrement?
Comment ?

C/
Soit le programme suivant :
N = int(input("Donner un entier N >= 3 : "))

while N < 3:
N = int(input("Veuillez donner un entier N >= 3 : "))

for i in range(1, N + 1):


for j in range(1, i + 1):
print("*", end="")
print()

1) Donner les résultats affichés par ce programme pour les valeurs de N suivantes :
 N=3
 N=5
 N=7

2) Déduire le rôle de ce programme?

Atelier N°2-- Les structures itératives 5


Programmation TI12, TI13
Python

ISET DE KEBILI
D/
Soit le programme suivant :
X = float(input("Donner un réel X > 0 : "))

while int(X) == X or X <= 0:


X = float(input("Veuillez donner un réel X > 0 : "))

C=0

while C < X - 1:
C += 1

print(C)

1) Donner les valeurs de la variable C pour chacun des cas suivants :

X=0.5 X=3.75 X=5.34


C C C
2) Déduire le rôle de ce programme. (Quel rapport entre X et C ?)
3) Quelle est la fonction prédéfinie en C qui peut jouer le même rôle que ce programme ?

Rochdy BELHASSEN
proposer l’appel correspondant.
Exercice 3 :
1) Ecrire un programme en python qui permet de lire un entier N (avec N>5) puis calculer les
sommes suivantes :
S1=1+2+3+.....+N
S2=1+1/2+1/3+1/4+…….+1/N
S3=1-2+3-4+5-6+………+N

2) Ecrire un programme en python qui permet de calculer la somme des entiers positifs parmi
N entiers saisis au clavier.
3) Ecrire un programme en python qui permet de lire un entier N (avec N>4) puis calculer sa
factorielle sachant que :
n! = 1 * 2 * 3 * … * n
Exemples : 0 !=1, 1 !=1, 5 !=1*2*3*4*5
4) Ecrire un programme en python qui permet de calculer le produit de deux entiers A et B de
signes quelconques sans utiliser l’opérateur de multiplication (Discuter tous les cas).
5) Ecrire un programme en python qui permet de lire deux entiers A et B, puis calculer et
afficher le résultat de l’opération A exposant B. (Discuter tous les cas).
AB = A*A*……..*A (B fois)

Atelier N°2-- Les structures itératives 6


Programmation TI12, TI13
Python

ISET DE KEBILI
Exercice 4 :
Soit le programme suivant :
S=0
I=0

while I < 100:


S=S+2*I
I=S+4
R=2*S

if R < I:
S=I
else:
print("TI12 et TI13")

print("S =", S)

1) Exécuter programme ci-dessus puis compléter le tableau suivant :


S 0
I 0
R

Rochdy BELHASSEN
2) Combien de fois passe-t-on dans la boucle ? (Le nombre de répétitions)
3) Après avoir répondre à la question N°1, donner combien de fois l’ordinateur affiche-t-il
« TI11 et TI13» ? Que vaut la variable S à la fin.
4) Après avoir répondre à la question 2, remplacer l’itérative while par l’itérative for dans le
programme ci-dessus.

Exercice 5 :
Une manière originale de calculer le carré d’un nombre entier N est de faire la somme des N
premiers nombres impairs.
Exemples :
 1  3  5  7  9  25
2
5

 1  3  5  7  16
2
4

Ecrire un programme en python qui permet de saisir un entier strictement positif N et d’afficher
le carré de ce nombre en utilisant la méthode proposée ci-dessus.

Exercice 6 :
Un entier p strictement positif est dit "entier à moyenne harmonique entière" si la moyenne
harmonique m de ses diviseurs est un entier.
Si on note d1, d2, d3, …, dn les n diviseurs positifs de l’entier naturel p, alors le nombre m
est calculé de la façon suivante :
𝑛
𝑚=
1 1 1 1
+ + + ⋯+
𝑑1 𝑑2 𝑑3 𝑑𝑛

Atelier N°2-- Les structures itératives 7


Programmation TI12, TI13
Python

ISET DE KEBILI
Exemple :
L’entier p=6 a 4 diviseurs positifs qui sont : 1,2, 3 et 6.
4
𝑚= =2
1 1 1 1
1+2+3+6
m=2 est un entier, donc 6 est un "entier à moyenne harmonique entière".
Travail demandé :
Ecrire un programme en python, qui permet de lire un entier p>2 puis vérifier si p est à
moyenne harmonique ou non.

Exercice 7 :
Une méthode pour vérifier si un nombre N est divisible par 11, consiste à faire le travail
suivant :
Soustraire de N amputé de son chiffre des unités le chiffre supprimé et recommencer
éventuellement avec le nombre ainsi obtenu jusqu’au moment où l’on peut conclure à la
divisibilité.
Exemples :
1. N=12345674
1234567 – 4 =1234563 4
123456 – 3 =123453 3
12345 – 3 =12342 3

Rochdy BELHASSEN
1234 – 2 =1232 2
123 – 2 =121 2
12 – 1 =11 1
1-1 =0  1 N est divisible par 11
12345674
Donc 12345674 est divisible par 11,  1122334 .
11

2. N=8476297
847629 – 7 =847622 7
84762 – 2 =84760 2
8476 – 0 =8476 0
847 – 6 =841 6
84 –1 =83 1
8 – 3 =5 5
0 – 5 =-5 <0  N n’est pas divisible par 11

NB :
Le traitement s’arrête lorsque la soustraction de N amputé de son chiffre des unités le chiffre
supprimé donne une valeur inférieure ou égale à 0.

Écrire un programme en python qui permet de lire un entier N>1000, puis vérifier si N est
divisible par 11 ou non, en utilisant la méthode expliquée précédemment.

Exercice 8 :
Écrire un programme en python qui permet de saisir deux entiers naturels strictement positifs
m et n (m≤100 et n≤100) puis calculer et afficher leur produit p selon le principe suivant :

Atelier N°2-- Les structures itératives 8


Programmation TI12, TI13
Python

ISET DE KEBILI
1. Initialiser la variable p à 0. m n p
2. Si (m<n) alors permuter les contenus des deux variables - - 0
m et n. 23 14 0+196=196
3. Ajouter n2 à p. 14 9 196+81=277
4. Affecter à m la valeur (m-n). 9 5 277+25
5. Répéter les actions 2, 3 et 4 jusqu'à ce que m ou n soit =302
nul.
6. Afficher la valeur de p qui est le produit de m par n. 5 4 302+16=318
4 1 318+1=319
3 1 319+1=320
2 1 320+1=321
1 1 321+1=322
1 0 322
Exercice 9 :
Tout nombre positif de deux chiffres n, tel que (chiffre des dizaines ≠ chiffre des unités),
possède une liste appelée ‘’liste vers 9’’. Le principe est le suivant : on calcule la différence
entre n et son symétrique ; le résultat trouvé subit le même traitement ; on répète ce processus
jusqu'à obtenir une différence 9. L’ensemble constitué par le nombre initial et les résultats des
différences est appelé ‘’liste vers 9’’.
Exemple :

Rochdy BELHASSEN
1. Soit n=18 |18-81| =63  |63-36|=27 |27-72|=45  |45-54|=9 fin du traitement
La liste vers 9 est la suivante : 18 63 27 45 9
2. Soit n=74 |74 -47|=27 |27-72|=45 |45-54|=9 fin du traitement
La liste vers 9 est la suivante : 74 27 45 9
N.B :
Le calcul et l’affichage de chaque résultat sont deux traitements successifs.
Travail demandé :
Ecrire un programme en python permettant d’introduire un nombre n positif composé de deux
chiffres obligatoirement différents, de générer sa ‘’liste vers 9’’ et enfin de l’afficher.
Exercice 10 :
La suite de SYRACUSE :
A un entier n strictement positif on associe n/2 si n est pair et 3n+1 si n est impair. En
réappliquant cette transformation à l'entier obtenu, on définit un algorithme dit de SYRACUSE.
Il semble que pour tout entier strictement positif de départ on finisse toujours par arriver à 1.
Travail demandé :
Ecrire un programme en python qui, pour une valeur de départ proposée par l'utilisateur,
affiche la liste des entiers obtenus jusqu'à 1, ainsi que le nombre de fois qu'il est nécessaire
d'appliquer la transformation pour y arriver.
Exemple : valeur de départ 12
6 3 10 5 16 8 4 2 1
On doit appliquer 9 fois la transformation.

Atelier N°2-- Les structures itératives 9


Programmation TI12, TI13
Python

ISET DE KEBILI
Exercice 11 :
Ecrire un programme en python qui permet de calculer le schtroumpf de deux tableaux T1
de taille N1 (avec N1>1) et T2 de taille N2 (avec N2>1) remplis par l’utilisateur.
Pour calculer le schtroumpf, il faut multiplier chaque élément du tableau T1 par chaque
élément du tableau T2, et additionner le tout.
Par exemple si l'on a :
T1 2 5 8 4
0 1 2 3
T2 6 7
0 1
Le Schtroumpf sera : 6*2 + 6*5 + 6*8 + 6*4 + 7*2 + 7*5 + 7*8 + 7*4 = 247
Exercice 12 :
Soient T1 et T2 deux tableaux d’entiers de taille N (N est un entier pair et 4≤N≤30).
Ecrire un programme en python permettant le transfert des éléments de T1 dans T2 selon le
principe suivant :

Rochdy BELHASSEN
Les éléments de rang pair de T1 seront rangés dans T2 en ordre inverse (de la droite vers la
gauche) et les éléments de rang impair de T1 seront rangés dans T2 (de la gauche vers la
droite).
Exemple :
N=9
T1 12 13 41 5 19 13 4 8 15
0 1 2 3 4 5 6 7 8

T2 13 5 13 8 15 4 19 41 12
0 1 2 3 4 5 6 7 8

Exercice 13 :
Ecrire un programme en python qui permet de remplir un tableau T par N entiers (avec N dans
5..15) puis insérer un élément donné X dans une position donnée p (avec 0<=p<=N-1). Enfin
afficher le tableau.
Exemple : N=8
T 2 5 8 4 18 25 18 13
0 1 2 3 4 5 6 7
X=33, p=4
T 2 5 8 4 33 18 25 18 13
0 1 2 3 4 5 6 7 8

Atelier N°2-- Les structures itératives 10


Programmation TI12, TI13
Python

ISET DE KEBILI
Exercice 14 :
A/
Soient M1 et M2 deux matrices à n lignes et m colonnes.
Ecrire un programme en python qui permet de calculer les éléments de la matrice M3=M1+M2.
Exemple :

1 2 3 2 5 3 3 7 6
M1 4 5 6 M2 3 0 1 donnent M3= 7 5 7

B/
Soient M1 et M2 deux matrices :
- M1 une matrice ayant n lignes et m colonnes
- M2 une matrice ayant m lignes et p colonnes
Ecrire un programme en python qui permet de calculer les éléments de la matrice carrée
M3=M1*M2.
Notons d’abord que le nombre de colonnes de M1 doit être égal au nombre de lignes de M2.
Le produit M3=M1*M2 est défini comme une matrice ayant n lignes et p colonnes et dont les
éléments sont calculés par la formule :

Rochdy BELHASSEN
M3i,j= M1i,1 * M21,j + M1i,2 * M22,j +……+ M1i,m * M2m,j
m

Soit M 3 i, j   M 1 i ,k * M 2 k , j
k 1

Où M1i,k , M2k,j et M3i,j sont respectivement les éléments des matrices M1, M2 et M3.

Exemple :

1 2 3 2 1 11 13
M1 4 0 5 M2 3 0  M3= 13 24
1 4
C/
Une matrice carrée est une matrice à n lignes et n colonnes.
L’opération de transposition consiste à inverser les lignes et les colonnes en effectuant une
symétrie par rapport à la diagonale principale de la matrice.
Ecrire un programme en python qui permet de calculer la transposition d’une matrice carrée
M.
Exemple :
1 2 3 1 2 3
1 1 2 3 1 1 4 7
M 2 4 5 6  TM 2 2 5 8
3 7 8 9 3 3 6 9

Atelier N°2-- Les structures itératives 11

Vous aimerez peut-être aussi