100% ont trouvé ce document utile (1 vote)
456 vues84 pages

Cours Essentiel de Programmation Python

Transféré par

legend.sessi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (1 vote)
456 vues84 pages

Cours Essentiel de Programmation Python

Transféré par

legend.sessi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Montplaisir Imm.

Espace Tunis Bloc H.


2ème étage. Bureau 6

FORMATION PYTHON
Pour
1 L'essentiel du cours les
lycé
2 Exercices Algorithme ens

3 Exercices Python

4 Astuces et Remarques

Centre Formakt_Bac

Contact:
+216-55-530-162
[Link]@[Link]
1

Python est un langage de programmation. Il est l’un des langages de programmation les
plus intéressants du moment. Python est souvent utilisé en exemple lors de l’apprentissage de
la programmation.

Python c’est quoi ?


Python est un langage de programmation inventé par Guido van Rossum. La première
version de python est sortie en 1991.

Python est un langage de programmation interprété, c’est-à-dire qu’il n’est pas nécessaire de
le compiler avant de l’exécuter. Si vous avez touché un peu la programmation, vous verrez
que ce langage possède une certaine poésie. Les programmeurs s’amusent souvent à trouver
la manière la plus jolie/efficace d’écrire une suite d’instruction. Rares sont ceux qui critiquent

ac
la logique Python contrairement à JavaScript par exemple.

16 _b
Que fait Python ?

kt
Python est à la fois simple et puissant, il vous permet d’écrire des scripts très simples mais

53 ma
2
grâce à ses nombreuses bibliothèques, vous pouvez travailler sur des projets plus
ambitieux.
55 or
*Web : Aujourd’hui Python combiné avec le framework Django est un très bon choix

0
:F

technologique pour des gros projets de sites internet.


ac ok

*Système : Python est également souvent utilisé par les admins système pour créer des
tâches dites répétitives ou simplement de maintenance. D’ailleurs si vous voulez créer des
nt bo

applications java en codant en Python, c’est possible grâce au projet Jython.


t:
Co ce

Pourquoi préférer Python aux autres


Fa

langages ?
ge

Python est un langage facile à apprendre et son code est plus lisible, il est donc plus facile à
Pa

maintenir. Il est parfois jusqu’à 5 fois plus concises que langage Java par exemple, ce qui
augmente la productivité du développeur et réduit mécaniquement le nombre de bugs.

Python est également utilisé dans les milieux scientifiques, par exemple la bioinformatique.
Des librairies sont disponibles pour ce domaine comme le module biopython.

Il existe également des bibliothèques facilitant la création de jeux vidéo ebn2D et 3D,
exemple pyGame.

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


2

Qui utilise Python ?


Google (Guido van Rossum a travaillé pour Google de 2005 à 2012), Yahoo, Microsoft, La
Nasa revendique l’utilisation de python…

Le programme qu’on va voir ensemble


 Les Différents types de variables en python :
 int : Les entiers naturels et relatifs (l’ensemble IN et Z)
 float : Les réels (L’ensemble IR).
 char : Les caractères (les alphabets, les chiffres et les symboles met entre parenthèse
 str : Les chaines de caractères (Ensemble des caractères)
 bool : Les booléens ou les variables logiques (prennent deux valeurs possibles Vrai

ac
ou faux)
 list : Les tableaux

16 _b
 Structure de contrôle conditionnelle :

kt
Si Cond alors Résultat

53 ma
 Structure de contrôle itérative

2
On va voir ensemble les boucles : Pour, Tant que et répéter et découvrir la différence entre
55 or
eux.

0
:F
 Les sous-programmes :
Les modules : Fonction et procédure
ac ok
nt bo
t:
Co ce
Fa
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


3

Les structures simples


1. Affichage
Si nous voulons afficher un message, nous utilisons les instructions suivantes :

Algorithme Python

Ecrire (‘Le message à afficher’) Print (‘Le message à afficher ‘)

Exemples :
Ecrire(‘python’)

ac
print (’’ python ’’)  le programme donne : python

16 _b
Pour renvoier deux messages écrits avec des commandes print() distinctes sur la même ligne,
on utilise le syntaxe suivant :

kt
print (’’ formation ’’, end = ’’)

53 ma
print (’’ python ’’)

2
Dans ce cas le programme donne  formationpython
55 or
2. Affectation :
0
:F

Si on veut créer une variable x de type entier et on veut lui donner la valeur 2, on utilise les
syntaxes donnés par le tableau suivant :
ac ok
nt bo

Algorithme Python
t:
Co ce

x2 x=2
Fa

(Se lit x reçoit 2 )


ge

Cette opération est dite affectation : C’est-à-dire mettre la valeur 2 dans la variable x (on dit
x reçoit 2 ou x prend la valeur 2).
Pa

Pour afficher un message, il faut l’écrire entre deux côtes ‘’, en informatique il y’a
différence d’écrire : Ecrire(x) et Ecrire (‘x’) ainsi que print(x) et print(‘x’)
Dans le premier cas (sans apostrophes) signifie qu’on veut afficher le contenu de la
variable x donc le programme affiche 2 alors que avec les deux apostrophes le
programme affichera la lettre x tel qu’elle est écrite.

3. Saisie de donnée :

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


4

Pour donner l’accès à l’utilisateur de saisir des donnés par le clavier, on doit utiliser les
instructions suivantes :

Algorithme Python

lire(a) a=input()

La valeur saisie par l’utilisateur sera enregistrée dans la variable a.

Généralement, lorsqu’on demande à l’utilisateur de saisir des données, on lui


affiche un message qui porte des informations sur ce qu'on attend de lui.

Exemples :

ac
Algorithme Python

16 _b
Ecrire (‘Donner ton prénom’) print(‘Donner ton prénom’)

kt
lire(p) p=input()

53 ma
2
Python nous a permis de diminuer le nombre des lignes et de combiner l’affichage du
55 or
message avec le saisi du donné.
Et donc ça sera : p=input (‘Donner ton prénom’)

0
:F

print(’’Donner un entier’’)
n = input ()
ac ok
nt bo
t:
Co ce

Exercice :
Fa

Ecrire un programme qui permet de saisir un entier composé de 2 chiffres et calculer la


somme de ses chiffres.
ge

Exemple l’utilisateur saisi l’entier 23 le programme affiche 5 (2+3)


Pa

L’idée est de séparer le chiffre d’unité du chiffre de dizaine.


Il est évident de penser à utiliser la division euclidienne de l’entier donné par l’utilisateur par
10.

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


5

Avec une division euclidienne sur 10, le nombre d’unités présente le reste de
la division alors que le nombre de dizaine présente le quotient

ac
Pour obtenir le reste et le quotient en informatique, on utilise les commandes
suivantes :

16 _b
kt
Algorithme Python

53 ma
2
Quotient : x div 10 55 or x // 10

Reste : x mod 10 x % 10

0
:F

Correction de l’exercice
ac ok
nt bo

Algorithme :
t:

Debut Chiffres2
Co ce

Ecrire (‘donner un entier composé de deux chiffres’)


Fa

Lire (n)
u  n mod 10
ge

d  n div 10
Pa

s  u+d
Ecrire (s)
Fin Chiffres2

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


6

Python

Mais pourquoi nous avons écrire int avant la commande input() ???

ac
C’est parce que la fonction input retourne par défaut une chaine de caractères
Donc, on doit convertir la valeur saisie en type entier pour qu’on puisse

16 _b
appliquer par la suite les opérations nécessaires (la somme et la division)

kt
Voir cet exemple

53 ma
2
55 or
0
:F
ac ok
nt bo
t:
Co ce
Fa
ge

Le programme affiche un message d’erreur : car on ne peut pas sommer une chaine de caractère à un
entier.
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


7

Après conversion de la variable n en un entier le programme tourne normalement sans aucun


problème et affiche le résultat souhaité.

L’affichage Mixte : On peut afficher à la fois un message et le contenu d’une


variable en séparant entre eux par une virgule.

Exemple : a  18

Ecrire(‘Bonjour j ai ‘,a,’ ans ‘)

Le programme affiche Bonjour j’ai 18 ans.

Dans le cas de notre exercice on peut écrire :

ac
16 _b
kt
53 ma
2
55 or
0
:F

Exercice :
ac ok

Ecrire un programme qui permet de saisir un entier composé de 3 chiffres et calculer la


somme de ses chiffres
nt bo

Exemple l’utilisateur saisi l’entier 235 le programme affiche 10 (2+3+5)


t:
Co ce
Fa

Nous utiliserons le même principe que l’exercice précèdent mais avec une division
euclidienne sur 100 au lieu de 10.
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


8

Correction de l’exercice
Algorithme :

Début Somme_chiffres

Ecrire (‘’Donner un entier composé de 3 chiffres’’)

Lire (n)

c  n div 100

d  (n div 10) mod 10

u  n mod 10

sc+d+u

ac
Ecrire (‘’La somme des chiffres’’, c, ‘‘,’’, d, ’’et’’, u, ‘’est’’, s)

16 _b
Fin Somme_chiffres

kt
Python:

53 ma
2
55 or
0
:F
ac ok
nt bo
t:
Co ce
Fa
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


9

 Les fonctions sur les types numériques :

Algorithme Python Rôle Exemple


Racine_carrée(x) sqrt(x) Donne la racine from math import *
carrée d’un réel x x = 16
sqrt(x)  donne
14.0
abs(x) abs(x) Donne la valeur x = -2
absolu d’un réel x abs(x)  donne 2
Tronc(x) trunc(x) Enlève la partie from math import *
décimale d’un réel x x = 2.96
trunc(x)  donne 2

ac
Arrondi(x) round(x) Donne l’entier le x = 2.5  donne 2

16 _b
plus proche du réel x x = 2.51  donne 3
pow(x,y) pow(x,y) Donne x puissance y pow (2,3)  8

kt
Aléa (x,y) randint(x,y) Donne un entier from random

53 ma
aléatoire entre x et y import*

2
x = randint (0,10)
55 or
donne  un entier

0
entre 0 et 10
:F

Aléa (x,y) uniform (x,y) Donne un réel from random


aléatoire entre x et y import*
ac ok

x = uniform (0,10)
donne  un réel
nt bo

entre 0 et 10
t:
Co ce
Fa
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


10

Les structures de contrôle conditionnelles

Ces structures sont utilisées lorsque le programmeur souhait de vérifier la


validation de certaines conditions nécessaires pour le travail.

1. Forme simple
Algorithme Python
Si Condition alors Résultat if Condition :
Fin Si Résultat

ac
Exercice :

16 _b
Ecrire un programme qui permet de faire calculer la racine carrée d’un réel x

kt
Correction de l’exercice

53 ma
2
Algorithme : 55 or
Début racine
Ecrire (''Donner un réel '')

0
:F

Lire(x)
Si x ≥ 0 alors écrire(''La racine carrée est ='' , racine_carrée(x) )
ac ok

Fin Si
Fin racine
nt bo

TDO
t:
Co ce

Objet Type/Nature Rôle


x Réel Donné
Fa

Python :
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


11

C’est quoi le ‘sqrt’ ??

sqrt est une fonction prédéfinie dans python qui nous a permis de calculer la
racine carrée d’un réel.

Si elle est prédéfinie pourquoi ne la connaissait-il pas ?

Pour y accéder, vous devez d'abord importer la bibliothèque math.

ac
16 _b
kt
53 ma
2
55 or
Lorsque vous appuyez sur Entrée après les deux points, vous remarquerez que
le curseur se déplace vers la droite. Cet espace est appelé indentation, tant que

0
:F

l'indentation est présente, nous restons dans le résultat de if.


ac ok
nt bo
t:
Co ce
Fa

Exercice :
ge

Ecrire un programme qui permet de vérifier la parité d’un entier (en utilisant la forme simple)
Correction de l’exercice
Pa

Algorithme :

Début parité
Ecrire (''Donner un entier '')
Lire(n)
Si x mod2 = 0 alors Ecrire(n,’est pair’ )
Fin Si
Si x mod 2 0 alors Ecrire(n,’est impair’)

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


12

Fin Si
Fin parite

TDO
Objet Type/Nature Rôle
n Entier Donné

Python :

ac
Les symboles de comparaison :

16 _b
Algorithme Python
 =

kt
= ==
 >=

53 ma
2
 <=
 !=
55 or
0
:F
2ème méthode de correction
ac ok

Début parité
Ecrire(''Donner un entier '')
nt bo

Lire (n)
t:
Co ce

message ← ''Pair''
Si n mod 2 ≠ 0 alors
Fa

message ← ''impair''
ge

FinSi
Ecrire(n, " est ",message)
Pa

Fin parité
TDO
Objet Type/Nature Rôle
n Entier Donné
message Chaine de message qui contient
caractères l’information sur la
parité de n

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


13

Python :

2. Forme alternative
Algorithme Python
Si Condition alors Résultat 1 if Condition :
Sinon Résultat 2 Résultat1
Fin Si else :
Résultat 2

ac
16 _b
Exemple

kt
Si x >= 0 alors écrire(‘’Positif’’)

53 ma
Sinon écrire (‘’négatif’’)

2
Sin Si
55 or
0
:F

Exercice :
Ecrire un programme qui permet de vérifier la parité d’un entier (en utilisant la forme
ac ok

alternative)
nt bo

Correction de l’exercice
t:
Co ce

Algorithme :
Fa

Début parité
Ecrire (''Donner un entier '')
ge

Lire(n)
Si x mod2 = 0 alors Ecrire(n,’est pair’ )
Pa

Sinon Ecrire(n,’est impair’)


Fin Si
Fin parite

TDO
Objet Type/Nature Rôle
n Entier Donné

Python :

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


14

3. Forme généralisée
Algorithme Python
Si Condition alors Résultat 1 if Condition :
Sinon si Condition 2 alors Résultat 2 Résultat1
Sinon Si Condition 3 alors Résultat 3 elif condition 2 :
. Résultat 2
. elif condition 3 :
. Résultat 3

ac
Sinon si Condition n-1 alors Résultat n-1 .
Sinon Résultat n .

16 _b
Fin Si .
elif condition n-1 :

kt
Résultat n-1
else :

53 ma
2
55 or Résultat n

0
:F
On n’écrit jamais une condition avec sinon (else)
ac ok

Exercice :
nt bo

Ecrire un programme qui permet de saisir une moyenne (moy) puis affiche la décision
correspondante :
t:
Co ce

ADMIS si moy 10


Fa

CONTROLE si 9moy<10
REDOUBLE si moy < 9
ge
Pa

Correction de l’exercice
Algorithme :

Début décision
Écrire(''Donner une moyenne'')
Lire(moy)
Si moy>=10 alors message ← ''ADMIS''
Sinon Si moy>=9 alors message ← ''CONTROLE''

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


15

Sinon message ← ''REDOUBLE''


Fin Si
Ecrire(message)
Fin décision

TDO
Objet Type/Nature Rôle
moy Réel Donné
message Chaine de Message qui contient
caractères la décision

Python :

ac
16 _b
kt
53 ma
2
55 or
Exercice :
0
:F

Ecrire un programme qui permet de saisir un entier n contenant 3 chiffres puis affiche si le
nombre est cubique ou non.
ac ok

Un nombre est dit cubique s’il est égal à la somme des cubes de ses chiffres.
Exemple 153est cubique puisque 13+53+33 = 153
nt bo
t:
Co ce

Correction de l’exercice
Fa

Algorithme :

Début cubique
ge

Écrire(''Donner un entier composé de 3 cjiffres'')


Lire(n)
Pa

c  n div 100
d  (n div 100) mod 10
u  n mod 10
s  c3 + d3 + u3
Si s=n alors Ecrire (n, ‘Cubique ‘)
Sinon Ecrire(n, ‘ n est pas cubique’)
Fin Si
Fin cubique

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


16

TDO
Objet Type/Nature Rôle
n Entier Donné
c Entier le nombre de
centaine de n
d Entier le nombre de dizaine
de n
u Entier le nombre d’unités
de n
s Entier la somme des cubes
des chiffres de n

Python :

ac
16 _b
kt
53 ma
2
55 or
0
:F
ac ok
nt bo
t:
Co ce
Fa
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


17

Chaine de caractères et ses méthodes


1. Le type Caractère
On a 256 caractères (255 (clavier) + ’’ vide)

Chaque caractère a un code ASCII (American Standard Code for Information Interchange)

’A’ 65 ’a’  97

On peut comparer les caractères

’A’ < ’a’, car le code ASCII de ’A’ est inférieur au code ASCII de ’a’

2. Définition d’une chaine


ch = 'python'

ac
ch = '''python '''

16 _b
ch=''python''

kt
ch = '' '' ''python '' '' ''

53 ma
2
ch = ' ' ou ch = str ()  chaîne vide 55 or
ch [1]  donne ‘ y ’

0
:F

L’outil ch[i] tel que les i sont indices des caractères numérotés de 0 à long (ch) – 1, nous
permet d’accéder en mode lecture à chaque caractère de la chaine
ac ok

ch [-1]  donne le dernier caractère ‘ n ’


nt bo

3. Extraction d’une sous chaîne


t:
Co ce

Ch[id : if ]
Fa

id : indice de début

if : indice de fin – 1
ge

ch = ’python’
Pa

ch[0 : 3]  donne ’ pyt ’

ch[2 :]  donne ’ thon ’

ch[-2 :]  donne ’ on ’

ch[: :2]  donne ’ pto ’

ch[: :- 2]  donne ’ nhy ’

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


18

4. Concaténation et multiplication
’ formation ’+’ python ’  donne ’ formationpython ’

Ch = ’ a ’ * 5  donne ch = ’aaaaa’

5. Les méthodes
ord(x) Code ASCII du caractère x Ord (’A’)  donne 65
Ord (’a’)  donne 97
chr(x) Caractère dont le code ASCII est x Chr(65)  ’A’
Chr(97)  ’a’
len (ch) Taille de la chaîne Len (’python’)  donne 6
int (ch) Convertir une chaîne en un nombre entier Int(’120’)  donne 120
float(ch) Convertir une chaîne en un nombre réel int(’12.50’)  donne 12.50
Str (objet) Convertir l’objet en une chaîne Str (120)  donne ’120’
Str (12.50)  donne ’12.50’

ac
max (ch) Caractère ayant le code ASCII le plus max (’python’)  donne ’y’
min (ch) élevé ou le plus faible

16 _b
[Link]() Convertir ch en majuscule ’python’.upper()  donne ’PYTHON’
[Link]() Convertir ch en miniscule ’PYTHON’.lower()  donne ’python’

kt
[Link]() Convertir le 1er caractère de ch en ’python’.capitalize()  donne ’Python’
majuscule

53 ma
Convertir le 1er caractère de chaque mot ’formation python’.title()  donne ’Formation

2
[Link]()
de ch en majuscule Python’
55 or
[Link](n,ch) Centrer ch dans une chaîne de n caractère ’python’.center(10,’*’)  donne ’ **python**
car ’

0
:F
[Link](ch1 Remplace tous le n occurrence de ch1 par ’informatique’.replace(’i’,’I’)  donne
,ch2,n) ch2 dans la chaîne ch ’InformatIque’
’informatique’.replace(’i’,’I’,1)  donne
ac ok

’Informatique’
[Link](ch1,d,f) Compter le nombre d’occurrence de ch1 ’informatique’.count(’i’)  donne 2
nt bo

dans ch dans un intervalle des caractères ’informatique’.count(’i’,0,4)  donne 1


[d,f-1]
t:
Co ce

[Link](ch1,d,f) Retourne la 1ère position de ch1 dans une ’informatique’.find (’i’)  donne 0
portion de caractère de ch ’informatique’.find (’i’,1,10)  donne 8
Fa

’informatique’.find (’I’)  donne -1


[Link]() Enlever les espaces avant et après ’ python ’.strip  donne ’python’
ge

Méthodes de [Link](), [Link](), [Link](), ’12.20’.isdecimal()  donne faux


vérification [Link](), [Link]() : sont des ’python’.isalpha()  donne vrai
Pa

fonctions booléens ’PYTHON’.isupper()  donne vrai


’Python’.islower()  donne faux
’PYTHON3x’.isalnum()  donne vrai

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


19

Algorithme Code en Python Rôle Exemples


Concat (ch1, Ch1 + ch2 + … + chn Permet la concaténation d’un Ch1 = ’2020’
ch3,…,chn) ensemble de chaînes de Ch2 = ’/’
ou caractères Ch3=’2021’
Ch1 + ch2 + … +chn Ch = concat(ch1, ch2, ch3)
’2020/2021’
Pos(ch1,ch2) [Link](ch1) Retourne la première position Ch1=’2’
de la chaîne ch1 dans la Ch2 = ’2020’
chaîne ch2 Pos (ch1,ch2) = 0
Convch (n) Ch = str (n) Convertir le nombre n en une Ch = Convch(2020)
chaîne de caractères Ch = ’2020’

Valeur (ch) n = int (ch) Convertir une chaîne de ch = ’2020’


caractère en une valeur n = valeur (ch)
n = float (ch) numérique (sinon erreur) n = 2020
si ch contient un réel Str (12.50)  donne
’12.50’

ac
Ch= ’2info2’

16 _b
n = valeur (ch)
n = erreur

kt
Sous_chaîne (ch,id,if) Ch [id :if] Retourne une partie de la ch = 'informatique'

53 ma
id : indice de début chaîne ch à partir de la ch2 = ch[2:5]

2
if : indice de fin -1 position id jusqu’à la position print(ch2)
if -1 le programme affiche :
55 or
for

0
ch = 'informatique'
:F
Effacer (ch, d, f) Efface des caractères de la
chaîne ch à partir de la ch2 = ch[:4] + ch[7:]
Ch[:d]+ch[f :]
position d jusqu’à la position print (ch2)
ac ok

f (f exclue). le programme affiche :


infotique
nt bo
t:
Co ce

Exercice
Fa

Ecrire un programme qui permet de saisir une adresse mail de la façon suivante :
pré[Link]@[Link] puis affiche chaque partie seule.
ge

Exemple : [Link]@[Link]
Pa

Prénom : formakt
Nom : bac
Serveur : gmail

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


20

Extension : com

Fautes à éviter !!!!

ac
Le programme doit être exécutable pour n’importe quelle personne.

16 _b
kt
L’idée est d’utiliser les positions du caractère « . » et « @ », c’est claire que quel que

53 ma
2
soit le prénom de l’utilisateur de notre programme commence dès le début de l’e-
mail jusqu’à la position du caractère « . »
55 or
Correction de l’exercice
0
:F

Algorithme :
ac ok

Début email
nt bo

Écrire(''Donner un email'')
Lire(ch)
t:

prenom sous_chaine(ch,0,pos(‘.’,ch))
Co ce

Ecrire(‘Prénom :’,prenom)
nom  sous_chaine(ch,pos(‘.’,ch)+1,pos(‘@’,ch))
Fa

Ecrire(‘Nom :’,nom)
Effacer (ch, 0, pos(‘@’,ch)+1)
ge

serveur  sous_chaine(ch,0, pos(‘.’,ch))


Ecrire(‘Serveur :’,serveur)
Pa

extension  sous_chaine(ch,pos(‘.’,ch)+1, long(ch))


Ecrire (‘Extension : ‘,extension)
Fin email

TDO
Objet Type/Nature Rôle
ch chaine de caractères Donnée
prenom chaine de caractères sous chaine de l’e-mail qui contient le
prénom

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


21

nom Chaine de caractères sous chaine de l’e-mail qui contient le nom


serveur chaine de caractères sous chaine de l’e-mail qui contient le
serveur
extension chaines de caractères sous chaine de l’e-mail qui contient
l’extension

Python :

ac
16 _b
kt
53 ma
2
55 or
0
:F

Exercice :
ac ok

Ecrire un programme qui permet de saisir un entier n contenant minimum 4 chiffres et qui
nt bo

affiche s’il est magique ou non.


Un nombre est dit magique si la somme des deux premiers chiffres est égal au produit de
t:
Co ce

deux derniers chiffres.


Fa

Exemple : n=32451, n est magique car 3+2 = 5*1


ge

Fautes à éviter !!!!


Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


22

L’entier n est composé au minimum de 4 chiffres, c’est-à-dire il peut être composé de 4 chiffres
exactement ou de plus que 4 chiffres. Donc le programme doit être exécutable pour tous les cas.

En plus la variable s est de type str, ainsi que la variable p va poser un problème de syntaxe puisque
on ne peut pas multiplier un caractère par un autre caractère.

Correction de l’exercice
Algorithme :

Début magique
Écrire(''Donner un entier'')
Lire(n)
ch  convch(n)
s  valeur(ch[0])+valeur(ch[1])
p  valeur (ch[long(ch)-2])* valeur(ch[long(ch)-1])
si p=s alors Ecrire(n, ‘est magique’)

ac
sinon Ecrire (n, ‘est non magique’)
Fin Si

16 _b
Fin magique

kt
TDO

53 ma
Objet Type/Nature Rôle

2
n Entier Donné
ch Chaine de
55 or
caractères

0
:F

Python :
ac ok
nt bo
t:
Co ce
Fa
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


23

Les structures de contrôle itératives


1. Boucle Pour
Il s’agit d’une structure itérative utilisée lorsque il y’a une répétition d'une suite d'instructions
d’un nombre fini de fois connu à l'avance.

Algorithme Python
Pour i de 0 à n-1 faire for i in range (n) :
Traitement à répéter Traitement à répéter
Fin Pour

ac
 Exemple

16 _b
kt
53 ma
2
55 or
0
:F
ac ok

 Remarque
nt bo

E
t:
Co ce
Fa

Vous souvenez-vous la notion d’indentation que nous avons vu avec if ?


ge

Si vous tapez sur entrée après les deux points, le curseur se déplace vers la droite, tant que
nous gardons cet espace, les instructions seront répétées.
Pa

Notion du compteur

La variable i désigne le compteur de la boucle : par défaut i commence du 0 jusqu’à n-1,


l’incrémentation du compteur est automatique avec un pas = 1.

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


24

ac
Cette notion du compteur sera très utile pour parcourir une chaine de caractères (caractère par

16 _b
caractère).

kt
53 ma
2
55 or
0
:F
ac ok
nt bo
t:
Co ce
Fa
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


25

Dans le cas d’une chaine donnée par l’utilisateur qu’on le ne sait pas d’avance, on utilise ce
code pour parcourir la chaine.

Exercice :
Ecrire un programme qui permet de calculer la somme de 5 entiers donnés.

L’idée est de demander de l’utilisateur de saisir un entier 5 fois, puis on calcul la


somme de ces entiers.

ac
Etape n°1 :

16 _b
kt
53 ma
2
55 or
0
:F
ac ok
nt bo
t:
Co ce
Fa

Etape n°2 :
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


26

L’étape de calcul de la somme est répété 5 fois, à chaque fois on met à jour la valeur de la
somme après chaque entier ajouté par l’utilisateur

ac
Etape n°3 :

16 _b
kt
53 ma
2
55 or
0
:F
ac ok

Ce message d’erreur concerne la variable s qu’est à l’intérieur, on effet pour i = 0, s n’est pas
nt bo

encore définie.
t:
Co ce

Etape n°4 :
Fa
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


27

La variable s doit être initialiser avant la boucle for, sinon chaque itération on remet cette
variable à 0.

On remarque que si on écrit l’instruction print() à l’intérieur de la boucle, on affiche la valeur


obtenue à chaque fois alors que nous souhaitons d‘afficher la somme totale.

Etape n°5 :

ac
16 _b
kt
53 ma
2
55 or
Correction de l’exercice

0
:F
Algorithme :

Début somme
ac ok

s0
nt bo

Pour i de 0 à 4 faire
Ecrire(‘Donner un entier’)
t:
Co ce

Lire(n)
s  s+n
Fa

Fin Pour
Ecrire(s)
ge

Fin somme
Pa

TDO
Objet Type/Nature Rôle
n Entier Donné
s Entier La somme de 5
entiers
i Entier compteur

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


28

Exercice :
Ecrire un programme qui permet de calculer la somme des chiffres d’un entier composé de 3
chiffres (sans utiliser mod et div).

Correction de l’exercice
Algorithme :

Début somme_chiffres
s0
Ecrire(‘Donner un entier’)
Lire(n)

ac
ch  convch(n)
s  valeur(ch[0])+valeur(ch[1])+valeur(ch[2])

16 _b
Ecrire(s)

kt
Fin somme_chiffres

53 ma
TDO

2
Objet Type/Nature 55 or Rôle
n Entier Donné
ch chaine de

0
:F
caractères
s Entier La somme des
chiffres de n
ac ok
nt bo

Python :
t:
Co ce
Fa
ge
Pa

Il faut convertir (ch[0]) , ch[1] et ch[2] en entier sinon nous sommes entrain de
reconstruire ch.

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


29

Exercice :
Ecrire un programme qui permet de calculer la somme des chiffres d’un entier quelconque

Correction de l’exercice
Algorithme :

Début somme_chiffres
s0
Ecrire(‘Donner un entier’)
Lire(n)

ac
ch  convch(n)

16 _b
Pour i de 0 à long(ch)-1 faire
s  s+ valeur(ch[i])

kt
Fin Pour
Ecrire(s)

53 ma
2
Fin somme_chiffres 55 or
TDO
Objet Type/Nature Rôle

0
:F

n Entier Donné
ch chaine de
ac ok

caractères
s Entier La somme des
nt bo

chiffres de n
i Entier Compteur
t:
Co ce
Fa

Python :
ge
Pa

Exercice :
Ecrire un programme qui permet de calculer le nombre des espaces dans une chaine de
caractères donnée.

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


30

Exemple : ch=’ Salut tout le monde’ on aura Le nb d’espace est 3.

Correction de l’exercice
Algorithme :

Début nb_espace
nb  0
Ecrire(‘Donner une chaine de caractère’)
Lire(ch)
Pour i de 0 à long(ch)-1 faire
si ch[i]= ‘ ‘alors nb  nb+1
Fin Si
Fin Pour

ac
Ecrire (‘Le nb d espace est ‘,nb)
Fin nb_espace

16 _b
kt
TDO
Objet Type/Nature Rôle

53 ma
nb Entier le nombre des

2
espaces
ch chaine de Donnée
55 or
caractères

0
:F

Python :
ac ok
nt bo
t:
Co ce
Fa
ge
Pa

2. Modification de la valeur d'une chaine de caractères


En python, une chaîne de caractères est un objet de la catégorie des séquences (collections
ordonnées d'éléments) non modifiables (on dit aussi non mutable). Contrairement à d'autres
langages, en Python, on ne peut donc pas modifier directement un caractère individuel dans
une chaîne. Le seul moyen de modifier une variable de ce type sera de la redéfinir (création
d'une nouvelle variable de même nom qui écrase l'ancienne ou chaine copie).

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


31

L'exemple suivant illustre la modification de la valeur (complète) d'une chaîne de caractères.


Cette modification consiste à remplacer tous les espaces par le caractère '_'. La chaîne à
modifier est stockée dans la variable ch. Une seconde variable ch2 est initialisée vide avant
l'entrée dans une boucle for. Cette boucle parcourt la valeur de chaine caractère par caractère,
et si le caractère pointé est différent de l'espace il est ajouté par concaténation à la valeur
de ch2 sinon c'est le caractère '_' qui est ajouté à ch2. Après exécution de la boucle, la valeur
de ch2 est recopiée dans ch qui est ainsi modifiée.

Pour ce faire et mieux comprendre, on va passer par quelques étapes :

Vous ne pouvez pas modifier le contenu d’ une chaîne existante. En d’ autres termes, vous ne
pouvez pas utiliser l ' opérateur [ ] dans la partie gauche d ' une instruction d ' affectation.
Essayez par exemple d ' exécuter le petit script suivant (qui cherche intuitivement à remplacer
une lettre dans une chaîne) :

ac
16 _b
kt
53 ma
2
55 or
0
:F
ac ok

Le résultat attendu par le programmeur qui a écrit ces instructions est « pithon » (avec un i au
lieu de y). Mais contrairement à ses attentes, ce script lève une erreur du genre : TypeError:
nt bo

'str' object does not support item assignment.


t:
Co ce

En algorithme, on peut effectuer ce changement sans aucun problème.


Fa

ch  ‘’python’’
ge

ch[1]  ‘’i’’
Pa

ch se tranforme en ‘’pithon’’

Exercice :
Ecrire un programme qui permet de remplacer ‘y’ dans ‘python’ par ‘i’.

Correction de l’exercice

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


32

Python :

Exercice :

ac
Ecrire un programme qui permet de concaténer n caractères/chaines de caractères pour
former une chaine de caractères.

16 _b
kt
53 ma
Le résultat obtenu par cet exercice est une nouvelle chaine différente de celle d’origine.

2
Correction de l’exercice
55 or
0
Algorithme :
:F

Début concaténation
ac ok

Ecrire (‘Donner le nbr des chaines’)


Lire (n)
nt bo

ch  ‘’
Pour i de 0 à n-1 faire
t:
Co ce

Ecrire (‘Donner une chaine’)


Lire (c)
Fa

ch1  ch1+ c
Fin Pour
ge

Ecrire (ch)
Pa

Fin concaténation

TDO
Objet Type/Nature Rôle
n Entier le nombre des
chaines
ch chaine de la somme des
caractères chaines
c chaine de Donnée
caractères

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


33

Pythone :

Comme nous avons vu pour l’exercice du calcul de la somme des 5 entiers, un message
d’erreur s’affiche. En effet pour la première itération (i=0) la nouvelle chaine ch1 n’est

ac
pas encore définie. Afin de résoudre ce problème nous devons initialiser ch1 à une
valeur qui n’affecte pas le résultat souhaité (La valeur 0 pour les entiers dans le calcul

16 _b
d’une somme)

kt
Ch1 sera initialisé à une chaine vide.

53 ma
2
55 or
0
:F
ac ok

Autre méthode de la boucle for


nt bo
t:
Co ce
Fa
ge
Pa

 Former une chaine (copie) de la chaine saisie

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


34

Et maintenant on fait l’exemple du début de la partie modification d’une chaîne :

 Changement des espaces dans une chaine par des ''_''

Autre méthode :

ac
Nous pouvons modifier les espaces dans ch par une autre méthode dont l’algorithme est le

16 _b
suivant :

kt
Ecrire (‘’Donner une chaine’’)

53 ma
2
lire (ch)
ch  ''''
55 or
Pour i de 0 à long(ch) – 1 faire

0
:F

Si ch[i] ='' '' alors


ac ok

ch2  ch2 + ''_''


nt bo

Sinon
ch2  ch2 + ch[i]
t:
Co ce

Fin Si
Fa

Fin Pour
ge

Exercice :
Pa

Ecrire un programme qui permet de changer le caractère de la position donnée par ‘_’.
Exemple : ch=’python’ et la position est 3, on aura py_hon

Correction de l’exercice
Algorithme :

Début modification

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


35

Ecrire (‘Donner une chaine de caractères’)


Lire (ch)
Ecrire (Donner la position’)
Lire(pos)
ch2  '' ''
Pour i de 0 à long(ch)-1 faire
si ch[i] = ch[pos-1] alors
ch2  ch2 + ''_ ''
Sinon
ch2  ch2 + ch[i]
Fin Si
Fin Pour
Fin modification

ac
Python

16 _b
kt
53 ma
2
55 or
0
:F
ac ok

Il a à noter qu’avec cette méthode le programme remplace tous les caractères identiques au
nt bo

caractère trouvé dans la position pos.


t:
Co ce
Fa
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


36

ac
16 _b
kt
53 ma
Ce résultat est obtenu le fait que nous avons comparé ch[i] par ch[pos-1] qu’est un caractère.

2
Pour répondre au besoin de cet exercice, il faut qu’on remplace juste le caractère trouvé dans
55 or
la position pos. Pour cela on doit utiliser pos-1 et non pas ch[pos-1].

0
Algorithme :
:F

Début modification
ac ok

Ecrire (‘Donner une chaine de caractères’)


Lire (ch)
nt bo

Ecrire (Donner la position’)


Lire(pos)
t:
Co ce

ch2  '' ''


Pour i de 0 à long(ch)-1 faire
Fa

si i = pos-1 alors
ch2  ch2 + ''_''
ge

sinon
ch2  ch2+ch[i]
Pa

Fin Si
Fin Pour
Fin modification

TDO
Objet Type/Nature Rôle
ch Chaine de Donnée
caractères
pos Entier Donnée

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


37

ch2 Chaine de La chaine


caractères modifiée
python :

ac
16 _b
kt
53 ma
Exercice :

2
Ecrire un programme qui permet de changer le caractère espace par son nombre
d’occurrence.
55 or
Exemple : ch = ‘Salut tout le monde’, on aura salut1tout2le3monde

0
:F

Correction de l’exercice
ac ok

Algorithme :
nt bo

Début chang_occ
t:
Co ce

Ecrire (‘Donner une chaine de caractères’)


Lire (ch)
Fa

nb  0
ch2  '' ''
ge

Pour i de 0 à long(ch)-1 faire


si ch[i]= ‘ ‘ alors
Pa

nb  nb+1
ch2  ch2 + convch(nb)
sinon
ch2 ch2+ch[i]
Fin Si
Fin Pour
Ecrire (ch)
Fin chang_occ

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


38

TDO
Objet Type/Nature Rôle
ch Chaine de Donnée
caractères
nb Entier nombre d’occurrence
d’un espace
ch2 Chaine de La chaine modifiée
caractères
Python :

ac
16 _b
kt
53 ma
2
55 or
0
:F

Exercice sur les caractères :


ac ok

Ecrire un programme Python qui permet de transformer la chaîne de caractères donnée en


majuscule sans utiliser la fonction [Link]() ou [Link]().
nt bo

Indication : le code ASCII de 'a' est 97 et le code ASCII de 'A' est 65.
t:
Co ce
Fa
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


39

 Changer les caractères d’une chaine donnée par leurs codes ASCII

ac
16 _b
Exercice :

kt
Ecrire un programme qui permet de calculer la factorielle d’un entier donnée

53 ma
6 ! = 1*2*3*4*5*6

2
55 or
Correction de l’exercice

0
:F
Algorithme :

Début factorielle
ac ok

Ecrire (‘Donner uu entier’)


Lire (n)
nt bo

f 1
t:

Pour i de 0 à n-1 faire


Co ce

f  f*(i+1)
Fa

Fin Pour
Fin factorielle
ge

TDO
Pa

Objet Type/Nature Rôle


n Entier Donné
f Entier Factorielle de n
Python :

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


40

Méthode 2

Remarques

ac
16 _b
kt
for compteur in range (début, fin , #Méthode 1

53 ma
p) 1 for i in range (2):

2
2 print (i)
NB : compteur variant entre le programme affiche :
55 or
[début..fin-1] et pas = p 0

0
1
:F

#Méthode 2
1 for i in range (1,10,2) :
ac ok

2 print(i)
le programme affiche :
nt bo

1
3
t:
Co ce

5
7
Fa

9
#Méthode 3
1 for i in range (1,5):
ge

2 print(i)
le programme affiche :
Pa

1
2
3
4

Le compteur de la boucle Pour commence par défaut par 0, mais on peut également imposer
la valeur de départ du compteur.

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


41

ac
Méthode 3 :

16 _b
kt
53 ma
2
55 or
0
:F
ac ok
nt bo
t:
Co ce
Fa

Exercice :
ge

Ecrire un programme qui permet de vérifier si un entier est diviseur d’un autre.
Pa

Correction de l’exercice
Algorithme :

Début diviseur
Ecrire (‘Donner uu entier’)
Lire (x)
Ecrire (‘Donner un entier’)
Lire(y)

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


42

Si x mod y =0 alors Ecrire(x, ‘est divisible par’,y)


Fin Si
Fin diviseur

TDO
Objet Type/Nature Rôle
x Entier Donné
y Entier Donné

Python :

ac
Exercice :

16 _b
Ecrire un programme qui permet d’afficher les diviseurs d’un entier donné.

kt
Correction de l’exercice

53 ma
2
Algorithme :
55 or
Début diviseur
Ecrire (‘Donner uu entier’)
0
:F

Lire (x)
Pour i de 1 à x faire
ac ok

si x mod i = 0 alors Ecrire (i)


nt bo

Fin Si
Fin Pour
t:
Co ce

Fin diviseur
TDO
Fa

Objet Type/Nature Rôle


x Entier Donné
ge

i Entier Compteur
Pa

Python :

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


43

Exercice :

ac
Ecrire un programme qui permet de calculer la somme des diviseurs d’un entier donné.

16 _b
Correction de l’exercice

kt
53 ma
Algorithme :

2
Début diviseur
55 or
Ecrire (‘Donner uu entier’)

0
Lire (x)
:F

s0
Pour i de 1 à x faire
ac ok

si x mod i = 0 alors s  s+i


Fin Si
nt bo

Fin Pour
t:

Ecrire(‘La somme des diviseurs de’ ,x,’ est’ , s)


Co ce

Fin diviseur
Fa

TDO
Objet Type/Nature Rôle
ge

x Entier Donné
s Entier La somme des
Pa

diviseurs de x
i Entier Compteur

Python :

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


44

Exercice :
Ecrire un programme qui permet de calculer le nombre des diviseurs d’un entier donné.

ac
Correction de l’exercice

16 _b
Algorithme :

kt
Début diviseur
Ecrire (‘Donner uu entier’)

53 ma
Lire (x)

2
nb  0 55 or
Pour i de 1 à x faire
si x mod i = 0 alors nb  nb+1

0
:F

Fin Si
Fin Pour
ac ok

Ecrire(‘Le nombre des diviseurs de’ ,x,’ est’ , nb)


Fin diviseur
nt bo

TDO
t:
Co ce

Objet Type/Nature Rôle


x Entier Donné
Fa

nb Entier Le nombre des


diviseurs de x
ge

i Entier Compteur
Python :
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


45

Exercice Nombre Premier


Un nombre premier est un entier naturel qui admet exactement deux diviseurs distincts
entiers et positifs. Ces deux diviseurs sont 1 et le nombre considéré
Correction de l’exercice
Algorithme :

Début premier
Ecrire (‘Donner un entier’)
Lire (n)
nb  0
Pour i de 0 à n-1 faire
si n mod (i+1) = 0 alors nb  nb+1

ac
Fin Si

16 _b
Fin Pour
Ecrire(‘Le nombre des diviseurs de’ ,x,’ est’ , nb)

kt
Si nb = 2 alors Ecrire(n, ‘est premier’)

53 ma
Sinon Ecrire (n,’n est pas premier’)

2
Fin Si 55 or
Fin premier

0
:F
TDO
Objet Type/Nature Rôle
n Entier Donné
ac ok

nb Entier Le nombre des


diviseurs de ,
nt bo

i Entier Compteur
t:
Co ce

Python :
Fa
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


46

Méthode 2 :
Algorithme :

Début premier
Ecrire (‘Donner un entier’)
Lire (n)
nb  0
Pour i de 2 à n-1 faire
si n mod i = 0 alors nb  nb+1
Fin Si
Fin Pour
Ecrire(‘Le nombre des diviseurs de’ ,x,’ est’ , nb)
Si nb = 0 alors Ecrire(n, ‘est premier’)
Sinon Ecrire (n,’n est pas premier’)
Fin Si

ac
Fin premier
TDO

16 _b
Objet Type/Nature Rôle
n Entier Donné

kt
nb Entier Le nombre des

53 ma
diviseurs de ,

2
i Entier 55 or Compteur

Python :
0
:F
ac ok
nt bo
t:
Co ce
Fa
ge

2. Boucle Tant que


Pa

La boucle while répète le bloc d’instruction lorsque la condition d’entrée est vérifiée et
retourne après une itération pour vérifier encore. L’itération s’arrête lorsque la condition n’est
plus vérifiée

Algorithme Python
Tant que condition d’entrée faire while condition d’entrée :
Traitement à répéter Traitement à répéter
Fin Tant que

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


47

Pour comprendre le fonctionnement de while :

L’objectif ici est d’atteindre i égale à 5

Boucle infinie

ac
16 _b
Tant que la condition d’entrée est vraie la boucle ne s’arrête pas.

kt
53 ma
2
55 or
0
:F
ac ok
nt bo
t:
Co ce
Fa
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


48

3. Boucle répéter
Sans faire une vérification pour la première itération, la boucle répéter refait le bloc

ac
d’instruction jusqu’à la condition de sortie sera vérifiée, dans ce cas on n’aura plus de
répétition

16 _b
En algorithme, la boucle répéter s’écrit :

kt
Répéter

53 ma
2
Traitement à répéter 55 or
Jusqu’à condition de sortie

0
:F
Le traitement se répète si la condition de sortie n’est pas vérifiée et il s’arrête au cas contraire.

En pratique, python n’a pas une instruction prédéfinie qui remplace directement la boucle
ac ok

Répéter (le langage de programmation Pascal par exemple, a une insctruction directe de la
boucle répéter, c’est repeat Traitement until condition)
nt bo

On doit construire un bloc d’instruction qui fait le même rôle de la boucle Répéter en utilisant
t:
Co ce

la boucle while :
Fa

Méthode n°1 :
ge

La boucle répéter ne nécessite pas une condition d’entrée autrement dit elle est toujours vraie,
pour cela nous procédons comme suit :
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


49

La boucle répéter s’arrête lorsqu’une condition de sortie est vérifiée, pour cette méthode
l’instruction jusqu’à est remplacée par une combinaison de deux instructions : if et break

Break : C’est une instruction permet de sortir de toute itération (for, while...) qui la contient.
Son effet est limité à un seul niveau d'imbrication.

ac
16 _b
kt
53 ma
2
55 or
Lorsque la variable i atteint la valeur 5, la boucle répéter s’arrête.

0
:F
Méthode n°2 :
Devant le while, on met une condition qui est vérifiée pour qu’on peut entrer à la boucle
ac ok

directement, c’est comme la boucle répéter qui n’a pas en théorique une condition d’entrée
nt bo

Donc on affecte à une variable booléenne True et on compare test avec True dans la condition
d’entrée de while.
t:
Co ce
Fa
ge
Pa

On a créé comme ça l’instruction Répéter

Maintenant, on doit construire une instruction qui remplace le rôle de Jusqu’à :

Le principe ici c’est d’affecter à la variable test une autre valeur (test = False) lorsque la
condition de sortie est vérifiée, donc dans l’itération suivante, test sera false et on ne peut
entrer dans la boucle car on a : while test == True, qui n’est pas maintenant vérifiée donc la
boucle s’arrête.

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


50

Comme ça on construit une boucle Répéter avec ce principe.

La même chose si on affecte à la variable test la valeur False au début et on la change avec
True si la condition de sortie est vérifiée :

ac
16 _b
kt
53 ma
2
C’est aussi la boucle Répéter, le même principe
55 or
Autre écriture équivalente :

0
:F

En programmation,
ac ok

est équivalente à :
nt bo
t:

Aussi,
Co ce
Fa

est équivalente à :
ge
Pa

Donc on peut écrire en pratique la boucle Répéter par les 2 façons équivalente suivantes :

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


51

Ou

Algorithme Python
Répéter test = True
Traitement à répéter while test :
Jusqu’à condition de sortie Traitement à répéter
if condition de sortie :

ac
test = False
Exemple en Algorithme

16 _b
i0

kt
Répéter

53 ma
2
ii+1 55 or
Jusqu’à i = 5

0
:F
Le même exemple en Python :
ac ok
nt bo
t:
Co ce
Fa
ge

Saisie conditionnée ou contrôlé:


Pa

Algorithme Python
Ecrire (‘’Donner votre note) 1 moy = float(input ('donner votre note'))
Lire (moy) 2 while (moy <0 or moy>20):
Tant que (moy<0) ou (moy>20) faire 3 print('Erreur, donner votre note)
Ecrire (‘’Donner votre note)
Fin tant que

Répéter 1 test=True

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


52

Ecrire (‘’Donner votre note) 2 while test :


Lire (moy) 3 moy=float(input(‘donner votre note’))
Jusqu’à (moy>=0) et (moy<=20) 4 if moy >=0 and moy<=20 :
5 test=False

La condition d’entrée pour la boucle tant que est opposée à la condition de sortie de la boucle
répéter.

Exercice PGCD :
Ecrire un programme qui permet de calculer le pgcd de 2 entiers a et b par la méthode de
différence.
Exemple : a=15 et b=27

ac
pgcd(15,27)= pgcd(15,27-15)=pgcd(15,12)=pgcd(15-12,12)=pgcd(3,12)=pgcd(3 ,12-
3)=pgcd(3,9)=pgcd(3,9-3)=pgcd(3,6)=pgcd(3,6-3)=pgcd(3,3)=3

16 _b
kt
53 ma
2
55 or
0
:F
ac ok
nt bo
t:
Co ce
Fa
ge
Pa

Correction de l’exercice avec la boucle répéter


Algorithme :

Début PGCD
Ecrire (‘Donner a)
Lire (a)

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


53

Ecrire(‘Donner b’)
Lire(b)
Répéter
si a>b alors a  a-b
sinon b  b-a
jusqu’à a=b
Ecrire(a)
Fin PGCD

TDO
Objet Type/Nature Rôle
a Entier Donné
b Entier Donné
Python :

ac
16 _b
kt
53 ma
2
55 or
0
:F

Correction de l’exercice avec la boucle tant que


ac ok

Algorithme :
nt bo

Début PGCD
Ecrire (‘Donner a)
t:
Co ce

Lire (a)
Ecrire(‘Donner b’)
Fa

Lire(b)
Tant que ab faire
si a>b alors a  a-b
ge

sinon b  b-a
Pa

Fin tant que


Ecrire(‘le pgcd ‘,a)
Fin PGCD

TDO
Objet Type/Nature Rôle
a Entier Donné
b Entier Donné
Python :

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


54

ac
Exercice nombre parfait :

16 _b
Ecrire un programme qui permet d’afficher tous les nombres parfaits entre m et n tel que
2<m<n.

kt
On dit qu’un nombre est parfait s’il est égal à la somme de tous ses diviseurs autre que lui-

53 ma
même.

2
55 or
0
:F
Etape n°1 :

Pour tester si un entier n donné est parfait ou non .On procède comme suit :
ac ok
nt bo
t:
Co ce
Fa
ge
Pa

Les diviseurs d’un entier quelconque autre que lui-même sont inférieurs à sa moitié, donc
pour optimiser le nombre d’itération.

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


55

Ceci n'est qu'une partie de l'exercice, car l'exercice nous a demandé d'afficher tous les
nombres parfaits entre deux entiers donnés m et n.

Correction de l’exercice

ac
Algorithme :

16 _b
Début parfait
Répéter

kt
Ecrire(‘Donner m’)
Lire(m)

53 ma
Ecrire(‘Donner n’)

2
Lire(n)
jusqu’à 2<m<n
55 or
Pour i de m à n faire

0
s 0
:F

Pour j de 1 à i-1 faire


si i mod j = 0 alors ss+j
ac ok

Fin Si
Fin Pour
nt bo

Si s= I alors Ecrire(i)
Fin Si
t:
Co ce

Fin Pour
Fin p&arfait
Fa

TDO
ge

Objet Type/Nature Rôle


m Entier Donné
Pa

n Entier Donné
s Entier La somme des
diviseurs
i Entier Compteur
j Entier Compteur

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


56

Python :

ac
16 _b
Exercice Palindrome :
Ecrire un programme qui permet de saisir un mot composé de 10 caractères au maximum

kt
puis vérifié si ce mot est palindrome (Se lit dans les deux sens)

53 ma
Exemples : ELLE, RADAR, REVER, DVD ,…

2
55 or
Méthode 1 :

0
:F
L’idée est de tester les caractères deux à deux comme montre la figure suivante :
ac ok
nt bo
t:
Co ce
Fa
ge

Dans le cas d’un mot de taille quelconque


Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


57

Nous allons donc immédiatement envisager d'utiliser la boucle Pour

Ce n’est pas la peine d’aller jusqu’à le dernier caractère de ch puisque la chaine


est symétrique. (Quel que soit la longueur de ch pair ou impair il suffit d’aller juste

ac
au milieu de ch)

16 _b
kt
53 ma
2
55 or
0
:F
ac ok

On applique ce code sur deux exemples :


nt bo

ch1=’amelia’ et ch2=’ayaari’.
t:
Co ce

Dans le cas de ch1 le programme affiche Non palindrome ce qu’est vrai alors qu’il affiche
Fa

Palindrome pour ch2.


ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


58

La boucle Pour est inefficace dans ce cas, car elle prend en compte le résultat de la
vérification des deux derniers caractères (dans le cas de ‘ayaari’). On a besoin d'une boucle
« de haute dignité », une fois qu'il rencontre deux caractères différents, on sort de la boucle

ac
Le code présenté dans la figure ci-dessus n’affiche pas si ch est palindrome ou non. Pour cela

16 _b
nous introduisons une variable test de type booléen qui servira par la suite pour l’affichage du
message.

kt
53 ma
2
55 or
0
:F
ac ok
nt bo
t:
Co ce
Fa

Attend ! Avant de passer à exécuter ce code la variable i n’est pas encore définit !!!!!!

Ce genre des boucles nécessite la définition (Initialisation) et l’accrémentition manuel d’un


ge

compteur.
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


59

Imaginons que nous avons saisir un mot palindrome ? Quand la boucle répéter s’arrête ?

Bah oui, dans ce cas la boucle est infinie et une erreur de type Index out of range nous
dérangera.

Donc, il faut prendre en considération ce cas et arrêter la boucle.

ac
16 _b
Correction de l’exercice avec la boucle tant que

kt
53 ma
Algorithme :

2
Début palindrome
55 or
Répéter

0
:F

Écrire(''Donner un mot ''), lire(mot)


Jusqu'a (long(mot) dans [2..10])
ac ok

l ← long(mot)
i ← -1
nt bo

Répéter
t:

i ← i+1
Co ce

si mot[i] ≠ mot [l-i-1] alors test ← faux


Fa

sinon test  vrai


Finsi
jusqu'à (i=(L div 2)-1) ou (test=faux)
ge

Si (test=vrai) alors écrire(''palindrome '') sinon Écrire('' Non palindrome '')


Pa

FinSi
Fin Palindrome

TDO
Objet Type/Nature Rôle
mot Chaine de caractère Chaine donnée
l entier Longueur de la chaine
i entier compteur
test booléen vérification

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


60

Python :

ac
16 _b
kt
Méthode 2 : Chaine inverse
Algorithme :

53 ma
2
Début palindrome
Ecrire(‘Donner la chaine à vérifier ‘)
55 or
Lire(ch)

0
ch_inv  ‘’
:F

Pour i de long(ch)-1 à 0 (Pas=-1)faire


ch_inv  ch_inv + ch[i]
ac ok

Fin Pour
Ecrire(ch_inv)
nt bo

Si ch= ch_inv alors Ecrire (ch, ‘ est palindrome’)


Sinon Ecrire(ch, ‘ n est pas palindrome’)
t:
Co ce

Fin Si
Fin palindrome
Fa

TDO
ge

Objet Type/Nature Rôle


ch Chaine de Donné
Pa

caractère
ch)inv chaine de l’inverse de ch
caractères
i Entier Compteur

Python :

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


61

Exercice Etoiles :
Ecrire un programme qui permet d’afficher chacune des 2 figures suivantes pour un nombre
de ligne n donné.
Exemple pour n =5

ac
16 _b
* *

kt
** ***

53 ma
2
*** 55 or *****

**** *******

0
:F

***** *********

Figure1 Figure 2
ac ok

Figure 1 :
nt bo

#Méthode 1 :
t:
Co ce

Algorithme :
Fa

Début figure1
Ecrire(‘Donner le nombre des lignes‘)
ge

Lire(n)
Pour i de 1 à n faire
Pa

Ecrire(‘*’ * i)
Fin Pour
Fin figure1

TDO
Objet Type/Nature Rôle
n Entier Donné
i Entier Compteur

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


62

Python :

#Méthode 2 :

ac
Algorithme :

16 _b
Début figure1

kt
Ecrire(‘Donner le nombre des lignes‘)
Lire(n)

53 ma
ch  ‘’

2
Pour i de 1 à n faire
ch  ch + ‘*’
55 or
Ecrire (ch)

0
:F
Fin Pour
Fin figure1
ac ok

TDO
Objet Type/Nature Rôle
nt bo

n Entier Donné
ch Chaine de chaine contienne les
t:
Co ce

caractères étoiles à afficher


pour chaque ligne
Fa

i Entier Compteur
Python :
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


63

#Méthode 3 :
 Démarche et idées

ac
16 _b
kt
53 ma
2
55 or
0
:F
ac ok
nt bo
t:
Co ce

Algorithme :
Fa

Début figure1
Ecrire(‘Donner le nombre des lignes‘)
ge

Lire(n)
Pour i de 1 à n faire
Pa

Pour j de 0 à i-1 faire


Ecrire(‘*’ ,end=’’)
Fin Pour
Fin Pour
Fin figure1

TDO
Objet Type/Nature Rôle
n Entier Donné

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


64

i Entier Compteur
j Entier Compteur

Python :

ac
16 _b
Figure 2

kt
53 ma
2
55 or
0
:F
ac ok
nt bo
t:

Algorithme :
Co ce

Début figure2
Fa

Ecrire(‘Donner le nombre des lignes‘)


Lire(n)
ge

Pour i de 1 à n faire
Pour j de 01à n-i faire
Pa

Ecrire(‘ ’ ,end=’’)
Fin Pour
Pour k de 1 à 2*i -1 faire
Ecrire(‘*’,end=’’)
Fin Pour
Fin Pour
Fin figure2

TDO
Objet Type/Nature Rôle

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


65

n Entier Donné
i Entier Compteur
j Entier Compteur
k Entier Compteur

Python :

ac
16 _b
kt
53 ma
2
55 or
0
:F
ac ok
nt bo
t:
Co ce
Fa
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


66

Les Tableaux

1. Définition
Une liste est une structure de données qui contient une série de valeurs. Python autorise la
construction de liste contenant des valeurs de types différents (par exemple entier et chaîne de
caractères), ce qui leur confère une grande flexibilité. Une liste est déclarée par une série de
valeurs (n'oubliez pas les guillemets, simples ou doubles, s'il s'agit de chaînes de caractères)
séparées par des virgules, et le tout encadré par des crochets. En voici quelques exemples :

Exemple

T= [5,'Bonjour',4,9.5,8]

ac
print (T)

16 _b
En programmation, Dans les tableaux on ne peut pas stocker que des donnés de
même type.

kt
53 ma
2
55 or
2. Utilisation

0
:F
Un des gros avantages d'une liste est que vous pouvez appeler ses éléments par leur position.
Ce numéro est appelé indice (ou index) de la liste.
ac ok

liste : ['girafe', 'tigre', 'singe', 'souris']


indice : 0 1 2 3
nt bo

Soyez très attentifs au fait que les indices d'une liste de n éléments commence à 0 et se
t:
Co ce

termine à n-1. Voyez l'exemple suivant :


Fa

animaux = ['girafe','tigre','singe','souris']
print (animaux[0])
'girafe'
ge

print (animaux[1])
'tigre'
Pa

animaux[3]
'souris'

Par conséquent, si on appelle l'élément d'indice 4 de notre liste, Python renverra un message
d'erreur :

1 animaux[4]

le programme affiche :
Traceback (innermost last):

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


67

File "<stdin>", line 1, in ?


IndexError: list index out of range

3. Opération sur les listes


Tout comme les chaînes de caractères, les listes supportent l'opérateur + de concaténation,
ainsi que l'opérateur * pour la duplication :

1 ani1 = ['girafe', 'tigre']


2 ani2 = ['singe', 'souris']

3 ani1 + ani2
le programme affiche :
['girafe', 'tigre', 'singe', 'souris']

ac
4 ani1 * 3

16 _b
le programme affiche
['girafe', 'tigre', 'girafe', 'tigre', 'girafe', 'tigre']

kt
L'opérateur + est très pratique pour concaténer deux listes.

53 ma
2
Vous pouvez aussi utiliser la méthode .append() lorsque vous souhaitez ajouter un seul
élément à la fin d'une liste.
55 or
Dans l'exemple suivant nous allons créer une liste vide :

0
:F

1 a = []
ac ok

2a
nt bo

Le programme affiche :
t:
Co ce

[]
Fa

puis lui ajouter deux éléments, l'un après l'autre, d'abord avec la concaténation :

1 a = a + [15]
ge

2 print (a)
Pa

le programme affiche :
[15]

3 a = a + [-5]
4 print (a)

le programme affiche :
[15, -5]

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


68

puis avec la méthode .append() :

1 [Link](13)
2 print (a)
le programme affiche :
[15, -5, 13]
3 [Link](-3)
4 print (a)
le programme affiche :
[15, -5, 13, -3]

Dans l'exemple ci-dessus, nous ajoutons des éléments à une liste en utilisant l'opérateur de
concaténation + ou la méthode. append (). Nous vous conseillons dans ce cas précis d'utiliser
la méthode. append() dont la syntaxe est plus élégante.

4. Remplissage d’un tableau

ac
16 _b
kt
53 ma
2
Il faut initialiser le tableau T à vide d’abord.
55 or
0
:F
ac ok
nt bo
t:
Co ce
Fa
ge
Pa

En cas général, pour remplir des tableaux de taille quelconque, on va utiliser la boucle Pour

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


69

5. Autre méthode du remplissage du tableau :

ac
La méthode append() ou la concaténation de deux tableaux sont des méthodes pratiques, en

16 _b
algorithme on remplit un tableau de la manière suivante :

kt
Debut remplissage

53 ma
Répéter

2
Ecrire(‘’Donner la taille du tableau’’)
55 or
Lire(n)

0
:F

jusqu’à n>= 0 et n <= 20


ac ok

Pour i de 0 à n-1 faire


nt bo

Ecrire(‘’donner T[‘’,i,’’]’’)
t:
Co ce

Lire(T[i])
Fa

Fin Pour

Fin remplissage
ge

TDO
Pa

Objet Type/Nature Rôle


n Entier Donné
T tab Tableau d n entier
i Entier Compteur
TDNT
Type
tab = Tableau de 20 entiers

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


70

En pratique, la méthode de « .append » est différente à celle en théorique, donc on a 2 autres


méthodes en pratique de remplissage d’un tableau :

 Remplissage d’un tableau (déclaration de la liste en 0) :


Pour s’approcher d’une traduction similaire à la méthode théorique, on va faire une
affectation directement sur T[i] lors du saisie.

Mais, on doit donner des valeurs de 0 (ou autre) à tous les éléments du tableau car, on ne peut
affecter une valeur à T[i] qui n’est pas encore définie.

ac
16 _b
kt
53 ma
2
55 or
0
:F
ac ok

 Remplissage d’un tableau (avec la bibliothèque numpy) :


nt bo
t:
Co ce
Fa
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


71

NumPy est une bibliothèque dans le langage de programmation Python

La structure de données principale dans NumPy est le ndarray, qui est un nom abrégé pour
un tableau à N dimensions. Lorsque vous travaillez avec NumPy, les données d'un ndarray
sont simplement appelées un tableau. Il s'agit d'un tableau de taille fixe en mémoire qui
contient des données du même type, telles que des nombres entiers ou des valeurs chaines.

Remarque : x = int() c’est-à-dire x = 0 et ch = str() c’est-à-dire ch = ’’ (chaine vide)

Ou on peut écrire aussi :

ac
16 _b
kt
53 ma
2
55 or
0
:F
ac ok
nt bo
t:
Co ce
Fa

Exercice :
ge

Ecrire un programme qui permet de remplir un tableau T1 de N1 entiers naturels de trois


chiffres (1 < N1<100) et on se propose de remplir et afficher un tableau T2 de la façon
Pa

suivante :
T2[i]= somme des carrées des chiffres de T1[i]
Exemple : T1[2]= 254 alors T2[2]= 22+52+42 = 45

Correction de l’exercice
Algorithme :

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


72

Début Ex1_tableau
Répéter
Ecrire(‘Donner la taille du tableau’)
Lire(N1)
Jusqu’à 1<N1<100
Pour i de 0 à N1-1 faire
Répéter
Lire(T1[i])
Jusqu’à 100 T1[i]999
Fin Pour
Pour i de 0 à N1-1 faire
u=T1[i] mod 10
d = (T1[i] mod 100)div 10
c = T1[i] div 100
T2[i] = u2 + d2 + c2
Fin Pour

ac
Ecrire(T2)
Fin Ex1_tableau

16 _b
TDO

kt
Objet Type/Nature Rôle
N1 Entier Taille du tableau

53 ma
2
T1 tab1 Tableau des entiers
i Entier Compteur
55 or
T2 tab2 Tableau des entiers
TDNT

0
:F
Type
tab1=Tableau de 100 entiers naturels de 3 chiffres
tab2=Tableau de 100 entiers naturels
ac ok

Python :
nt bo
t:
Co ce
Fa
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


73

6. Le maximum / minimum dans un tableau


Pour chercher le maximum ou le minimum dans un tableau il faut d’abord créer une variable
maxi (voir mini) et on lui affecte la valeur de la première case, puis parcourir le tableau case
par case et vérifier à chaque fois si T[i] > maxi (voir T[i] < mini) ou non, si c’est le cas on
change la valeur de la variable maxi (mini) par T[i]

ac
16 _b
kt
53 ma
2
55 or
0
:F

Exercice longueur maximale des chaînes


ac ok

Exercice:
nt bo

Elaborer un programme qui permet de remplir un tableau T par n chaines de caractères


t:
Co ce

(4<n<20), cherche et affiche la longueur de la chaîne la plus longue puis affiche toutes les
chaînes ayant cette longueur
Fa

Correction de l’exercice
ge

Algorithme :
Pa

Début Ex2_tableau
Répéter
Ecrire(‘Donner la taille du tableau’)
Lire(n)
Jusqu’à 4<N1<20
Pour i de 0 à n-1 faire
Lire(T[i])
Fin Pour
maxi  long(T[0])

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


74

Pour i de 1 à n-1 faire


si long(T[i]) > maxi alors maxi  long(T[i])
Fin Si
Fin Pour
Ecrire(maxi)
Pour i de 0 à n-1 faire
Si long(T[i])=maxi alors Ecrire (T[i])
Fin Si
Fin Pour
Fin Ex2_tableau

TDO
Objet Type/Nature Rôle
n Entier Taille du tableau
T tab Tableau de n chaînes
de caractères

ac
i Entier Compteur
maxi Entier La longueur

16 _b
maxiamel

kt
TDNT
Type

53 ma
2
tab=Tableau de 20chaine de caractères
55 or
Python :

0
:F
ac ok
nt bo
t:
Co ce
Fa
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


75

Sous-Programme
Les sous-programmes sont ainsi le moyen pour le programmeur de définir ses propres
instructions et opérateurs. On appelle généralement fonction un sous-programme qui retourne
un résultat et peut donc être utilisé comme une fonction. C’est le cas de la fonction cube ci-
avant. On appelle procédure un sous-programme qui ne retourne pas de valeur. Une
procédure se comporte donc comme une instruction.

Avantages des sous programmes.

● Les sous programmes permettent de ne pas répéter plusieurs fois une même séquence
d’instructions au sein du programme.

● Un organisation meilleur du programme

● Facilite la maintenance et la recherche des bugs dans un programme

ac
● Un sous programmes peut être intégré à un autre programme, ou elle pourra être rangée

16 _b
dans une bibliothèque d’outils ou il pourra être utilisé par n’importe quel programme.

kt
Un sous-programme peut-être une procédure ou une fonction.

53 ma
2
55 or
Sous-programme Syntaxe

0
:F

1. Procédure
ac ok

En général la syntaxe de la procédure est :


nt bo

Procédure nom_procédure (Mode de passage + Liste des paramètres formels : Type)


t:
Co ce

Début
Fa


………..
……….. Traitement
ge

Fin
Pa

Exemple :

Procédure Saisie ( @ n : entier)

Début

Répéter

Ecrire(’’ Donner un entier’’)

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


76

Lire (n)

Jusqu’à (n>=0) et (n<=20)

Fin

 Mode de passage : (Passage par valeur ou passage par variable) :

Si le contenu d’une une variable globale dans une procédure change en passant par le
traitement, on écrit « @ » avant la variable dans l’entête de la déclaration de la procédure (on
appelle ça passage par variable) sinon on n’écrit rien (on appelle ça passage par valeur)

La notion du mode de passage est valable seulement pour les procédures.

Appel d’une procédure :

ac
On appelle une procédure dans le programme principal au-dessus de la déclaration du sous-
programme ou dans un autre sous-programme.

16 _b
Exemple :

kt
Saisie (n)

53 ma
2
En général la syntaxe de l’appel d’une procédure est :
55 or
nom_procédure (paramètres effectifs)

0
:F

Exemple Python :
ac ok
nt bo
t:
Co ce
Fa
ge
Pa

2. Fonction
On appelle un algorithme en tant que fonction, tout traitement qui a pour objectif le calcul ou
la détermination d’un seul résultat, retourne une seule variable comme résultat final.

En général la syntaxe de la procédure est :

Fonction nom_fonction (Liste des paramètres formels : Type) : Type du résultat retourné

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


77

Début


………..
Traitement
………..
Retourner nom_variable contenant le résultat calculé

Fin

Appel d’une fonction :

On appelle une fonction dans le programme principal au-dessus de la déclaration du sous-


programme ou dans un autre sous-programme.

Exemple

p  somme (n)

ac
Écrire (p)

16 _b
Remarque : p est une autre variable qui reçoit le résultat de la fonction

En général la syntaxe de l’appel d’une procédure est :

kt
53 ma
p  nom_procédure (paramètre formel)

2
En pratique, on peut utiliser des procédures en tant que fonction, cela est nécessaire lorsqu’on
55 or
va utiliser le résultat de la procédure dans un autre sous-programme en suite.

0
:F

Exemple :
ac ok
nt bo
t:
Co ce
Fa
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


78

Ici, le sous-programme Affichage_diviseurs nécessite la variable n dans son fonctionnement


donc, elle doit être définit comme variable globale dans le programme principal.

 C’est mieux de définir le sous-programme Saisie comme fonction pour retourner n


facilement dans le programme principal.
Il existe une autre méthode peu utilisée, c’est d’utiliser l’algorithme de saisie ou autre
algorithme en tant que procédure et non pas une fonction, cela se fait en ajoutant la variable
globale devant l’instruction global en python, c’est-à-dire cette sera globale est visible pour
tout le programme.

Exemple :

ac
16 _b
kt
53 ma
2
55 or
0
:F
ac ok
nt bo
t:
Co ce

 Paramètre formel et paramètre effectif :


Fa

Exemple :

{Déclaration}
ge

Fonction Somme ( x : entier ) : entier


Pa

Début

s0

Pour i de 1 à x faire

Si x mod i = 0 alors

ss+1

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


79

Fin Si

Fin Pour

Retourner s

Fin

{Appel}

Ecrire (‘’Donner un entier’’)

Lire (n)

p  Somme (n)

Écrire (p)

ac
Ou on peut afficher la somme comme ça : Écrire (Somme (n))

16 _b
Exemple Python :

kt
53 ma
2
55 or
0
:F
ac ok
nt bo
t:
Co ce
Fa
ge
Pa

 Paramètres effectifs / Paramètres formels :

On appelle x paramètre formels c’est-à-dire il prend un nom de variable quelconque lors de la


déclaration du sous-programme mais après dans l’appelle de la fonction, le programme
fonctionne réellement avec m et n qui sont des paramètres effectifs.

La notion des paramètres formels et effectifs est valable aussi pour les procédures.

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


80

 Variable globale et variable locale :

 Variable locale
Une variable locale est une variable déclarée dans un sous-programme. Elle n’est accessible
que depuis ce sous-programme.
Remarque : Un paramètre est l’équivalent d’une variable locale initialisée lors de l’appel du
sous-programme alors qu’une variable locale est une variable qui est initialisée dans le sous-
programme et ne sera pas accessible de l’extérieur de ce sous-programme.

 Variable globale
Une variable globale est une variable qui est potentiellement accessible de plusieurs sous-
programmes. Une variable est donc dite globale si sa portée inclut plusieurs sous-
programmes.

ac
Application avec sous-programme :

16 _b
kt
Exercice :

53 ma
2
Élaborer un programme qui permet de saisir un vecteur T par n chaînes de caractères (4< n
<20), cherche et affiche la longueur de la chaîne la plus longue puis affiche toutes les chaînes
55 or
ayant cette longueur.

0
:F

Correction Théorique :
ac ok

Procédure Saisie (@ n : entier)


nt bo

Début
t:
Co ce

Répéter
Fa

Ecrire (‘’Donner le nombre des éléments’’)

Lire (n)
ge

Jusqu’à n >4 et n <20


Pa

Fin

Procédure Remplissage (n : entier, @T : Tab)

Début

Pour i de 0 à n – 1 faire

Ecrire (‘’Donner T[‘’,i,’’]’’)

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


81

Lire (T[i])

Fin Pour

Fin

T.D.O.L

Objet T/N Rôle


i entier compteur

Fonction Lmax (n : entier, T : Tab) : entier

Début

maxi  long (T[0])

ac
Pour i de 1 à n-1 faire

16 _b
Si long(T[i]) > maxi alors

kt
maxi  T[i]

53 ma
2
Fin Si 55 or
Fin Pour

0
:F
Retourner maxi

Fin
ac ok

T.D.O.L
nt bo

Objet T/N Rôle


t:
Co ce

i entier compteur
maxi entier La longueur maximale des chaines du tableau
Fa
ge

Procédure Affichage (n : entier, T : Tab)

Début
Pa

Pour i de 0 à n-1 faire

Si long (T[i]) = Lmax (n,T) alors

Ecrire(T[i])

Fin Si

Fin Pour

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


82

Fin

T.D.O.L

Objet T/N Rôle


i entier compteur
Lmax fonction Déterminer la longueur maximale des chaines

Programme principal

Début

Saisie (n)

Remplissage (n,T)

ac
Affichage (n,T)

16 _b
Fin

kt
T.D.N.T

53 ma
Type

2
Tab = tableau de 19 chaines 55 or
T.D.O.G

0
Objet T/N Rôle
:F

n entier donnée
T Tab Tableau de chaines
ac ok

Saisie procédure Saisie du nombre des éléments


Remplissage procédure Remplissage du tableau
nt bo

Affichage procédure Affichage des chaines ayant la longueur maximale


Python:
t:
Co ce
Fa
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162


83

ac
16 _b
kt
53 ma
2
55 or
0
:F
ac ok
nt bo
t:
Co ce
Fa
ge
Pa

Préparation de la matière informatique du 1ère au Bac

Facebook : Formakt_bac - Contact : 55530162

Common questions

Alimenté par l’IA

The algorithm must iterate through the string, and for each character, check if it is a space. If it is, the algorithm replaces it with an underscore or appends the current count of encountered spaces to the result. This guarantees the targeted transformation without altering other characters. Ensuring accuracy requires careful handling of indices and counters to maintain correct positioning and counts .

A function that determines the length of the longest string iterates over an array of strings, comparing each string’s length to find and return the maximum. Integrating such a function centralizes the logic for this specific task, making the main program simpler and more readable by delegating complexity to the function. This also improves maintainability, as changes are localized to the function itself, and facilitates reusability across different programs needing the same logic .

Procedures perform actions but do not return values; they are used to encapsulate and repeat sequences of instructions, making code maintenance easier and improving readability. Functions, on the other hand, compute and return values, allowing their results to be directly used within expressions. Using procedures can simplify code by avoiding redundancy, while functions facilitate calculations and data transformations within a program, enhancing modularity and clarity .

The initialization issue in loops can be resolved by ensuring variables are initialized before the loop begins. For summing integers or concatenating strings, the variable that accumulates the result should be initialized to zero or an empty string respectively, before entering the loop. This prevents errors or incorrect results due to reinitialization at each iteration .

Global variables are accessible from multiple sub-programs, promoting shared state across the program, which can be advantageous for maintaining consistent data but risks unintended interactions and makes debugging harder. Local variables, confined to their sub-program, offer more control and reduce potential side effects, promoting modularity and reducing the impact of changes, crucial for maintaining complex algorithms in larger codebases by containing complexity and preventing external interference .

Improved error handling when concatenating strings involves initializing the destination string to an empty value before the loop begins. This ensures that any concatenation starts from an empty baseline, preventing undefined or unpredictable behavior if the variable were uninitialized. Proper initialization eliminates runtime errors related to use of undefined data, thus stabilizing program execution and making the code more robust against faulty inputs or logic .

Procedures encapsulate repetitive tasks, allowing them to be defined once and reused multiple times, thus reducing code duplication and enhancing program efficiency. For example, input validation or specific calculations like summing a series of numbers can be abstracted within a procedure, making the main program cleaner and more efficient by avoiding repetition and centralizing logic for easier maintenance .

The iteration logic should iterate through the string while checking each character’s index against the specified positions. If a match is found, the character is replaced while preserving other characters unaltered. This requires carefully controlling the loop’s boundary conditions and ensuring that replacements do not affect non-target positions. Efficiency can be enhanced by combining checks and replacements in minimal passes, thereby reducing complexity and runtime .

The algorithm multiplies sequential numbers from 1 to the target number using a loop, initializing the result to one, reflecting on iterative problem-solving by decomposing the problem into repetitive multiplication steps. This approach is straightforward, leveraging a stepwise accumulation of results to solve the factorial problem iteratively, illustrating a fundamental technique in algorithm development that breaks complex operations into repeatable and manageable units .

Converting characters to integers is crucial in algorithms for summing the digits of an integer, as it allows the numerical manipulation needed for the summation. In these algorithms, character representations of digits must be converted to their integer equivalents, often using functions that map character encodings to numeric values, ensuring accurate calculations without rebuilding the string inadvertently .

Vous aimerez peut-être aussi