Cours d’informatique
Cours d’informatique
MPSI-PCSI
Adnan SOURI
CPGE - Tanger 1/275
2019/2020
En cas de problèmes : [Link]@[Link] CPGE - Tanger 1/275
Cours d’informatique
Cours d’informatique
Plan
1 Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
Généralités sur les (S.I)
Composants de base
Système d’exploitation
2 Chapitre 2 : Représentation des données
Représentation des nombres
Représentation de textes
Représentation des couleurs
3 Chapitre 3 : Algorithmique et programmation
Variables
Instructions d’entrée/sortie (Lire/Ecrire)
Test (Si - Sinon - Fin Si)
Boucle (Pour - Tant que)
Tableaux
4 Chapitre 4 : Algorithmique et programmation (Langage Python)
Variables
Instructions d’entrée/sortie (input - print)
Test (if - else - elif)
Boucle (for - while)
5 Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les séquences : Les chaînes de caractères
Les séquences : Les tuples
Les séquences : Les listes
Les ensembles (set)
Les dictionnaires
6 Chapitre 6 : Les fichiers de textes
En cas de problèmes : [Link]@[Link] CPGE - Tanger 2/275
7 Chapitre 7 : Traitement des erreurs : les exceptions
Cours d’informatique
Cours d’informatique
Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
1 Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
Généralités sur les (S.I)
Composants de base
Système d’exploitation
2 Chapitre 2 : Représentation des données
3 Chapitre 3 : Algorithmique et programmation
4 Chapitre 4 : Algorithmique et programmation (Langage Python)
5 Chapitre 5 : La programmation modulaire et les séquences
6 Chapitre 6 : Les fichiers de textes
7 Chapitre 7 : Traitement des erreurs : les exceptions
8 Chapitre 8 : Programmation orientée objet (POO)
9 Chapitre 9 : Ingénierie numérique et simulation
En cas de problèmes : [Link]@[Link] CPGE - Tanger 3/275
Cours d’informatique
Cours d’informatique
Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
Généralités sur les (S.I)
Notion de l’informatique
Informatique : il est composé
des deux mots : information
et automatique.
Informatique : ensemble des
disciplines scientifiques du
traitement automatique de
l’information, à l’aide des ma-
chines automatiques.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 4/275
Cours d’informatique
Cours d’informatique
Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
Généralités sur les (S.I)
Notion de l’ordinateur
Comment et où les ordinateurs
sont utilisés ?
Les ordinateurs jouent un rôle im-
portant et indispensable dans la
vie de chaque jour. Ils couvrent
tous les types d’environnements :
Entreprise,
Chez-soi,
Hôpitaux et centres médi-
caux,
Ecoles, universités,
Voitures, avions,
...
En cas de problèmes : [Link]@[Link] CPGE - Tanger 5/275
Cours d’informatique
Cours d’informatique
Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
Généralités sur les (S.I)
Notion de l’ordinateur
L’ordinateur est une machine électronique de traitement de l’in-
formation capable d’exécuter un ensemble d’instructions et de
stocker n’importe quelles données en un temps très court et sans
risque d’erreurs.
Une tablette numérique, un téléphone portable (smartphone),...
sont des ordinateurs, au même titre qu’un ordinateur de bureau.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 6/275
Cours d’informatique
Cours d’informatique
Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
Généralités sur les (S.I)
Notion de l’ordinateur
Pour effectuer le traitement automatiquement des informations, 2
choses doivent cohabiter (travaillent ensemble) :
Matériels Logiciels
Composantes physiques internes Système d’exploitation : En-
ou externes d’un ordinateur. semble de programmes qui pi-
lotent les matériels d’un ordi-
nateur (Windows,...).
Logiciels d’application : Pro-
grammes chargées dans l’or-
dinateur pour réaliser une
fonction précise (Word,...).
En cas de problèmes : [Link]@[Link] CPGE - Tanger 7/275
Cours d’informatique
Cours d’informatique
Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
Composants de base
Environnement matériel et logiciel
En cas de problèmes : [Link]@[Link] CPGE - Tanger 8/275
Cours d’informatique
Cours d’informatique
Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
Composants de base
Périphériques
En cas de problèmes : [Link]@[Link] CPGE - Tanger 9/275
Cours d’informatique
Cours d’informatique
Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
Composants de base
Périphériques
En cas de problèmes : [Link]@[Link] CPGE - Tanger 10/275
Cours d’informatique
Cours d’informatique
Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
Composants de base
A noter :
Microprocesseur : Circuit électronique complexe qui exécute
des instructions en quelques cycles d’horloges (unité élémentaire
de temps d’un ordinateur).
Mémoire vive : C’est la mémoire RAM ; Random Access Me-
mory (Mémoire à accès aléatoire). C’est une mémoire en lecture-
écriture. Mémoire volatile car toutes les données sont perdues à
l’élimination de l’alimentation électrique.
Mémoire morte : C’est la mémoire ROM ; Read-Only Memory.
C’est une mémoire informatique non volatile, contient des pro-
grammes (BIOS) nécessaires au démarrage d’un ordinateur.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 11/275
Cours d’informatique
Cours d’informatique
Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
Composants de base
A noter :
Mémoire de masse : Mémoire de grande capacité, non volatile
et qui peut être lue et écrite par un ordinateur. Par exemple :
Disque dur, CD-ROM, DVD-ROM, Disque externe.
Périphériques : Dispositifs connectés à un ordinateur qui
servent à y fournir des informations (entrée) ou/et y faire sor-
tir des informations (sortie). On peut également rencontrer des
périphériques d’entrée-sortie qui opèrent dans les deux sens : un
graveur de CD-ROM ...
En cas de problèmes : [Link]@[Link] CPGE - Tanger 12/275
Cours d’informatique
Cours d’informatique
Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
Composants de base
Ports et Connecteurs
Les connecteurs informatiques (On dit également : Port, interface
ou encore, connecteurs d’entrée-sortie), sont des liaisons permettant
de relier à l’ordinateur des équipements ou périphériques en utilisant
des câbles ou des liaisons sans fil.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 13/275
Cours d’informatique
Cours d’informatique
Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
Composants de base
A noter :
Port USB : L’Universal Serial Bus. Le bus USB permet de
connecter des périphériques en bénéficiant du Plug and Play
(permettant aux périphériques d’être reconnus rapidement et
automatiquement par le système d’exploitation dès le branche-
ment du matériel, et sans redémarrage de l’ordinateur).
Port PS/2 : Sigle de Personal System/2, est un port de
connexion de dimensions réduites pour souris ou clavier.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 14/275
Cours d’informatique
Cours d’informatique
Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
Composants de base
A noter :
Port Rj45 : Une des principaux connecteurs de carte réseau
pour les réseaux.
Port Rj11 : Le connecteur le plus utilisé pour les lignes
téléphoniques.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 15/275
Cours d’informatique
Cours d’informatique
Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
Composants de base
A noter :
Port VGA : Ce type de connecteur équipe notam-
ment la plupart des cartes graphiques en permettant d’envoyer
à l’écran 3 signaux analogiques correspondant aux composantes
rouges, bleues et vertes de l’image.
Port HDMI : (High Definition Multimedia Interface)
est une interface numérique permettant le transfert de données
multimédia (audio et vidéo).
...
En cas de problèmes : [Link]@[Link] CPGE - Tanger 16/275
Cours d’informatique
Cours d’informatique
Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
Composants de base
Carte mère
Carte mère : Carte électronique qui permet aux différents composants
de communiquer via différents bus de communication.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 17/275
Cours d’informatique
Cours d’informatique
Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
Composants de base
A noter :
Chipset : Pour gérer les flux de données numériques entre le
processeur, la mémoire et les périphériques.
Connecteurs SATA : Pour brancher les disques durs, lecteurs et
graveurs.
Ports d’extension AGP, PCI, ISA, ... : Pour accueillir des cartes
d’extension et d’ajouter des capacités ou des fonctionnalités à
un ordinateur.
Pile CMOS : Permettre l’ordinateur de rester a l’heure et à la
date exacte même débranché.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 18/275
Cours d’informatique
Cours d’informatique
Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
Système d’exploitation
Définition
Système d’exploitation S.E. : est un ensemble de logiciels (pro-
grammes) qui permettent l’exploitation d’une machine informatique.
Exemples : Windows, Unix, ...
En cas de problèmes : [Link]@[Link] CPGE - Tanger 19/275
Cours d’informatique
Cours d’informatique
Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
Système d’exploitation
Objectifs
Gestion de l’enchaînement des tâches en tenant compte des
priorités.
Gestion des Entrées/Sorties (lecture et écriture, impression, af-
fichage sur écran...)
Gestion des mémoires et de microprocesseur.
Prise en charge d’éventuelles erreurs détectées.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 20/275
Cours d’informatique
Cours d’informatique
Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
Système d’exploitation
Les types d’un système d’exploitation
S.E. Mono-tâche : On ne peut exécuter qu’un seul programme
à la fois.
S.E. Multi-tâches : Lorsque plusieurs programmes peuvent être
exécutées simultanément.
S.E. Mono-utilisateur : Lorsqu’un seul utilisateur peut utiliser
l’ordinateur.
S.E. Multi-utilisateurs : Lorsque plusieurs utilisateurs peuvent
manipuler simultanément l’ordinateur.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 21/275
Cours d’informatique
Cours d’informatique
Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
Système d’exploitation
Schéma fonctionnel
Ordinateur = Machine qui saisit (périphériques d’entrée), stocke
(mémoire), traite (programmes) et restitue (périphériques de
sortie) des informations.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 22/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
1 Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
2 Chapitre 2 : Représentation des données
Représentation des nombres
Représentation de textes
Représentation des couleurs
3 Chapitre 3 : Algorithmique et programmation
4 Chapitre 4 : Algorithmique et programmation (Langage Python)
5 Chapitre 5 : La programmation modulaire et les séquences
6 Chapitre 6 : Les fichiers de textes
7 Chapitre 7 : Traitement des erreurs : les exceptions
8 Chapitre 8 : Programmation orientée objet (POO)
9 Chapitre 9 : Ingénierie numérique et simulation
En cas de problèmes : [Link]@[Link] CPGE - Tanger 23/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Notions de codage
Exemple 1
Nous utilisons le codage chaque jour :
11,
onze,
XI,
...
Mais c’est toujours le même nombre.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 24/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Notions de codage
Exemple 2
Si on demande le nom correspondant à l’image :
À un arabophone, il répond :
À un francophone, il répond : maison
À un anglo-saxon, il répond : house
...
Mais c’est toujours la même image, seule le nom la désignant change.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 25/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Notions de codage
Comment l’information est représentée dans l’ordinateur ?
En cas de problèmes : [Link]@[Link] CPGE - Tanger 26/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire
Les mémoires mémorisent, transmettent et transforment des
données (nombres, textes, images, sons, ...) par une suite de
chiffres binaires (bits).
Un bit ne peut prendre que deux valeurs : 0 et 1.
En pratique la mémoire est organisée en octets (paquets de 8
bits).
En cas de problèmes : [Link]@[Link] CPGE - Tanger 27/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Entiers naturels
Le système binaire est un système de numération utilisant la
base 2.
Par exemple le nombre décimal (243)10 se note : (11 110 011)2
Sa décomposition est la suivante...
En cas de problèmes : [Link]@[Link] CPGE - Tanger 28/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Entiers naturels
En faisant des divisions entières successives par 2, on obtient
une suite de restes (en bleu).
En lisant les restes du bas vers le haut on obtient :
(11 110 011)2 .
En cas de problèmes : [Link]@[Link] CPGE - Tanger 29/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Entiers naturels
La numération décimale peut être construite à partir de la nu-
mération binaire en utilisant cette méthode :
Par exemple, à partir de cette représentation (11 110 011)2 on
obtient le nombre décimal :
(1 x 27 ) + (1 x 26 ) + (1 x 25 ) + (1 x 24 ) + (0 x 23 ) + (0 x
22 ) + (1 x 21 ) + (1 x 20 ) = 128 + 64 + 32 + 16 + 0 + 0 +
2 + 1 = (243)10
En cas de problèmes : [Link]@[Link] CPGE - Tanger 30/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Entiers naturels
Exercice
Trouver la représentation en base binaire de : (67)10 , (128)10 et
(566)10 .
Trouver la représentation en base décimale de : (11 101 010)2
et (1 010 101 010 100 001)2 .
En cas de problèmes : [Link]@[Link] CPGE - Tanger 31/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Entiers signés
Un entier signé sera représenté en binaire comme un entier na-
turel.
La seule différence que le bit de poids fort (le bit situé à l’extrême
gauche) représente le signe.
(0 correspond à un signe positif et 1 à un signe négatif).
En cas de problèmes : [Link]@[Link] CPGE - Tanger 32/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Entiers signés
Méthode de codage
Un entier signé sera représenté grâce au codage en complément à
deux.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 33/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Entiers signés
Exemple
On désire coder la valeur (-19)10 sur 8 bits. Il suffit :
d’écrire (|-19|)10 en binaire : (19)10 = (00 010 011)2
d’écrire son complément à 1 : (19)10 = (11 101 100)2
et d’ajouter 1 : + 1
complément à 2 = (11 101 101)2
La représentation binaire de (-19)10 sur 8 bits est : (11 101 101)2 .
En cas de problèmes : [Link]@[Link] CPGE - Tanger 34/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Entiers signés
Exemple
On désire coder la valeur (-19)10 sur 8 bits. Il suffit :
d’écrire (|-19|)10 en binaire : (19)10 = (00 010 011)2
d’écrire son complément à 1 : (19)10 = (11 101 100)2
et d’ajouter 1 : + 1
complément à 2 = (11 101 101)2
La représentation binaire de (-19)10 sur 8 bits est : (11 101 101)2 .
En cas de problèmes : [Link]@[Link] CPGE - Tanger 34/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Entiers signés
Exemple
On désire coder la valeur (-19)10 sur 8 bits. Il suffit :
d’écrire (|-19|)10 en binaire : (19)10 = (00 010 011)2
d’écrire son complément à 1 : (19)10 = (11 101 100)2
et d’ajouter 1 : + 1
complément à 2 = (11 101 101)2
La représentation binaire de (-19)10 sur 8 bits est : (11 101 101)2 .
En cas de problèmes : [Link]@[Link] CPGE - Tanger 34/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Entiers signés
Conversion d’un nombre binaire négatif en décimal
Exemple : soit à convertir (11 101 101)2 en décimal
Méthode : complément à 2
(11 101 101)2
complément à 1 : (00 010 010)2
complément à 2 : (00 010 011)2
(00 010 011)2 = (19)10
(11 101 101)2 = (-19)10
En cas de problèmes : [Link]@[Link] CPGE - Tanger 35/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Entiers signés
Conversion d’un nombre binaire négatif en décimal
Exemple : soit à convertir (11 101 101)2 en décimal
Méthode : complément à 2
(11 101 101)2
complément à 1 : (00 010 010)2
complément à 2 : (00 010 011)2
(00 010 011)2 = (19)10
(11 101 101)2 = (-19)10
En cas de problèmes : [Link]@[Link] CPGE - Tanger 35/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Entiers signés
Exercice
Codez les entiers signés suivants sur 8 bits (16 si nécessaire) :
(-56)10 , (-233)10 , (456)10 .
Que valent en base dix les trois entiers signés suivants :
(01 101 100)2 , (11 001 101)2 et (1 010 101 010 101 010)2 ?
En cas de problèmes : [Link]@[Link] CPGE - Tanger 36/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Nombres réels : Virgule fixe
En base 10, l’expression (652,375)10 signifie :
6x102 + 5x101 + 2x100 + 3x10−1 + 7x10−2 + 5x10−3
De même pour la base 2, l’expression (110,101)2 signifie :
1x22 + 1x21 + 0 x 20 + 1x2−1 + 0x2−2 + 1x2−3
Exemple : On peut ainsi facilement convertir un nombre réel de la
base 2 vers la base 10 :
(110,101)2 = 1x22 + 1x21 + 0 x 20 + 1x2−1 + 0x2−2 + 1x2−3
= 4 + 2 + 0,5 + 0,125 = (6,625)10 .
En cas de problèmes : [Link]@[Link] CPGE - Tanger 37/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Nombres réels : Virgule fixe
Exercice
Transformez (0,010 101 010 1)2 et (11 100,100 01)2 en base
10.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 38/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Nombres réels : Virgule fixe
Conversion de décimal en binaire
Par exemple : convertissons (1234,347)10 en base 2.
La partie entière se transforme comme :
(1234)10 = (10 011 010 010)2
On transforme la partie décimale selon le schéma suivant :
0,347 x 2 = 0,694 ⇒ (0,347)10 = (0,0...)2
0,694 x 2 = 1,388 ⇒ (0,347)10 = (0,01...)2
0,388 x 2 = 0,766 ⇒ (0,347)10 = (0,010...)2
0,766 x 2 = 1,552 ⇒ (0,347)10 = (0,0101...)2
0,552 x 2 = 1,104 ⇒ (0.347)10 = (0,01011...)2
⇒ (1234,347)10 = (10 011 010 010,010 11...)2
En cas de problèmes : [Link]@[Link] CPGE - Tanger 39/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Nombres réels : Virgule fixe
Conversion de décimal en binaire
Par exemple : convertissons (1234,347)10 en base 2.
La partie entière se transforme comme :
(1234)10 = (10 011 010 010)2
On transforme la partie décimale selon le schéma suivant :
0,347 x 2 = 0,694 ⇒ (0,347)10 = (0,0...)2
0,694 x 2 = 1,388 ⇒ (0,347)10 = (0,01...)2
0,388 x 2 = 0,766 ⇒ (0,347)10 = (0,010...)2
0,766 x 2 = 1,552 ⇒ (0,347)10 = (0,0101...)2
0,552 x 2 = 1,104 ⇒ (0.347)10 = (0,01011...)2
⇒ (1234,347)10 = (10 011 010 010,010 11...)2
En cas de problèmes : [Link]@[Link] CPGE - Tanger 39/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Nombres réels : Virgule fixe
Conversion de décimal en binaire
Par exemple : convertissons (1234,347)10 en base 2.
La partie entière se transforme comme :
(1234)10 = (10 011 010 010)2
On transforme la partie décimale selon le schéma suivant :
0,347 x 2 = 0,694 ⇒ (0,347)10 = (0,0...)2
0,694 x 2 = 1,388 ⇒ (0,347)10 = (0,01...)2
0,388 x 2 = 0,766 ⇒ (0,347)10 = (0,010...)2
0,766 x 2 = 1,552 ⇒ (0,347)10 = (0,0101...)2
0,552 x 2 = 1,104 ⇒ (0.347)10 = (0,01011...)2
⇒ (1234,347)10 = (10 011 010 010,010 11...)2
En cas de problèmes : [Link]@[Link] CPGE - Tanger 39/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Nombres réels : Virgule fixe
Exercice
Transformez (12,910)10 , (0,562510)10 et (0,1510)10 en base 2.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 40/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Nombres réels : La norme IEEE 754
(Virgule flottante)
Cette norme propose de coder un nombre sur 32 bits et définit trois
composantes :
Le Signe est représenté par un seul bit, le bit de poids fort,
L’Exposant est codé sur les 8 bits consécutifs au signe,
La Mantisse (bits situés après la virgule) sur les 23 bits restants.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 41/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Nombres réels : La norme IEEE 754
(Virgule flottante)
Exemple : Traduisons en binaire, le nombre (40)10
Signe : + ⇒ 0
Codons la valeur absolue en binaire : (40)10 = (101 000)2
Nous mettons ce nombre sous la forme : 1,mantisse
101 000 = 1,010 00x25 (25 décale la virgule de 5 chiffres vers
la droite)
Mantisse étendue sur 23 bits est donc :
010 00 000 000 000 000 000 000
Exposant = 127 + 5 = (132)10 = (10 000 100)2
(40)10 = (0 10 000 100 010 00 000 000 000 000 000 000)2
En cas de problèmes : [Link]@[Link] CPGE - Tanger 42/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Nombres réels : La norme IEEE 754
(Virgule flottante)
Exemple : Traduisons en binaire, le nombre (40)10
Signe : + ⇒ 0
Codons la valeur absolue en binaire : (40)10 = (101 000)2
Nous mettons ce nombre sous la forme : 1,mantisse
101 000 = 1,010 00x25 (25 décale la virgule de 5 chiffres vers
la droite)
Mantisse étendue sur 23 bits est donc :
010 00 000 000 000 000 000 000
Exposant = 127 + 5 = (132)10 = (10 000 100)2
(40)10 = (0 10 000 100 010 00 000 000 000 000 000 000)2
En cas de problèmes : [Link]@[Link] CPGE - Tanger 42/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Nombres réels : La norme IEEE 754
(Virgule flottante)
Exemple : Traduisons en binaire, le nombre (40)10
Signe : + ⇒ 0
Codons la valeur absolue en binaire : (40)10 = (101 000)2
Nous mettons ce nombre sous la forme : 1,mantisse
101 000 = 1,010 00x25 (25 décale la virgule de 5 chiffres vers
la droite)
Mantisse étendue sur 23 bits est donc :
010 00 000 000 000 000 000 000
Exposant = 127 + 5 = (132)10 = (10 000 100)2
(40)10 = (0 10 000 100 010 00 000 000 000 000 000 000)2
En cas de problèmes : [Link]@[Link] CPGE - Tanger 42/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Nombres réels : La norme IEEE 754
(Virgule flottante)
Exemple : Traduisons en binaire, le nombre (40)10
Signe : + ⇒ 0
Codons la valeur absolue en binaire : (40)10 = (101 000)2
Nous mettons ce nombre sous la forme : 1,mantisse
101 000 = 1,010 00x25 (25 décale la virgule de 5 chiffres vers
la droite)
Mantisse étendue sur 23 bits est donc :
010 00 000 000 000 000 000 000
Exposant = 127 + 5 = (132)10 = (10 000 100)2
(40)10 = (0 10 000 100 010 00 000 000 000 000 000 000)2
En cas de problèmes : [Link]@[Link] CPGE - Tanger 42/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Nombres réels : La norme IEEE 754
(Virgule flottante)
Exemple : Traduisons en binaire, le nombre (40)10
Signe : + ⇒ 0
Codons la valeur absolue en binaire : (40)10 = (101 000)2
Nous mettons ce nombre sous la forme : 1,mantisse
101 000 = 1,010 00x25 (25 décale la virgule de 5 chiffres vers
la droite)
Mantisse étendue sur 23 bits est donc :
010 00 000 000 000 000 000 000
Exposant = 127 + 5 = (132)10 = (10 000 100)2
(40)10 = (0 10 000 100 010 00 000 000 000 000 000 000)2
En cas de problèmes : [Link]@[Link] CPGE - Tanger 42/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Nombres réels : La norme IEEE 754
(Virgule flottante)
Exemple : Traduisons en binaire, le nombre (40)10
Signe : + ⇒ 0
Codons la valeur absolue en binaire : (40)10 = (101 000)2
Nous mettons ce nombre sous la forme : 1,mantisse
101 000 = 1,010 00x25 (25 décale la virgule de 5 chiffres vers
la droite)
Mantisse étendue sur 23 bits est donc :
010 00 000 000 000 000 000 000
Exposant = 127 + 5 = (132)10 = (10 000 100)2
(40)10 = (0 10 000 100 010 00 000 000 000 000 000 000)2
En cas de problèmes : [Link]@[Link] CPGE - Tanger 42/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Nombres réels : La norme IEEE 754
(Virgule flottante)
Exemple : Traduisons en binaire, le nombre (40)10
Signe : + ⇒ 0
Codons la valeur absolue en binaire : (40)10 = (101 000)2
Nous mettons ce nombre sous la forme : 1,mantisse
101 000 = 1,010 00x25 (25 décale la virgule de 5 chiffres vers
la droite)
Mantisse étendue sur 23 bits est donc :
010 00 000 000 000 000 000 000
Exposant = 127 + 5 = (132)10 = (10 000 100)2
(40)10 = (0 10 000 100 010 00 000 000 000 000 000 000)2
En cas de problèmes : [Link]@[Link] CPGE - Tanger 42/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Nombres réels : La norme IEEE 754
(Virgule flottante)
Exemple : Traduisons en binaire, le nombre (40)10
Signe : + ⇒ 0
Codons la valeur absolue en binaire : (40)10 = (101 000)2
Nous mettons ce nombre sous la forme : 1,mantisse
101 000 = 1,010 00x25 (25 décale la virgule de 5 chiffres vers
la droite)
Mantisse étendue sur 23 bits est donc :
010 00 000 000 000 000 000 000
Exposant = 127 + 5 = (132)10 = (10 000 100)2
(40)10 = (0 10 000 100 010 00 000 000 000 000 000 000)2
En cas de problèmes : [Link]@[Link] CPGE - Tanger 42/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Nombres réels : La norme IEEE 754
(Virgule flottante)
Exercice
Exprimez les nombres (13)10 et (-6,625)10 en utilisant la norme
IEEE 754
En cas de problèmes : [Link]@[Link] CPGE - Tanger 43/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Nombres réels : La norme IEEE 754
(Virgule flottante)
Exercice Pour (13)10 :
Signe : + ⇒ 0
Codons en binaire : (13)10 = (1101,1010)2
Nous mettons ce nombre sous la forme : 1,mantisse
1101 = 1,101x23 (23 décale la virgule de 3 chiffres vers la
droite)
Mantisse étendue sur 23 bits est donc :
101 0000 0000 0000 0000 0000
Exposant = 127 + 3 = (130)10 = (10000010)2
(13,625)10 = (0 10000010 101 0000 0000 0000 0000
0000)2
En cas de problèmes : [Link]@[Link] CPGE - Tanger 44/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Nombres réels : La norme IEEE 754
(Virgule flottante)
Exercice Pour (-6,625)10 :
Signe : - ⇒ 1
Codons la valeur absolue en binaire : (6,625)10 = (110,1010)2
Nous mettons ce nombre sous la forme : 1,mantisse
110,1010 = 1,101010x22
Mantisse étendue sur 23 bits est donc :
101010 0000 0000 0000 00000
Exposant = 127 + 2 = (129)10 = (10000001)2
(-6,625)10 = (1 10000001 101010 0000 0000 0000 00000)2
En cas de problèmes : [Link]@[Link] CPGE - Tanger 45/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Nombres réels : La norme IEEE 754
(Virgule flottante)
Conversion d’un nombre binaire en décimal
(X)10 =(-1)Signe x (2)Exposant−127 x (1,Mantisse)2
En cas de problèmes : [Link]@[Link] CPGE - Tanger 46/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Nombres réels : La norme IEEE 754
(Virgule flottante)
Exercice
Traduisez en décimal le nombre :
(0 10000010 0100100 0000 0000 0000 0000)2
En cas de problèmes : [Link]@[Link] CPGE - Tanger 47/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage binaire : Nombres réels : La norme IEEE 754
(Virgule flottante)
Exercice
Pour (0 10000010 0100100 0000 0000 0000 0000)2 :
Signe : 0 ⇒ positif
Exposant = (10000010)2 ⇒ 130 - 127 = 3
Mantisse = 0100100 0000 0000 0000 0000 ⇒ (1,01001)2
Résultat = +(1,01001)2 x 23 = +(1010,01)2 = +(10,25)10
En cas de problèmes : [Link]@[Link] CPGE - Tanger 48/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Conversion du Décimal vers une base B
Pour représenter un nombre A décimal dans une autre base B,
on divise A par B, puis on divise le quotient obtenu par B, et
ainsi de suite jusqu’a l’obtention d’un quotient nul.
La suite des restes obtenus correspond aux chiffres dans la base
B visée :
(A)10 = (a3 a2 a1 a0 )B
En cas de problèmes : [Link]@[Link] CPGE - Tanger 49/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Conversion du Décimal vers une base B
Représentation en base dix un entier naturel A donné en base B
Si (am am−1 ...a0 )B est l’écritureP
de A en base B, alors :
(A)10 = m i
i=0 ai xB =
a0 xB0 + a1 xB1 + a2 xB2 + . . . + am xBm .
Représentation en base dix un nombre réel positif A donné en
base B
Si (am am−1 ...a0 ,b1 b2 ...bP
n )B est l’écriture
Pn de A en base B, alors :
m i −j
(A)10 = i=0 ai xB + j=1 bj xB =
a0 xB0 + a1 xB1 + a2 xB2 + . . . + am xBm + b1 xB−1 + b2 xB−2 + .
. . + bn xB−n .
En cas de problèmes : [Link]@[Link] CPGE - Tanger 50/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Conversion du Décimal vers une base B
Représentation en base dix un entier naturel A donné en base B
Si (am am−1 ...a0 )B est l’écritureP
de A en base B, alors :
(A)10 = m i
i=0 ai xB =
a0 xB0 + a1 xB1 + a2 xB2 + . . . + am xBm .
Représentation en base dix un nombre réel positif A donné en
base B
Si (am am−1 ...a0 ,b1 b2 ...bP
n )B est l’écriture
Pn de A en base B, alors :
m i −j
(A)10 = i=0 ai xB + j=1 bj xB =
a0 xB0 + a1 xB1 + a2 xB2 + . . . + am xBm + b1 xB−1 + b2 xB−2 + .
. . + bn xB−n .
En cas de problèmes : [Link]@[Link] CPGE - Tanger 50/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage Octal
Le système de numération octal est le système de numération
de base 8, il utilise donc les chiffres de 0 à 7 :
(2735)8 = 2x83 + 7x82 + 3x81 + 5x80 = (1501)10
(171,3046875)10 se convertit en octal en calculant : ...
Conversion de (171)10 : donne (253)8
Conversion de 0,3046875 :
0,3046875 x 8 = 2,4375 = 2 + 0,4375
0,4375 x 8 = 3,5 = 3 + 0,5
0,5 x 8 = 4
(171,3046875)10 = (253,234)8
En cas de problèmes : [Link]@[Link] CPGE - Tanger 51/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage Octal
Le système de numération octal est le système de numération
de base 8, il utilise donc les chiffres de 0 à 7 :
(2735)8 = 2x83 + 7x82 + 3x81 + 5x80 = (1501)10
(171,3046875)10 se convertit en octal en calculant : ...
Conversion de (171)10 : donne (253)8
Conversion de 0,3046875 :
0,3046875 x 8 = 2,4375 = 2 + 0,4375
0,4375 x 8 = 3,5 = 3 + 0,5
0,5 x 8 = 4
(171,3046875)10 = (253,234)8
En cas de problèmes : [Link]@[Link] CPGE - Tanger 51/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage Octal
Le système de numération octal est le système de numération
de base 8, il utilise donc les chiffres de 0 à 7 :
(2735)8 = 2x83 + 7x82 + 3x81 + 5x80 = (1501)10
(171,3046875)10 se convertit en octal en calculant : ...
Conversion de (171)10 : donne (253)8
Conversion de 0,3046875 :
0,3046875 x 8 = 2,4375 = 2 + 0,4375
0,4375 x 8 = 3,5 = 3 + 0,5
0,5 x 8 = 4
(171,3046875)10 = (253,234)8
En cas de problèmes : [Link]@[Link] CPGE - Tanger 51/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage Hexadécimal
Le système hexadécimal est un système de numération position-
nel en base 16.
Il utilise ainsi 16 symboles, en général les chiffres arabes pour les
dix premiers chiffres et les lettres de A à F pour les six suivants.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 52/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage Hexadécimal
Exemple
(15AACF7)16 se convertit en décimal en calculant : ...
(15AACF7)16 = 1x166 + 5x165 + 10x164 + 10x163 + 12x162
+ 15x161 + 7x160 = (22719735)10
(171,3046875)10 se convertit en hexadécimal en calculant : ...
Conversion de (171)10 : donne (AB)16
Conversion de 0,3046875 :
0,3046875 x 16 = 4,875 = 4 + 0,875
0,875 x 16 = 14,0 = 14 + 0
(171,3046875)10 = (AB,4E)16
En cas de problèmes : [Link]@[Link] CPGE - Tanger 53/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Codage Octal et Hexadécimal
Exercice
Convertir de (110,6046875)10 en octal et hexadécimal.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 54/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Changement de base : de la base binaire à la base octal
ou hexadécimal
Exemple : Binaire vers l’octal
(1010101010)2 à convertir en octal
001 |{z}
|{z} 010 |{z}
101 |{z}
010 (on regroupe par 3 à partir de la droite)
1 2 5 2 ⇒ (1252)8
Exemple : Binaire vers l’hexadécimal
(1010101010)2 à convertir en hexadécimal
0010
|{z} 1010
|{z} 1010
|{z} (on regroupe par 4 à partir de la droite)
2 A A ⇒ (2AA)16
En cas de problèmes : [Link]@[Link] CPGE - Tanger 55/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Changement de base : de la base binaire à la base octal
ou hexadécimal
Exemple : Binaire vers l’octal
(1010101010)2 à convertir en octal
001 |{z}
|{z} 010 |{z}
101 |{z}
010 (on regroupe par 3 à partir de la droite)
1 2 5 2 ⇒ (1252)8
Exemple : Binaire vers l’hexadécimal
(1010101010)2 à convertir en hexadécimal
0010
|{z} 1010
|{z} 1010
|{z} (on regroupe par 4 à partir de la droite)
2 A A ⇒ (2AA)16
En cas de problèmes : [Link]@[Link] CPGE - Tanger 55/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des nombres
Changement de base : de la base binaire à la base octal
ou hexadécimal
Exercice
Exprimez les nombres (40)10 et (-6,625)10 en octal et hexadé-
cimal
NB : Utilisez la norme IEEE 754 et puis le regroupement de bits.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 56/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation de textes
La norme ASCII
La norme ASCII est une norme de codage de caractères en in-
formatique.
La norme ASCII vise à donner à tout caractère de n’importe
quel système d’écriture de langue (Arabe, Chinois, . . . ) un nom
et un identifiant numérique, et ce de manière unifiée, quelle que
soit la plate-forme informatique ou le logiciel.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 57/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation de textes
La norme ASCII
En cas de problèmes : [Link]@[Link] CPGE - Tanger 58/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation de textes
La norme ASCII
Exercice
En utilisant le code ASCII :
Ecrire votre nom et votre prénom sans oublier de mettre les
initiales en majuscule.
Décoder la phrase suivante : 76 39 97 114 99 104 105 44 32 99
39 101 115 116 32 102 97 99 105 108 101 46.
Décoder la phrase suivante donnée en binaire : 1001010 0100111
1000001 1001001 0100000 1010100 1010010 1001111 1010101
1010110 1000101 0100000 0100001.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 59/275
Cours d’informatique
Cours d’informatique
Chapitre 2 : Représentation des données
Représentation des couleurs
La norme RGB (Red, Green, Blue)
Se présente comme un nombre hexadécimal à six chiffres :
FF06C3 par exemple.
Chaque paire de chiffres est dédiée à une couleur primaire. Sur
le même exemple, cela donne :
FF pour le rouge ;
06 pour le vert ;
C3 pour le bleu ;
000000 : noir.
FFFFFF : blanc.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 60/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
1 Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
2 Chapitre 2 : Représentation des données
3 Chapitre 3 : Algorithmique et programmation
Variables
Instructions d’entrée/sortie (Lire/Ecrire)
Test (Si - Sinon - Fin Si)
Boucle (Pour - Tant que)
Tableaux
4 Chapitre 4 : Algorithmique et programmation (Langage Python)
5 Chapitre 5 : La programmation modulaire et les séquences
6 Chapitre 6 : Les fichiers de textes
7 Chapitre 7 : Traitement des erreurs : les exceptions
8 Chapitre 8 : Programmation orientée objet (POO)
9 Chapitre 9 : Ingénierie numérique et simulation
En cas de problèmes : [Link]@[Link] CPGE - Tanger 61/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Introduction
Mais c’est quoi un algorithme ?
Muhammad ibn Musa al-Khuwarizmi (ca. 780 - 850)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 62/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Introduction
Exemple 1
Problème : L’accès aux CPGE
⇒ Les démarches à suivre :
1 titulaires d’un baccalauréat marocain ou étranger
2 avec, au moins, mention "assez bien"
3 à condition de ne pas dépasser "21 ans"
4 inscritpion sur le site eCPGE
5 photocopie légalisée du Baccalauréat
6 copies des relevés de notes de la 1ère et la 2ème année du
baccalauréat
7 copie de la CNI (Carte Nationale d’Identité)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 63/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Introduction
Exemple 2
Problème : Résolution d’une équation du 2nd degré : ax2 +bx+c=0.
⇒ Etapes de résolution :
1 Connaître les valeurs de a, b et c
2 Calculer le discriminant ∆ = b2 - 4ac
3 Si ∆ < 0 alors pas de solution réelle
−b
4 Si ∆ = 0 alors une seule solution : x = 2a
√ √
−b− ∆ −b+ ∆
5 Si ∆ > 0 alors deux solutions : x1 = 2a et x2 = 2a
En cas de problèmes : [Link]@[Link] CPGE - Tanger 64/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Structure d’un algorithme
Exemple 3
Problème : Usage d’un appareil téléphonique à pièces de monnaie
pour effectuer une communication.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 65/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Structure d’un algorithme
Exemple 4
Problème : Recette de cuisine (Tagine aux prunes)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 66/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Définition
Mais c’est quoi un algorithme ?
Définition 1 : Une description des différentes étapes permettant
de résoudre un problème quelconque.
Définition 2 : Une suite d’instructions, qui une fois exécutée
correctement, conduit à un résultat donné.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 67/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Définition
La résolution de problème et la programmation
La résolution d’un problème passe par ces étapes :
En cas de problèmes : [Link]@[Link] CPGE - Tanger 68/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Définition
Compilation & Interprétation
Il existe deux modes de traduction d’un tel programme source en
code binaire exécutable par la machine :
En cas de problèmes : [Link]@[Link] CPGE - Tanger 69/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Définition
Compilation & Interprétation
L’interpréteur prend une instruction, puis traduit et exécute puis
prend une autre instruction. Alors que le compilateur traduit
tout le programme en une seule fois (programme exécutable),
puis l’exécute.
Le compilateur génère le rapport d’erreur après la traduction de
code source entier, alors qu’un interpréteur s’arrêtera la traduc-
tion tant qu’il obtient la première erreur.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 70/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Structure d’un algorithme
Un algorithme est composé de trois parties :
En cas de problèmes : [Link]@[Link] CPGE - Tanger 71/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Structure d’un algorithme
Algorithme d’accès aux CPGE
En cas de problèmes : [Link]@[Link] CPGE - Tanger 72/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Structure d’un algorithme
Algorithme de recette de cuisine : Tagine aux prunes
En cas de problèmes : [Link]@[Link] CPGE - Tanger 73/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Structure d’un algorithme
Algorithme : La somme de 2 entiers
En cas de problèmes : [Link]@[Link] CPGE - Tanger 74/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Structure d’un algorithme
Entête
L’entête d’un algorithme permet d’identifier (nommer) un algo-
rithme
Exemple : Si je décide d’écrire un algorithme qui réalise la
somme de deux réels ayant comme nom somme, alors l’entête
est :
Algorithme somme
En cas de problèmes : [Link]@[Link] CPGE - Tanger 75/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Variables
Structure d’un algorithme
Déclaration
La partie déclaration dans un algorithme contient une liste : des
variables, des constantes,... utilisées dans le corps de l’algo-
rithme
Les variables, constantes,... utilisées doivent avoir fait l’objet
d’une déclaration préalable
Derrière toute variable on peut stocker une valeur.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 76/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Variables
Structure d’un algorithme
Variables
Syntaxe : nom_variable : type_variable
avec,
nom_variable : l’identifiant de la variable
type_variable : le type de la variable
Conseil : pour la lisibilité du code, choisissez des noms significatifs
qui décrivent les données manipulées
Exemples : TotalVentes2014, Prix_TTC, Prix_HT
En cas de problèmes : [Link]@[Link] CPGE - Tanger 77/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Variables
Structure d’un algorithme
Variables
Important : Le choix des noms de variables est soumis à quelques
règles :
Commencer par une lettre alphabétique
Etre constitué uniquement de lettres, de chiffres et du souligne-
ment "_" .
Etre différent des mots réservés du langage
Déclaration valide : TotalVentes2014, Prix_TTC, Prix_HT Dé-
claration invalide : 2014_12, 2014TotalVentes, Prix TTC, Prix-
TTC
En cas de problèmes : [Link]@[Link] CPGE - Tanger 78/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Variables
Structure d’un algorithme
Types de variables
Entier : pour caractériser des nombres entiers positifs et négatifs
Réel : pour caractériser des nombres réels positifs et négatifs
Caractère : ’A’, ’b’, ’#’, ’@’, ’ ?’, ... (lettres, signes de ponc-
tuation, espaces, ...)
Chaîne : Chaîne de caractères : "Bonjour", ...
Booléen : Vrai ou faux (0 ou 1)
Constante : Variable qui n’évolue pas (ne change pas de va-
leur).
En cas de problèmes : [Link]@[Link] CPGE - Tanger 79/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Variables
Structure d’un algorithme
Types de variables
Exemple :
Dans l’algorithme de calcul de la somme de deux entiers, la
variable Sum : est utilisée pour stocker la somme de deux entiers
Sa déclaration est donc :
variable Sum : Entier
En cas de problèmes : [Link]@[Link] CPGE - Tanger 80/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Variables
Structure d’un algorithme
Constantes
Syntaxe :
Constante nom_constante ← valeur_constante : type_variable
Exemple :
Constante pi ← 3,14 : Réel
En cas de problèmes : [Link]@[Link] CPGE - Tanger 81/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Variables
Structure d’un algorithme
Corps
Rôle du corps : Pour définir les tâches (instructions, opérations,...)
que l’algorithme doit effectuer pour résoudre l’énoncé d’un problème.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 82/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Variables
Structure d’un algorithme
Instructions d’affectation
Rôle : mettre une première valeur dans une variable ou changer sa
valeur courante.
Exemples :
Note1 ← 15
Note2 ← Note
Moyenne ← (Note2*2 +Note1)/3
Nom ← "Mohamed"
En cas de problèmes : [Link]@[Link] CPGE - Tanger 83/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Variables
Structure d’un algorithme
Instructions d’affectation
Remarque : L’instruction c ← a + b se comprend de la façon sui-
vante :
Prendre la valeur contenue dans la variable a
Prendre la valeur contenue dans la variable b
Additionner ces deux valeurs
Mettre ce résultat dans la variable c
Si c avait auparavant une valeur, cette dernière est perdue
En cas de problèmes : [Link]@[Link] CPGE - Tanger 84/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Variables
Structure d’un algorithme
Instructions d’affectation
Remarque :
L’affectation n’est pas commutative : A ← B est différente de
B←A
L’affectation est différente d’une équation mathématique :
1 A ← A+1 a un sens
2 A+1 ← 2 n’est pas possible et n’est pas équivalente à A ← 1
En cas de problèmes : [Link]@[Link] CPGE - Tanger 85/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Variables
Structure d’un algorithme
Opération sur les variables : Priorité
Pour les opérateurs arithmétiques, l’ordre de priorité est le
suivant (du plus prioritaire au moins prioritaire) :
1 ˆ : (puissance)
2 * , / : (multiplication, division)
3 % : (modulo)
4 + , - : (addition, soustraction)
Exemple : 1 + 3 * 2^2 = 13
En cas de besoin on utilise les parenthèses pour indiquer les
opérations à effectuer en priorité
Exemple : (1 + 3) * 2^2 = 16
En cas de problèmes : [Link]@[Link] CPGE - Tanger 86/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Variables
Structure d’un algorithme
Instructions d’affectation
Remarque : La valeur affecté doit être compatible avec le type de
la variable utilisée :
Exemple :
Variables i, j, k : entier
Variables x, y : réel
Variable OK : booléen
Variables ch1, ch2 : chaîne de caractères
Affectations valides :
i←1 j←i k ← i+j
x ← 10.3 OK ← FAUX ch1 ← "SMI"
ch2 ← ch1 x←4 x←j
Affectations non valides :
i ← 10.3 OK ← "SMI" j←x
En cas de problèmes : [Link]@[Link] CPGE - Tanger 87/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Variables
Structure d’un algorithme
Exercice
Quelles seront les valeurs des variables A et B après exécution des
instructions suivantes ?
Variables A, B : entier
Début
A← 5
B← A+4
A← A+1
B← A-4
A← B
B← A
Fin
En cas de problèmes : [Link]@[Link] CPGE - Tanger 88/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Variables
Structure d’un algorithme
Corrigé
Instruction Valeur de A Valeur de B
0: NULL NULL
1:A←5 5 NULL
2 : B ← A+4 5 9
3 : A ← A+1 6 9
4 : B ← A-4 6 2
5:A←B 2 2
6:B←A 2 2
En cas de problèmes : [Link]@[Link] CPGE - Tanger 89/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Instructions d’entrée/sortie (Lire/Ecrire)
Structure d’un algorithme
Instructions d’entrée/sortie
Rôle :
Pour assurer la communication entre l’ordinateur et l’extérieur
on utilise les instructions de lecture et d’écriture
Pour afficher un résultat (du texte ou le contenu d’une variable)
ou bien demander à l’utilisateur de saisir une information afin
de la stocker dans une variable
En cas de problèmes : [Link]@[Link] CPGE - Tanger 90/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Instructions d’entrée/sortie (Lire/Ecrire)
Structure d’un algorithme
Instruction de sortie
Syntaxe :
Ecrire (valeur)
Ecrire (variable)
Ecrire (expression)
Exemples :
Ecrire (4)
Ecrire (Note)
Ecrire ("La moyenne=", (Note1+Note2)/2)
Remarque : Ecrire(Note) n’est pas la même chose que
Ecrire("Note")
En cas de problèmes : [Link]@[Link] CPGE - Tanger 91/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Instructions d’entrée/sortie (Lire/Ecrire)
Structure d’un algorithme
Instruction d’entrée Effet
Syntaxe : A la rencontre de cette ins-
Lire (variable) truction, l’ordinateur arrête
l’exécution du programme et
Exemple :
attend qu’on tape une valeur.
Variable Note : Réel
On termine la saisie en ap-
Début
puyant sur la touche Entrée.
Lire (Note)
... La valeur qu’on a tapé est af-
Fin fectée à la variable.
Remarque : Lire(valeur) et
Lire(expression) n’ont pas de sens
En cas de problèmes : [Link]@[Link] CPGE - Tanger 92/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Instructions d’entrée/sortie (Lire/Ecrire)
Structure d’un algorithme
Instruction d’entrée
Conseil :
Avant de lire une variable, il est fortement conseillé d’écrire des
messages à l’écran, afin de prévenir l’utilisateur de ce qu’il doit
frapper
Exemple :
Variable Note : Réel
Début
Ecrire ("Entrer la valeur de la Note :")
Lire (Note)
...
Fin
En cas de problèmes : [Link]@[Link] CPGE - Tanger 93/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Test (Si - Sinon - Fin Si)
Schéma alternatif ou conditionnel
La sélection (réduite)
Exemple : Ecrire un algorithme qui demande un nombre à l’utilisa-
teur et l’informe ensuite si ce nombre est positif.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 94/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Test (Si - Sinon - Fin Si)
Schéma alternatif ou conditionnel
La sélection (réduite)
Rôle : Le schéma conditionnel permet d’exécuter des instructions
quand une condition est vérifiée.
Syntaxe :
Si condition Alors
instructions
...
Fin Si
En cas de problèmes : [Link]@[Link] CPGE - Tanger 95/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Test (Si - Sinon - Fin Si)
Schéma alternatif ou conditionnel
La sélection (simple)
Exemple : Ecrire un algorithme qui demande un nombre à l’utilisa-
teur et l’informe ensuite si ce nombre est positif ou négatif.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 96/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Test (Si - Sinon - Fin Si)
Schéma alternatif ou conditionnel
La sélection (simple)
Rôle : Le schéma conditionnel permet d’exécuter des instructions
quand une condition est vérifiée. et éventuellement dans le cas ou la
condition n’est pas vérifiée.
Syntaxe :
Si condition Alors
instructions
...
Fin Si
Sinon
instructions
...
Fin Sinon
En cas de problèmes : [Link]@[Link] CPGE - Tanger 97/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Test (Si - Sinon - Fin Si)
Schéma alternatif ou conditionnel
La sélection (imbriquée)
Exemple : Ecrire un algorithme qui vérifie si a, b et c sont ordonnées
selon : a ≤ b ≤ c .
En cas de problèmes : [Link]@[Link] CPGE - Tanger 98/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Test (Si - Sinon - Fin Si)
Schéma alternatif ou conditionnel
La sélection (imbriquée)
Si condition Alors
instructions
...
Fin Si
Sinon
Si condition Alors
instructions
...
Fin Si
Fin Sinon
En cas de problèmes : [Link]@[Link] CPGE - Tanger 99/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Boucle (Pour - Tant que)
Schéma itératif ou répétitif
Exemple :
Ecrire un algorithme qui affiche le mot "Bonjour" 100 fois.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 100/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Boucle (Pour - Tant que)
Schéma itératif ou répétitif
Rôle
Un schéma itératif permet de répéter une même action un certain
nombre de fois. On parle aussi de boucle.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 101/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Boucle (Pour - Tant que)
Schéma itératif ou répétitif
Boucle : Pour
Principe :
On sait à l’écriture de l’algorithme combien on doit faire d’itérations.
Syntaxe :
Pour variable ← valeur_initiale à valeur_finale [de pas p] Faire
instructions
...
Fin Pour
En cas de problèmes : [Link]@[Link] CPGE - Tanger 102/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Boucle (Pour - Tant que)
Schéma itératif ou répétitif
Exemple :
Ecrire un algorithme qui affiche le mot "Bonjour" 100 fois.
Solution :
Pour i ← 1 à 100 de pas 1 Faire
Ecrire("Bonjour")
Fin Pour
En cas de problèmes : [Link]@[Link] CPGE - Tanger 103/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Boucle (Pour - Tant que)
Schéma itératif ou répétitif
Exemple :
Ecrire un algorithme qui affiche le mot "Bonjour" 100 fois.
Solution :
Pour i ← 1 à 100 Faire
Ecrire("Bonjour")
Fin Pour
En cas de problèmes : [Link]@[Link] CPGE - Tanger 104/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Boucle (Pour - Tant que)
Schéma itératif ou répétitif
Exemple :
Ecrire un algorithme qui contrôle la saisie d’un nombre positif jusqu’à
ce que le nombre entré soit valable.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 105/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Boucle (Pour - Tant que)
Schéma itératif ou répétitif
Boucle : Tant que
Principe :
Dans cette boucle, on ne sait pas à l’avance le nombre d’itérations à
faire. La sortie de la boucle s’effectue lorsque la condition n’est plus
vérifiée.
Syntaxe :
Tant que condition Faire
instructions
...
Fin Tant que
En cas de problèmes : [Link]@[Link] CPGE - Tanger 106/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Boucle (Pour - Tant que)
Schéma itératif ou répétitif
Exemple : Ecrire un algorithme qui contrôle la saisie d’un nombre
positif jusqu’à ce que le nombre entré soit valable.
Solution :
Variable nbr : Réel
Debut
Ecrire("Entrez un nombre")
Lire(nbr)
Tant Que (nbr < 0) Faire
Ecrire ("Saisie erronée. Recommencez")
Lire (nbr)
Fin Tant Que
Ecrire ("Saisie valable")
Fin
En cas de problèmes : [Link]@[Link] CPGE - Tanger 107/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Tableaux
Tableaux à une dimension
Contexte :
Moy = (N1 + N2 + N3 + N4 + N5 + N6 + N7 + N8 + N9
+ N10 + N11 + N12 ) / 12
Mais si on a un programme de gestion avec quelques centaines
ou quelques milliers de valeurs à traiter, alors là comment faire ?
En cas de problèmes : [Link]@[Link] CPGE - Tanger 108/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Tableaux
Tableaux à une dimension
Notion :
Heureusement, les langages de programmation offrent la possi-
bilité de rassembler toutes ces variables dans une seule structure
de donnée appelée tableau.
Un tableau est composé d’un certain nombre de cases :
8 3 5 5 7 4 9 1 3
En cas de problèmes : [Link]@[Link] CPGE - Tanger 109/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Tableaux
Tableaux à une dimension
Syntaxe :
Variable nom_tab : Tableau[Taille] : Type
Exemple :
Variable notes : Tableau[12] : Réel
En cas de problèmes : [Link]@[Link] CPGE - Tanger 110/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Tableaux
Tableaux à une dimension
Exemple : Initialisation d’un tableau par l’utilisateur.
Algorithme initialisation
Variable notes : Tableau[12] : Réel
Variable i : Entier
Debut
Pour i ← 1 à 12 Faire
Ecrire ("Saisie la note ", i)
Lire (notes[ i ])
Fin pour
Fin
En cas de problèmes : [Link]@[Link] CPGE - Tanger 111/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Tableaux
Tableaux à une dimension
Exemple : Ecrire un algorithme qui calcule et affiche la moyenne des
notes d’une classe de 36 étudiants.
Algorithme Moyenne
Variable notes : Tableau[36] : Réel
Variable SOM : Réel
Variable i : Entier
Debut
SOM ← 0
Pour i ← 1 à 36 Faire
Ecrire ("Saisie la note ", i)
Lire (notes[ i ])
SOM ← SOM + notes[ i ]
Fin pour
Ecrire ("la moyenne des notes de la classe est :", SOM/36)
Fin
En cas de problèmes : [Link]@[Link] CPGE - Tanger 112/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Tableaux
Tableaux à une dimension
Recherche séquentielle dans un tableau
Exemple : Ecrire un algorithme qui fait la recherche d’une valeur
dans un tableau.
Algorithme Recherche_séquentielle pos ← i
Variable Tab : Tableau[10] : Entier break
Variables i,val,pos : Entier FinSi
Debut Fin pour
Pour i ← 1 à 10 Faire Si pos = -1 Alors
Ecrire ("Saisie l’élément", i) Ecrire ("La valeur recherchée ne se
Lire (Tab[ i ]) trouve pas")
Fin pour FinSi
Ecrire ("Saisie l’élément à rechercher :") Sinon
Lire (val) Ecrire ("La valeur ",val," se trouve
pos ← -1 dans la position ", pos)
Pour i ← 1 à 10 Faire Fin Sinon
Si val = Tab[ i ] Alors Fin
En cas de problèmes : [Link]@[Link] CPGE - Tanger 113/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Tableaux
Tableaux à deux dimensions
Ceci est utile par exemple pour représenter des matrices
Syntaxe :
Variable nom_tab : Tableau[Taille1][Taille2] : Type
Exemple :
Variable matrice : Tableau[3][4] : Réel
Ceci va créer une variable matrice qui est un tableau contenant 3
lignes et 4 colonnes : 3*4.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 114/275
Cours d’informatique
Cours d’informatique
Chapitre 3 : Algorithmique et programmation
Tableaux
Tableaux à deux dimensions
Exemple :
Saisie des valeurs d’une matrice 5*4.
Algorithme SaisieMatrice
Variable matrice : Tableau[5][4] : Entier
Variables i,j : Entier
Debut
Pour i ← 1 à 5 Faire
Pour j ← 1 à 4 Faire
Ecrire ("matrice[",i,"][",j,"] :")
Lire(matrice[ i ][ j ])
Fin pour
Fin pour
Fin
En cas de problèmes : [Link]@[Link] CPGE - Tanger 115/275
Cours d’informatique
Cours d’informatique
Chapitre 4 : Algorithmique et programmation (Langage Python)
1 Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
2 Chapitre 2 : Représentation des données
3 Chapitre 3 : Algorithmique et programmation
4 Chapitre 4 : Algorithmique et programmation (Langage Python)
Variables
Instructions d’entrée/sortie (input - print)
Test (if - else - elif)
Boucle (for - while)
5 Chapitre 5 : La programmation modulaire et les séquences
6 Chapitre 6 : Les fichiers de textes
7 Chapitre 7 : Traitement des erreurs : les exceptions
8 Chapitre 8 : Programmation orientée objet (POO)
9 Chapitre 9 : Ingénierie numérique et simulation
En cas de problèmes : [Link]@[Link] CPGE - Tanger 116/275
Cours d’informatique
Cours d’informatique
Chapitre 4 : Algorithmique et programmation (Langage Python)
Historique
Apparu : en 1990
Auteur : Guido van Rossum
En cas de problèmes : [Link]@[Link] CPGE - Tanger 117/275
Cours d’informatique
Cours d’informatique
Chapitre 4 : Algorithmique et programmation (Langage Python)
Variables
Les types de données
Le type int (Entier)
le type float (Réel)
Le type bool (Booléen)
Le type str (Caractères)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 118/275
Cours d’informatique
Cours d’informatique
Chapitre 4 : Algorithmique et programmation (Langage Python)
Variables
Affectations
Note1 = 15
Note2 = Note
Moyenne = (Note2*2 + Note1)/3
Prenom = ’Mohamed’
Mot = "L’enfant"
Affectation multiple : Note1, Note2 , Note3 = 15, 16, 14
En cas de problèmes : [Link]@[Link] CPGE - Tanger 119/275
Cours d’informatique
Cours d’informatique
Chapitre 4 : Algorithmique et programmation (Langage Python)
Variables
Opération sur les variables
** : (puissance)
* : (multiplication)
/ : (division)
// : (division entière)
% : (modulo)
+ , - : (addition, soustraction)
= = : égal
! = Différent
En cas de problèmes : [Link]@[Link] CPGE - Tanger 120/275
Cours d’informatique
Cours d’informatique
Chapitre 4 : Algorithmique et programmation (Langage Python)
Variables
Opération sur les variables
x+=3 ⇔ x=x+3
x-=3 ⇔ x=x-3
x*=3 ⇔ x=x*3
x%=3 ⇔ x=x%3
En cas de problèmes : [Link]@[Link] CPGE - Tanger 121/275
Cours d’informatique
Cours d’informatique
Chapitre 4 : Algorithmique et programmation (Langage Python)
Instructions d’entrée/sortie (input - print)
Les entrées/sorties standards
Dans l’algorithmique :
Ecrire("Entrer la valeur de la Note :")
Lire (Note)
Dans python :
print("Entrer la valeur de la Note :")
Note=input()
Ou bien :
Note=input("Entrer la valeur de la Note :")
En cas de problèmes : [Link]@[Link] CPGE - Tanger 122/275
Cours d’informatique
Cours d’informatique
Chapitre 4 : Algorithmique et programmation (Langage Python)
Instructions d’entrée/sortie (input - print)
Les entrées/sorties standards
Exemple
Ecrire un programme en python qui calcule la somme de deux Notes
saisies au clavier
En cas de problèmes : [Link]@[Link] CPGE - Tanger 123/275
Cours d’informatique
Cours d’informatique
Chapitre 4 : Algorithmique et programmation (Langage Python)
Test (if - else - elif)
Schéma alternatif ou conditionnel
La sélection (réduite)
Rôle : Permet d’exécuter des instructions quand une condition est
vérifiée.
Algorithme Python
Si condition Alors if condition :
instructions instructions
... ...
Fin Si
En cas de problèmes : [Link]@[Link] CPGE - Tanger 124/275
Cours d’informatique
Cours d’informatique
Chapitre 4 : Algorithmique et programmation (Langage Python)
Test (if - else - elif)
Schéma alternatif ou conditionnel
La sélection (réduite)
Exemple : Ecrire un programme qui demande un nombre à l’utilisa-
teur et l’informe ensuite si ce nombre est positif.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 125/275
Cours d’informatique
Cours d’informatique
Chapitre 4 : Algorithmique et programmation (Langage Python)
Test (if - else - elif)
Schéma alternatif ou conditionnel
La sélection (simple)
Rôle : Permet d’exécuter des instructions quand une condition est
vérifiée. et éventuellement dans le cas ou la condition n’est pas véri-
fiée.
Algorithme Python
Si condition Alors if condition :
instructions instructions
...
Fin Si ...
Sinon else :
instructions instructions
... ...
Fin Sinon
En cas de problèmes : [Link]@[Link] CPGE - Tanger 126/275
Cours d’informatique
Cours d’informatique
Chapitre 4 : Algorithmique et programmation (Langage Python)
Test (if - else - elif)
Schéma alternatif ou conditionnel
La sélection (simple)
Exemple : Ecrire un programme qui demande un nombre à l’utilisa-
teur et l’informe ensuite si ce nombre est positif ou négatif.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 127/275
Cours d’informatique
Cours d’informatique
Chapitre 4 : Algorithmique et programmation (Langage Python)
Test (if - else - elif)
Schéma alternatif ou conditionnel
La sélection (imbriquée)
Algorithme Python
Si condition Alors if condition :
Si condition Alors if condition :
instructions
... instructions
Fin Si ...
Fin Si else :
Sinon if condition :
Si condition Alors
instructions
instructions
... ...
Fin Si
Fin Sinon
En cas de problèmes : [Link]@[Link] CPGE - Tanger 128/275
Cours d’informatique
Cours d’informatique
Chapitre 4 : Algorithmique et programmation (Langage Python)
Test (if - else - elif)
Schéma alternatif ou conditionnel
La sélection (imbriquée)
Exemple1 : Ecrire un programme qui demande un nombre à l’uti-
lisateur et l’informe ensuite si ce nombre est positif ou négatif ou
nul.
Exemple2 : Ecrire un programme qui vérifie si a, b et c sont ordon-
nées selon : a ≤ b ≤ c .
En cas de problèmes : [Link]@[Link] CPGE - Tanger 129/275
Cours d’informatique
Cours d’informatique
Chapitre 4 : Algorithmique et programmation (Langage Python)
Boucle (for - while)
Schéma itératif ou répétitif
Boucle : Pour
Algorithme
Pour variable ← valeur_initiale à valeur_finale de pas p Faire
instructions
...
Fin Pour
Python
for variable in range(valeur_initiale, valeur_finale, p) :
instructions
...
En cas de problèmes : [Link]@[Link] CPGE - Tanger 130/275
Cours d’informatique
Cours d’informatique
Chapitre 4 : Algorithmique et programmation (Langage Python)
Boucle (for - while)
Schéma itératif ou répétitif
Boucle : Pour
Exemples :
for i in range(0, 10, 2) :
print(i)
donne le résultat : 0, 2, 4, 6, 8
for i in range(0, 10) :
print(i)
donne le résultat : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
for i in range(10) :
print(i)
donne le résultat : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
En cas de problèmes : [Link]@[Link] CPGE - Tanger 131/275
Cours d’informatique
Cours d’informatique
Chapitre 4 : Algorithmique et programmation (Langage Python)
Boucle (for - while)
Schéma itératif ou répétitif
Boucle : Tant que
Algorithme Python
Tant que condition Faire while condition :
instructions instructions
... ...
Fin Tant que
Exemple Résultat
i=0 01234
while i<5 :
print(i, end=’ ’)
i+=1
En cas de problèmes : [Link]@[Link] CPGE - Tanger 132/275
Cours d’informatique
Cours d’informatique
Chapitre 4 : Algorithmique et programmation (Langage Python)
Boucle (for - while)
break
définition
Sort immédiatement de la boucle for ou while en cours contenant
l’instruction
Exemple :
for i in range(10) :
if i==5 :
break
print(i)
donne le résultat : 0, 1, 2, 3, 4
En cas de problèmes : [Link]@[Link] CPGE - Tanger 133/275
Cours d’informatique
Cours d’informatique
Chapitre 4 : Algorithmique et programmation (Langage Python)
Boucle (for - while)
continue
définition
Sort immédiatement de la boucle for ou while en cours contenant
l’instruction
Exemple :
for i in range(10) :
if i==5 :
continue
print(i)
donne le résultat : 0, 1, 2, 3, 4, 6, 7, 8, 9
En cas de problèmes : [Link]@[Link] CPGE - Tanger 134/275
Cours d’informatique
Cours d’informatique
Chapitre 4 : Algorithmique et programmation (Langage Python)
Boucle (for - while)
Les commentaires
définition
Un commentaire est du texte, qui accompagne le code source, et qui
n’est pas pris en considération ni par l’interpréteur ni par le com-
pilateur ; c’est comme si le commentaire n’existe plus dans le code
source.
On l’utilise pour éclaircir le code, pour l’expliquer, pour donner une
meilleure idée sur notre code source.
Pour écrire un commentaire on utilise le caractère #
Exemple :
i+=1 # c’est l’incrémentation de i par 1
En cas de problèmes : [Link]@[Link] CPGE - Tanger 135/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
1 Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
2 Chapitre 2 : Représentation des données
3 Chapitre 3 : Algorithmique et programmation
4 Chapitre 4 : Algorithmique et programmation (Langage Python)
5 Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les séquences : Les chaînes de caractères
Les séquences : Les tuples
Les séquences : Les listes
Les ensembles (set)
Les dictionnaires
6 Chapitre 6 : Les fichiers de textes
7 Chapitre 7 : Traitement des erreurs : les exceptions
8 Chapitre 8 : Programmation orientée objet (POO)
9 Chapitre 9 : Ingénierie numérique et simulation
En cas de problèmes : [Link]@[Link] CPGE - Tanger 136/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les fonctions
Contexte
Division du programme complexe en plusieurs sous-programmes :
Moins complexes
Indépendants
Réutilisables
En cas de problèmes : [Link]@[Link] CPGE - Tanger 137/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les fonctions
Principe
On connaît déjà certaines fonctions Python :
print()
input()
sqrt()
pow()
...
En cas de problèmes : [Link]@[Link] CPGE - Tanger 138/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les fonctions
Syntaxe
La syntaxe Python pour la définition d’une fonction est la suivante :
def Nom_Fonction(liste de paramètres) :
instruction1
instruction2
...
return expression
En cas de problèmes : [Link]@[Link] CPGE - Tanger 139/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les fonctions
Le retour de valeur(return)
L’instruction return est une instruction qui se place à l’intérieur
de la définition d’une fonction (elle peut ne pas exister, selon
les cas)
Elle indique que la fonction a terminé sa tâche et va renvoyer
(ou retourner) un résultat.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 140/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les fonctions
Syntaxe
NB :
Pour utiliser la fonction que nous venons de définir, il suffit de
l’appeler par son nom. Ainsi :
Nom_Fonction(liste de paramètres)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 141/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les fonctions
Exemple
Ecrire une fonction Multiple qui affiche les 10 premiers mul-
tiples d’un entier a
5 10 15 20 25 30 35 40 45
Utiliser cette fonction dans un programme pour afficher les 10 premiers
multiples des entiers : de 1 jusqu’à 9
1 23456789
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
En cas de problèmes : [Link]@[Link] CPGE - Tanger 142/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les fonctions
Exemple
Reformuler la fonction Multiple pour afficher les n premiers
multiples d’un entier a
Utiliser cette fonction dans un programme pour afficher les n
premiers multiples des entiers : de 1 jusqu’à 9
En cas de problèmes : [Link]@[Link] CPGE - Tanger 143/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les variables globales et locales
Les variables locales
Les variables locales sont les variables qui n’existent que dans le
corps de la fonction.
Les paramètres sont aussi des variables locales.
Quand une fonction est appelée, ses variables locales reçoivent
les valeurs des paramètres d’appel.
A la sortie de la fonction, les variables locales sont perdues.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 144/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les variables globales et locales
Les variables globales
Une variable globale définie en dehors de toute fonction.
Une variable globale est connue dans toute la portion de code
qui suit sa création.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 145/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les variables globales et locales
Exemple : variable globale
x=1
print(x)
Exemple : variable locale
def test() :
y=8
return y
En cas de problèmes : [Link]@[Link] CPGE - Tanger 146/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les variables globales et locales
Exemple
Exécuter ce programme
def test() :
x=8
print(’x locale = ’,x)
return
x=0
print(’x globale = ’,x)
test()
print(’x globale = ’,x)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 147/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les variables globales et locales
Exemple
Exécuter ce programme
def test() :
global x
x=8
print(’x locale = ’,x)
return
x=0
print(’x globale = ’,x)
test()
print(’x globale = ’,x)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 148/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les fonctions récursives
Définition
Une fonction récursive est une fonction qui s’appelle elle-même.
Qn
Exemple(le calcul de la factorielle) : ∀n ≥ 0, n! = k=1 k
def fact(n) :
f=1
for i in range(1,n+1) :
f*=i
return f
En cas de problèmes : [Link]@[Link] CPGE - Tanger 149/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les fonctions récursives
Définition
Une fonction récursive est une fonction qui s’appelle elle-même.
Qn
Exemple(le calcul de la factorielle) : ∀n ≥ 0, n! = k=1 k
def fact(n) :
f=1
for i in range(1,n+1) :
f*=i
return f
En cas de problèmes : [Link]@[Link] CPGE - Tanger 149/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les fonctions récursives
Définition
Une autre définition de la factorielle se fait par récurrence :
Qn
Exemple(le calcul de la factorielle) : ∀n ≥ 0, n! = k=1 k
1 si n = 0
n! =
n × (n − 1)! sinon.
def fact_recursive(n) :
if n==0 :
return 1
return n*fact_recursive(n-1)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 150/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les fonctions récursives
Définition
Une autre définition de la factorielle se fait par récurrence :
Qn
Exemple(le calcul de la factorielle) : ∀n ≥ 0, n! = k=1 k
1 si n = 0
n! =
n × (n − 1)! sinon.
def fact_recursive(n) :
if n==0 :
return 1
return n*fact_recursive(n-1)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 150/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les fonctions récursives
Définition
Une autre définition de la factorielle se fait par récurrence :
Qn
Exemple(le calcul de la factorielle) : ∀n ≥ 0, n! = k=1 k
1 si n = 0
n! =
n × (n − 1)! sinon.
def fact_recursive(n) :
if n==0 :
return 1
return n*fact_recursive(n-1)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 150/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les fonctions récursives
Exercices
Exercice1(puissance) : Ecrire une fonction puissance_recursive
prenant en entrée deux paramètres x et n et calculant récursivement
x n , en exploitant l’égalité : x n = x × x n−1 .
def puissance_recursive(x,n) :
if n==0 :
return 1
return x*puissance_recursive(x,n-1)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 151/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les fonctions récursives
Exercices
Exercice1(puissance) : Ecrire une fonction puissance_recursive
prenant en entrée deux paramètres x et n et calculant récursivement
x n , en exploitant l’égalité : x n = x × x n−1 .
def puissance_recursive(x,n) :
if n==0 :
return 1
return x*puissance_recursive(x,n-1)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 151/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les fonctions récursives
Exercices
Exercice2(PGCD) : Ecrire l’algorithme d’Euclide sous la forme d’une
fonction récursive
def pgcd_recursive(a,b) :
r = a%b
if r==0 :
return b
return pgcd_recursive(b,r)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 152/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
La programmation modulaire : Les fonctions
Les fonctions récursives
Exercices
Exercice2(PGCD) : Ecrire l’algorithme d’Euclide sous la forme d’une
fonction récursive
def pgcd_recursive(a,b) :
r = a%b
if r==0 :
return b
return pgcd_recursive(b,r)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 152/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les chaînes de caractères
Les chaînes de caractères
Notion
Une chaîne de caractères est une suite finie de caractères consé-
cutifs, qu’on note entre apostrophes ou guillemets :
chaine1 = ’Tu sais programmer en python’
chaine2 = ’"Non", je crois que python est difficile !’
chaine3 = "C’est facile"
En cas de problèmes : [Link]@[Link] CPGE - Tanger 153/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les chaînes de caractères
Les chaînes de caractères
Notion
A l’intérieur d’une chaîne de caractères, l’antislash (\) permet
d’insérer un certain nombre de codes spéciaux (sauts à la ligne,
tabulation, apostrophes, guillemets, etc.)
Exemple :
\n dans une chaine provoque un saut à la ligne
\t dans une chaine provoque une tabulation
l’antislash (\) permet d’écrire sur plusieurs lignes une com-
mande qui serait trop longue pour tenir sur une seule.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 154/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les chaînes de caractères
Les chaînes de caractères
Opération de concaténation
La concaténation ne fonctionne que si tout les objets sont déjà
de type chaînes de caractères
Exemple :
ch1 = ’MPSI ’
ch2 = ’et ’
ch3 = ’PCSI’
ch4 = ch1 + ch2 + ch3
print(ch4)
MPSI et PCSI
En cas de problèmes : [Link]@[Link] CPGE - Tanger 155/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les chaînes de caractères
Les chaînes de caractères
Opération de concaténation
On ne peut pas additionner une chaîne et un nombre
Exemple :
ch1 = ’MPSI’
ch2 = 1
ch3 = ch1 + ch2
TypeError : Can’t convert ’int’ object to str implicitly
En cas de problèmes : [Link]@[Link] CPGE - Tanger 156/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les chaînes de caractères
Les chaînes de caractères
Opération de multiplication
Exemple :
ch1 = ’HH !’
ch2 = ch1*4
print(ch2)
HH !HH !HH !HH !
En cas de problèmes : [Link]@[Link] CPGE - Tanger 157/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les chaînes de caractères
Les chaînes de caractères
Accès à un caractère
ch = ’abcdef’
Pour accéder à chacun des caractères de la chaine de caractères
on utilise ([i]) : où i est un indice qui indique la position du
caractère
Exemple :
print(ch[3])
’d’
print(ch[-2])
’e’
En cas de problèmes : [Link]@[Link] CPGE - Tanger 158/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les chaînes de caractères
Les chaînes de caractères
Accès à un caractère
ch = ’abcdef’
On ne peut pas modifier les caractères d’une chaine de carac-
tères :
Exemple :
ch = ’abcdef’
ch[3]=’D’
TypeError : ’str’ object does not support item assign-
ment
En cas de problèmes : [Link]@[Link] CPGE - Tanger 159/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les chaînes de caractères
Les chaînes de caractères
Longueur
Pour déterminer la longueur (c’est-à-dire le nombre de carac-
tères) d’une chaîne, en appel à la fonction len()
Exemple :
ch = ’abcdef’
x = len(ch)
print(x)
6
En cas de problèmes : [Link]@[Link] CPGE - Tanger 160/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les chaînes de caractères
Les chaînes de caractères
Sous-chaînes
ch = ’abcdefghij’
Pour extraire une sous-chaîne de ch, on écrit ch[i :j] où i est
l’indice du premier caractère de la sous-chaîne et j-1 est l’indice
du dernier caractère :
Exemple :
print(ch[0 :5]) #ch[ :5]
abcde
print(ch[2 :5])
cde
En cas de problèmes : [Link]@[Link] CPGE - Tanger 161/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les chaînes de caractères
Les chaînes de caractères
Sous-chaînes
ch = ’abcdefghij’
NB :
Si j ≤ i il n’y a pas de sous-chaîne correspondante. Python
renvoie alors une chaîne vide :
print(ch[5 :2])
Il faut préciser le pas :
print(ch[5 :2 :-1])
fed
En cas de problèmes : [Link]@[Link] CPGE - Tanger 162/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les chaînes de caractères
Les chaînes de caractères
L’opérateur in
ch = ’abcdefghij’
l’opérateur in sert à :
afficher les caractères d’une chaîne de caractères :
for c in ch :
print(c, end=’ ’)
abcdefghij
tester l’appartenance d’un caractère à une chaîne de caractères :
if ’e’ in ch :
return True
En cas de problèmes : [Link]@[Link] CPGE - Tanger 163/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les tuples
Les tuples
Définition
Python propose un autre type de données composites appelé
tuple, comme une chaîne de caractères (c.à.d n’est pas mo-
difiable), mais la différence, un tuple se compose des éléments
de n’importe quel type
Un tuple est une collection d’éléments placés entre parenthèses
et séparés par des virgules
En cas de problèmes : [Link]@[Link] CPGE - Tanger 164/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les tuples
Les tuples
Exemple
un tuple composé de 5 entiers :
T1 = (1, 10, 5, 77, 9)
un tuple composé d’un entier, un réel et un caractère :
T2 = (1, 10.5, ’a’)
un tuple composé d’un entier, un réel et une chaîne de carac-
tères :
T3 = (1, 10.5, ’cpge’)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 165/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les tuples
Les tuples
Accès à un élément
T = (1, 10.5, 4, ’cpge’)
Pour accéder à chacun des éléments d’un tuple on utilise ([i]) :
où i est un indice qui indique la position de chaque élément
Exemple :
print(T[0])
1
print(T[-1])
’cpge’
En cas de problèmes : [Link]@[Link] CPGE - Tanger 166/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les tuples
Les tuples
Concaténation
T1 = (1, 10.5, 4, ’cpge’)
T2 = (’a’, ’b’, 6)
Il est possible de coller un n-uplet et un p-uplet pour obtenir un
(n + p)-uplet. On parle de concaténation. L’opérateur corres-
pondant en Python est l’opérateur +
Exemple :
T3 = T1+T2
print(T3)
(1, 10.5, 4, ’cpge’, ’a’, ’b’, 6)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 167/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les tuples
Les tuples
L’opérateur in
T = (1, 10.5, 4, ’cpge’)
l’opérateur in sert à :
afficher les éléments d’un tuple :
for e in T :
print(e, end=’ ’)
1 10.5 4 ’cpge’
tester l’appartenance d’un élément à un tuple :
if x in T :
En cas de problèmes : [Link]@[Link] CPGE - Tanger 168/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les tuples
Les tuples
La fonction len()
T = (1, 10.5, 4, ’cpge’)
La fonction len(T) sert à déterminer la longueur de T, c’est-à-dire
le nombre d’éléments de T
Exemple :
afficher les éléments d’un tuple :
for i in range(len(T)) :
print(T[i], end=’ ’)
1 10.5 4 ’cpge’
En cas de problèmes : [Link]@[Link] CPGE - Tanger 169/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les tuples
Les tuples
L’opération [i :j :k]
T = (1, 10.5, 4, ’cpge’, 2, 5.8, ’a’)
Pour extraire un sous-tuple T_s de T, on écrit T[i :j :k] où i est l’in-
dice du premier élément de T_s, j-1 est l’indice du dernier élément
et k le pas
Exemple :
print(T[0 :3]) #T[ :3]
(1, 10.5, 4)
print(T[2 :5])
(4, ’cpge’, 2)
print(T[5 :3 :-1])
(5.8, 2)
print(T[ : :-1])
(’a’, 5.8, 2, ’cpge’, 4, 10.5, 1)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 170/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les listes
Les listes
Définition
Une liste est un tuple dont on peut changer les valeurs des
éléments
Pour construire une liste, on remplace les parenthèses par des
crochets
En cas de problèmes : [Link]@[Link] CPGE - Tanger 171/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les listes
Les listes
Exemples
une liste composée de 5 entiers :
L1 = [1, 10, 5, 77, 9]
une liste composée d’un entier, un réel et un caractère :
L2 = [1, 10.5, ’a’]
une liste composée d’un entier, un réel et une chaîne de carac-
tères :
L3 = [1, 10.5, ’cpge’]
En cas de problèmes : [Link]@[Link] CPGE - Tanger 172/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les listes
Les listes
NB
Il est possible de changer les éléments d’une liste :
L = [1, 10, 5, 77, 9]
L[3] += 3
print(L)
[1, 10, 5, 80, 9]
En cas de problèmes : [Link]@[Link] CPGE - Tanger 173/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les listes
Les listes
Exemple
L1 = [1, 10, 5, 77, 9]
un tuple composé d’un entier, un caractère et une liste :
T = (5, ’a’, L1)
print(T)
(5, ’a’, [1, 10, 5, 77, 9])
est ce qu’on peut modifier les éléments de T ?
En cas de problèmes : [Link]@[Link] CPGE - Tanger 174/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les listes
Les listes
Exemple
L1 = [1, 10, 5, 77, 9]
T = (5, ’a’, L1)
T[0] = 3
TypeError : ’tuple’ object does not support item assign-
ment
T[2][0] = 3
print(T)
(5, ’a’, [3, 10, 5, 77, 9])
En cas de problèmes : [Link]@[Link] CPGE - Tanger 175/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les listes
Les listes
Remarques
Toutes les opérations vues pour les tuples et les chaînes de
caractères sont définies :
l’opérateur in
la fonction len()
L’opérateur des tranches : [début : fin : pas]
En cas de problèmes : [Link]@[Link] CPGE - Tanger 176/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les listes
Les listes
Concaténation
Exemple :
L1 = [1, 10.5, 4, ’cpge’]
L2 = [’a’, ’b’, 6]
L3 = L1 + L2
print(L3)
[1, 10.5, 4, ’cpge’, ’a’, ’b’, 6]
En cas de problèmes : [Link]@[Link] CPGE - Tanger 177/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les listes
Les listes
Exercice
Ecrire un programme qui permet d’initialiser par le clavier et
d’afficher une liste de n éléments
La même chose pour un tuple de n éléments
En cas de problèmes : [Link]@[Link] CPGE - Tanger 178/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les listes
Les listes
Exercice
Ecrire un programme qui permet d’initialiser par le clavier et
d’afficher une liste de n éléments
La même chose pour un tuple de n éléments
liste tuple
n = int(input(’entrer n : ’)) n = int(input(’entrer n : ’))
L=[] T=()
for i in range(n) : for i in range(n) :
L += [int(input())] T += (int(input()), )
print(L) print(T)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 178/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les listes
Les listes
Exercice
Ecrire un programme qui permet d’initialiser par le clavier et
d’afficher une liste de n éléments
La même chose pour un tuple de n éléments
En cas de problèmes : [Link]@[Link] CPGE - Tanger 179/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les séquences : Les listes
Les listes
Exercice
Ecrire un programme qui permet d’initialiser par le clavier et
d’afficher une liste de n éléments
La même chose pour un tuple de n éléments
liste tuple
n = int(input(’entrer n : ’)) n = int(input(’entrer n : ’))
L = [0]*n T=()
for i in range(len(L)) : for i in range(n) :
L[i] = int(input()) x = int(input())
print(L) T += (x, )
print(T)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 179/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les ensembles (set)
Les ensembles (set)
Définition
Un ensemble est une collection d’objets sans répétition et sans
ordre
Un ensemble est noté par des accolades {...}. Exemples :
{1, 3, 7} {’c’, ’p’, ’g’, ’e’} {’cpge’,0,(1,2,3)}
L’ensemble vide se note set() et non {}
En cas de problèmes : [Link]@[Link] CPGE - Tanger 180/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les ensembles (set)
Les ensembles (set)
Comment construire un ensemble ?
En extension :
> > > E = {1, 3, 2, 7}
>>>E
{1, 2, 3, 7}
En compréhension :
> > > E = {x*x for x in range(5)}
>>>E
{0, 1, 4, 9, 16}
> > > E = {x*x for x in range(5) if x%2 == 0}
>>>E
{0, 16, 4}
Avec la fonction set() :
> > > E = set(’cpge’)
>>>E
{’c’, ’g’, ’e’, ’p’}
> > > E = set([1, 2, 3, 1, 2, 35])
>>>E
{1, 2, 3, 35}
En cas de problèmes : [Link]@[Link] CPGE - Tanger 181/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les ensembles (set)
Les ensembles (set)
Opérations sur les ensembles
En ajoutant un élément à un ensemble E avec la méthode [Link](x) :
> > > E = {1, 3, 2, 7}
> > > [Link](5)
>>>E
{1, 2, 3, 5, 7}
L’union E ∪ F = {x : x ∈ E ou x ∈ F} se note E | F en Python :
> > > {3,2,5,4} | {1,7,2,5} #{3,2,5,4}.union({1,7,2,5})
{1, 2, 3, 4, 5, 7}
L’intersection E ∩ F = {x : x ∈ E et x ∈ F} se note E & F en Python :
> > > {3,2,5,4} & {1,7,2,5} #{3,2,5,4}.intersection({1,7,2,5})
{2, 5}
L’différence E - F = {x : x ∈ E et x ∈
/ F} se note E - F en Python :
> > > {3,2,5,4} - {1,7,2,5} #{3,2,5,4}.difference({1,7,2,5})
{3, 4}
Ne pas confondre E - x qui construit un nouvel ensemble, avec la méthode
[Link](x) qui supprime x de l’ensemble E.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 182/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les ensembles (set)
Les ensembles (set)
Accès à un élément
E = {1, 2, 3, 4}
Les éléments d’un ensemble ne sont pas numérotés. On ne peut pas utiliser
une notation comme E[i]
Pour accéder aux éléments d’un ensemble on utilise l’opérateur in
L’opérateur in permet de savoir si un objet appartient à un ensemble :
> > > 2 in {1,2,3,4}
True
> > > 5 in {1,2,3,4}
False
L’opération E < F permet de tester si l’ensemble E est strictement inclus
dans l’ensemble F :
> > > {2,4} < {1,2,3,4}
True
En cas de problèmes : [Link]@[Link] CPGE - Tanger 183/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les dictionnaires
Les dictionnaires
Définition 1
Les dictionnaires sont un autre type composite
Ils ressemblent aux listes dans une certaine mesure (ils sont
modifiables comme elles)
Ils ne sont pas des séquences
L’index d’un dictionnaire appellé une clé
En cas de problèmes : [Link]@[Link] CPGE - Tanger 184/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les dictionnaires
Les dictionnaires
Définition 2
Un dictionnaire est un tableau associatif, c.à.d. un type de données
permettant de stocker des couples {clé : valeur}, avec un accès à la
valeur à partir de la clé, la clé ne pouvant être présente qu’une seule
fois dans le dictionnaire.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 185/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les dictionnaires
Les dictionnaires
Création d’un dictionnaire
Les éléments d’un dictionnaire sont enfermés dans une paire d’accolades
Un dictionnaire vide sera donc noté { }
En cas de problèmes : [Link]@[Link] CPGE - Tanger 186/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les dictionnaires
Les dictionnaires
Création d’un dictionnaire
Les éléments d’un dictionnaire sont enfermés dans une paire d’accolades
Un dictionnaire vide sera donc noté { }
En cas de problèmes : [Link]@[Link] CPGE - Tanger 187/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les dictionnaires
Les dictionnaires
Accès aux éléments
Pour accéder aux éléments contenus dans le dictionnaire, on
utilise des clés
En cas de problèmes : [Link]@[Link] CPGE - Tanger 188/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les dictionnaires
Les dictionnaires
Enlever des éléments d’un dictionnaire
L’instruction del vous permet d’effacer des éléments d’un dic-
tionnaire en fonction de leur clé
En cas de problèmes : [Link]@[Link] CPGE - Tanger 189/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les dictionnaires
Les dictionnaires
Parcours d’un dictionnaire
Vous pouvez utiliser une boucle for et l’opérateur in
L’ordre dans lequel les éléments seront extraits est imprévisible (puisqu’un
dictionnaire n’est pas une séquence)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 190/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les dictionnaires
Les dictionnaires
Parcours d’un dictionnaire
Vous pouvez utiliser la méthode keys() pour afficher les clés
Pour effectuer un traitement sur les valeurs, utiliser la méthode values()
En cas de problèmes : [Link]@[Link] CPGE - Tanger 191/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les dictionnaires
Les dictionnaires
Exercice
1 Ecrire une fonction Eleve(n) qui reçoit en paramètre le nombre des élèves
n, et qui retourne un dictionnaire eleves, dans lequel vous mémoriserez les
noms des élèves, leur âge et leur taille,
utilisez une boucle pour accepter les données entrées par l’utilisateur.
Dans le dictionnaire, le nom de l’élève servira de clé d’accès, et les valeurs
seront constituées de tuples (âge, taille), dans lesquels l’âge sera exprimé
en années (donnée de type entier), et la taille en mètres (donnée de type
réel).
2 Ecrire une fonction Afficher(eleves, nom) dans laquelle l’utilisateur pourra
fournir un nom quelconque pour obtenir en retour le couple "âge, taille"
correspondant.
Le résultat devra être une ligne de texte, telle par exemple :
"Nom : Mohamed Brahimi - âge : 15 ans - taille : 1.74 m"
En cas de problèmes : [Link]@[Link] CPGE - Tanger 192/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les dictionnaires
Les dictionnaires
En cas de problèmes : [Link]@[Link] CPGE - Tanger 193/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les dictionnaires
Les dictionnaires
Types de clés
Les clés ne sont pas nécessairement des chaînes de caractères
ou bien des nombres
Les clés sont de n’importe type non modifiable (c.à.d. de tout
type sauf les types list et dict
En cas de problèmes : [Link]@[Link] CPGE - Tanger 194/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les dictionnaires
Les dictionnaires
Types de clés
Exemple : Considérons par exemple que nous voulions répertorier
des arbres situés dans un terrain rectangulaire. Nous pouvons pour
cela utiliser un dictionnaire, dont les clés seront des tuples indiquant
les coordonnées x,y de chaque arbre :
En cas de problèmes : [Link]@[Link] CPGE - Tanger 195/275
Cours d’informatique
Cours d’informatique
Chapitre 5 : La programmation modulaire et les séquences
Les dictionnaires
Les dictionnaires
En cas de problèmes : [Link]@[Link] CPGE - Tanger 196/275
Cours d’informatique
Cours d’informatique
Chapitre 6 : Les fichiers de textes
1 Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
2 Chapitre 2 : Représentation des données
3 Chapitre 3 : Algorithmique et programmation
4 Chapitre 4 : Algorithmique et programmation (Langage Python)
5 Chapitre 5 : La programmation modulaire et les séquences
6 Chapitre 6 : Les fichiers de textes
7 Chapitre 7 : Traitement des erreurs : les exceptions
8 Chapitre 8 : Programmation orientée objet (POO)
9 Chapitre 9 : Ingénierie numérique et simulation
En cas de problèmes : [Link]@[Link] CPGE - Tanger 197/275
Cours d’informatique
Cours d’informatique
Chapitre 6 : Les fichiers de textes
Les fichiers textes
Pourquoi lire ou écrire dans des fichiers ?
On rappelle que, l’ordinateur n’exécute que les programmes pré-
sents dans sa mémoire volatile (RAM)
Quand vous fermez vos programmes, aucune de vos variables de
ces programmes n’est sauvegardée
Pour conserver durablement des informations, il faut utiliser une
mémoire permanente comme par exemple le disque dur, la clé
USB, le DVD,. . . sur lesquels le système d’exploitation organise
les données sous la forme de fichiers
En cas de problèmes : [Link]@[Link] CPGE - Tanger 198/275
Cours d’informatique
Cours d’informatique
Chapitre 6 : Les fichiers de textes
Les fichiers textes
Pourquoi lire ou écrire dans des fichiers ?
Les fichiers peuvent être, un excellent moyen :
⇒ de produire des programmes qui utilisent ou produisent des
données volumineuses
⇒ de garder les valeurs de certains objets pour pouvoir les ré-
cupérer quand vous rouvrirez votre programme.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 199/275
Cours d’informatique
Cours d’informatique
Chapitre 6 : Les fichiers de textes
Les fichiers textes
Lecture et écriture dans des fichiers
Une lecture ou une écriture dans un fichier se fait en trois phases :
On ouvre le fichier (on doit indiquer le nom du fichier)
On lit ou on écrit dans le fichier
On ferme le fichier
En cas de problèmes : [Link]@[Link] CPGE - Tanger 200/275
Cours d’informatique
Cours d’informatique
Chapitre 6 : Les fichiers de textes
Les fichiers textes
Lecture à partir d’un fichier
En pratique :
L’ouverture du fichier consiste à utiliser (la fonction open) à un
fichier existant
La lecture des lignes peut se faire soit :
globalement via la méthode read
pas à pas via la méthode readline
Chaque ligne est en fait une chaîne de caractères (str)
On ferme le fichier via la méthode close
En cas de problèmes : [Link]@[Link] CPGE - Tanger 201/275
Cours d’informatique
Cours d’informatique
Chapitre 6 : Les fichiers de textes
Les fichiers textes
Lecture à partir d’un fichier
Exemple 1 :
La méthode read() renvoie tout le contenu du fichier, que l’on capture dans
une chaîne de caractères contenu
En cas de problèmes : [Link]@[Link] CPGE - Tanger 202/275
Cours d’informatique
Cours d’informatique
Chapitre 6 : Les fichiers de textes
Les fichiers textes
Lecture à partir d’un fichier
Exemple 2 :
La méthode read(n) peut également être utilisée avec un argument. Celui-
ci indiquera combien de caractères doivent être lus, à partir de la position
déjà atteinte dans le fichier
Si la fin du fichier est déjà atteinte, read renvoie une chaîne vide
En cas de problèmes : [Link]@[Link] CPGE - Tanger 203/275
Cours d’informatique
Cours d’informatique
Chapitre 6 : Les fichiers de textes
Les fichiers textes
Lecture à partir d’un fichier
Exemple 3 : En utilisant une boucle for
Affichage des lignes d’un fichier une à une
En cas de problèmes : [Link]@[Link] CPGE - Tanger 204/275
Cours d’informatique
Cours d’informatique
Chapitre 6 : Les fichiers de textes
Les fichiers textes
Lecture à partir d’un fichier
Exemple 4 :
La méthode readline(), ne lit qu’une seule ligne à la fois
La méthode readlines() transfère toutes les lignes dans une liste de chaînes
À la fin du fichier, readline renvoie une chaîne vide, tandis que readlines
renvoie une liste vide
En cas de problèmes : [Link]@[Link] CPGE - Tanger 205/275
Cours d’informatique
Cours d’informatique
Chapitre 6 : Les fichiers de textes
Les fichiers textes
Ecriture dans un fichier
Voici les principaux modes : w ou a :
Fich1 = open(’[Link]’, ’w’) : ouverture en écriture (Write). Le contenu
du fichier est écrasé. Si le fichier n’existe pas, il est crée ;
Fich2 = open(’[Link]’, ’a’) : ouverture en écriture en mode ajout (Ap-
pend). On écrit à la fin du fichier sans écraser l’ancien contenu du fichier.
Si le fichier n’existe pas, il est crée.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 206/275
Cours d’informatique
Cours d’informatique
Chapitre 6 : Les fichiers de textes
Les fichiers textes
Ecriture dans un fichier
Exemple 5 :
La méthode write() n’accepte en paramètre que des chaînes de caractères. Si
vous voulez écrire dans votre fichier des nombres, il vous faudra les convertir en
chaîne avant de les écrire et les convertir en entier après les avoir lus
En cas de problèmes : [Link]@[Link] CPGE - Tanger 207/275
Cours d’informatique
Cours d’informatique
Chapitre 6 : Les fichiers de textes
Les fichiers textes
Ecriture dans un fichier
Exemple 6 :
Ou bien on peut utiliser une deuxième option avec le paramètre file=FICH de la
fonction print
En cas de problèmes : [Link]@[Link] CPGE - Tanger 208/275
Cours d’informatique
Cours d’informatique
Chapitre 6 : Les fichiers de textes
Les fichiers textes
Ecriture dans un fichier
Exercice :
Vous avez à votre disposition un fichier texte [Link] dont chaque ligne est la
représentation d’une valeur numérique de type réel. Par exemple :
1.8
2.6
3.2
Ecrire une fonction qui recopie ces valeurs dans un autre fichier [Link] en les
arrondissant en nombres entiers
En cas de problèmes : [Link]@[Link] CPGE - Tanger 209/275
Cours d’informatique
Cours d’informatique
Chapitre 7 : Traitement des erreurs : les exceptions
1 Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
2 Chapitre 2 : Représentation des données
3 Chapitre 3 : Algorithmique et programmation
4 Chapitre 4 : Algorithmique et programmation (Langage Python)
5 Chapitre 5 : La programmation modulaire et les séquences
6 Chapitre 6 : Les fichiers de textes
7 Chapitre 7 : Traitement des erreurs : les exceptions
8 Chapitre 8 : Programmation orientée objet (POO)
9 Chapitre 9 : Ingénierie numérique et simulation
En cas de problèmes : [Link]@[Link] CPGE - Tanger 210/275
Cours d’informatique
Cours d’informatique
Chapitre 7 : Traitement des erreurs : les exceptions
Les Exceptions
Introduction
Afin de rendre les codes python plus efficaces, il est recommandé
de gérer les erreurs d’exécution des parties sensibles du code.
La gestion des exceptions sépare d’un côté les instructions à
exécuter lorsque tout se passe bien et, d’un autre côté, une ou
plusieurs séquences d’instructions à exécuter en cas d’erreur.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 211/275
Cours d’informatique
Cours d’informatique
Chapitre 7 : Traitement des erreurs : les exceptions
Les Exceptions
Exemple
Soit le code suivant qui demande de saisir un nombre, puis il calcule
et affiche son inverse :
nombre = float(input(’Entrer un nombre : ’))
inverse = 1/nombre
print("L’inverse de", nombre, "est :", inverse)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 212/275
Cours d’informatique
Cours d’informatique
Chapitre 7 : Traitement des erreurs : les exceptions
Les Exceptions
Exemple
Si vous entrez un nombre, tout se passe bien :
Entrer un nombre : 10
L’inverse de 10.0 est : 0.1
Exception
Mais que se passe-t-il autrement ?
Entrer un nombre : bonjour
Traceback (most recent call last) :
File "<pyshell#34>", line 1, in <module>
nombre = float(input(’Entrer un nombre : ’))
ValueError : could not convert string to float : ’bonjour’
En cas de problèmes : [Link]@[Link] CPGE - Tanger 213/275
Cours d’informatique
Cours d’informatique
Chapitre 7 : Traitement des erreurs : les exceptions
Les Exceptions
Exception
Mais que se passe-t-il autrement ?
Entrer un nombre : 0
Traceback (most recent call last) :
File "<pyshell#36>", line 1, in <module>
inverse = 1/nombre
ZeroDivisionError : float division by zero
En cas de problèmes : [Link]@[Link] CPGE - Tanger 214/275
Cours d’informatique
Cours d’informatique
Chapitre 7 : Traitement des erreurs : les exceptions
Les Exceptions
Syntaxe d’une exception
Si une erreur est détectée, elle est traitée dans le bloc try ... except :
try :
nombre = float(input(’Entrer un nombre : ’))
inverse = 1/nombre
print("L’inverse de", nombre, "est :", inverse)
except :
print("Erreur")
En cas de problèmes : [Link]@[Link] CPGE - Tanger 215/275
Cours d’informatique
Cours d’informatique
Chapitre 7 : Traitement des erreurs : les exceptions
Les Exceptions
Syntaxe d’une exception
On peut distinguer les différents types d’exceptions :
try :
nombre = float(input(’Entrer un nombre : ’))
inverse = 1/nombre
print("L’inverse de", nombre, "est :", inverse)
except ValueError :
print(nombre, "n’est pas un nombre")
except ZeroDivisionError :
print("Division par zéro")
En cas de problèmes : [Link]@[Link] CPGE - Tanger 216/275
Cours d’informatique
Cours d’informatique
Chapitre 7 : Traitement des erreurs : les exceptions
Les Exceptions
Syntaxe complète d’une exception
try :
# séquence normale d’exécution
except <exception_1> as e1 :
# traitement de l’exception 1
except <exception_2> as e2 :
# traitement de l’exception 2
else :
# clause exécutée en l’absence d’erreur
finally :
# clause toujours exécutée
En cas de problèmes : [Link]@[Link] CPGE - Tanger 217/275
Cours d’informatique
Cours d’informatique
Chapitre 7 : Traitement des erreurs : les exceptions
Les Exceptions
L’instruction raise
L’instruction raise permet de lever volontairement une exception :
Exemple :
def factorial(n) :
if n < 0 :
raise ValueError("n doit être >= 0")
if n%2 == 0 :
raise ValueError("n doit être un entier")
f=1
i=2
while i <= n :
f *= i
i += 1
return f
En cas de problèmes : [Link]@[Link] CPGE - Tanger 218/275
Cours d’informatique
Cours d’informatique
Chapitre 7 : Traitement des erreurs : les exceptions
Les Exceptions
Exercices
1 Modifier le code python précédent de manière à ressaisir le
nombre en cas d’erreur.
2 Ecrire une fonction racine(nbr) qui calcule la racine carrée d’un
nombre nbr, avec gestion des exceptions.
3 Ecrire une fonction lireFichier(nomFichier) qui lit le contenu
du fichier nomFichier, avec gestion des exceptions.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 219/275
Cours d’informatique
Cours d’informatique
Chapitre 8 : Programmation orientée objet (POO)
1 Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
2 Chapitre 2 : Représentation des données
3 Chapitre 3 : Algorithmique et programmation
4 Chapitre 4 : Algorithmique et programmation (Langage Python)
5 Chapitre 5 : La programmation modulaire et les séquences
6 Chapitre 6 : Les fichiers de textes
7 Chapitre 7 : Traitement des erreurs : les exceptions
8 Chapitre 8 : Programmation orientée objet (POO)
9 Chapitre 9 : Ingénierie numérique et simulation
En cas de problèmes : [Link]@[Link] CPGE - Tanger 220/275
Cours d’informatique
Cours d’informatique
Chapitre 8 : Programmation orientée objet (POO)
POO
Introduction
Type de programmation :
1 Programmation impérative :
séquences d’instructions
l’affectation des variables
l’appel à des fonctions
les conditions (if ... else ... elif ...)
les boucles (for et while)
2 Programmation fonctionnelle : emboîtement de fonctions
3 Programmation objet : organisation d’un programme en le grou-
pant en objets
En cas de problèmes : [Link]@[Link] CPGE - Tanger 221/275
Cours d’informatique
Cours d’informatique
Chapitre 8 : Programmation orientée objet (POO)
POO
Introduction
Exemple : Classe : Personne = Attributs + Méthodes
1 Attributs : Nom, Prenom, Age, ...
2 Méthodes : Manger(), Boire(), ...
Personne
Non
Prenom
..
.
def Manger()
..
.
3 Classe : Ensemble incluant des variables (attributs) et des fonctions (mé-
thodes)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 222/275
Cours d’informatique
Cours d’informatique
Chapitre 8 : Programmation orientée objet (POO)
POO
Méthodes
Une méthode décrive le comportement des objets instanciés à
partir d’une classe
Une méthode c’est une fonction avec un premier paramètre self
(obligatoire)
class Personne :
..
.
def Manger(self) :
..
.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 223/275
Cours d’informatique
Cours d’informatique
Chapitre 8 : Programmation orientée objet (POO)
POO
Exemple complet
Classe Personne
class Personne :
def __init__(self,nom,prenom,age) :#Constructeur
[Link] = nom #nom est l’attribut d’instance
[Link] = prenom #prenom est l’attribut d’instance
[Link] = age #age est l’attribut d’instance
def Manger(self) :#Méthode 1
print([Link]+" mange")
def Boire(self) :#Méthode 2
print([Link]+" boit")
En cas de problèmes : [Link]@[Link] CPGE - Tanger 224/275
Cours d’informatique
Cours d’informatique
Chapitre 8 : Programmation orientée objet (POO)
POO
Instanciation
Les classes sont des fabriques d’objets : on construit d’abord l’usine avant
de produire des objets (instances)
On instancie un objet (c-à-d. qu’on le produit à partir de l’usine (classe))
en appelant le nom de sa classe comme s’il s’agissait d’une fonction
class Personne :
def __init__(self,nom,prenom,age) :#Constructeur
[Link] = nom #nom est l’attribut d’instance
[Link] = prenom #prenom est l’attribut d’instance
[Link] = age #age est l’attribut d’instance
def Manger(self) :#Méthode 1
...
p1 = Personne("FAHSI","Ali",30) #p1 est une instance de la classe Personne
print([Link])
30
En cas de problèmes : [Link]@[Link] CPGE - Tanger 225/275
Cours d’informatique
Cours d’informatique
Chapitre 8 : Programmation orientée objet (POO)
POO
Initialisateur ou bien Constructeur
Un constructeur : est une méthode (fonction), sans return
Porte un nom imposé par Python : __init__
Lors de l’instanciation d’un objet, le constructeur __init__ est
automatiquement appelé pour initialiser l’objet.
class Point :
def __init__(self,x,y) :#Constructeur
self.x = x #x est l’attribut d’instance
self.y = y #y est l’attribut d’instance
pt1 = Point(1,4) #instanciation de l’objet pt1
print(pt1.x)
1
print(pt1.y)
4
En cas de problèmes : [Link]@[Link] CPGE - Tanger 226/275
Cours d’informatique
Cours d’informatique
Chapitre 8 : Programmation orientée objet (POO)
POO
class Point :
def __init__(self,x,y) :#Constructeur
self.x = x #x est l’attribut d’instance
self.y = y #y est l’attribut d’instance
def afficherX(self) :#Méthode 1
return self.x
def afficherY(self) :#Méthode 2
return self.y
def deplacerPoint(self,dx,dy) :#Méthode 3
self.x+=dx
self.y+=dy
pt1 = Point(1,4) #instanciation de l’objet pt1
print([Link](), [Link]())
1, 4
[Link](2,3)
print(pt1.x, pt1.y)
3, 7
En cas de problèmes : [Link]@[Link] CPGE - Tanger 227/275
Cours d’informatique
Cours d’informatique
Chapitre 8 : Programmation orientée objet (POO)
POO
Exercice1
Ecrire une classe Employe avec les attributs suivants :
nom : Le nom de famille de l’employé,
prenom : Le prénom de l’employé.
salaire : Le salaire mensuel
La classe Employe doit disposer du constructeur suivant :
__init__(self, nom, prenom, salaire)
La classe Employe doit contenir les méthodes suivantes :
information(self) : affiche les information d’un employé,
gains(self) : retourne le salaire.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 228/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
1 Chapitre 1 : Environnement matériel et logiciel d’un système informatique (S.I)
2 Chapitre 2 : Représentation des données
3 Chapitre 3 : Algorithmique et programmation
4 Chapitre 4 : Algorithmique et programmation (Langage Python)
5 Chapitre 5 : La programmation modulaire et les séquences
6 Chapitre 6 : Les fichiers de textes
7 Chapitre 7 : Traitement des erreurs : les exceptions
8 Chapitre 8 : Programmation orientée objet (POO)
9 Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
Le module matplotlib
Résolution d’équation algébrique : Algorithme de dichotomie
Résolution d’équation algébrique : Algorithme de Newton
Résolution d’équation algébrique : [Link] et [Link]
Résolution d’équation algébrique : Racines d’un polynôme
En cas de problèmes : [Link]@[Link] CPGE - Tanger 229/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Ingénierie numérique et simulation
En cas de problèmes : [Link]@[Link] CPGE - Tanger 230/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Ingénierie numérique et simulation
Problématique
⇒ Souvent, il n’y a pas de solutions analytiques pour des formules
mathématiques.
Solution
Le calcul scientifique sert à résoudre des problèmes rencontrés
en mathématiques, sciences physiques ou chimie grâce à l’utili-
sation d’algorithmes numériques performants.
On s’interesse pas à résoudre la formule mathématique donnée.
⇒Mais on s’interesse à une solution numérique aussi proches
que possible de la solution réelle.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 231/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Ingénierie numérique et simulation
Problématique
⇒ Souvent, il n’y a pas de solutions analytiques pour des formules
mathématiques.
Solution
Le calcul scientifique sert à résoudre des problèmes rencontrés
en mathématiques, sciences physiques ou chimie grâce à l’utili-
sation d’algorithmes numériques performants.
On s’interesse pas à résoudre la formule mathématique donnée.
⇒Mais on s’interesse à une solution numérique aussi proches
que possible de la solution réelle.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 231/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Ingénierie numérique et simulation
Problématique
⇒ Souvent, il n’y a pas de solutions analytiques pour des formules
mathématiques.
Solution
Le calcul scientifique sert à résoudre des problèmes rencontrés
en mathématiques, sciences physiques ou chimie grâce à l’utili-
sation d’algorithmes numériques performants.
On s’interesse pas à résoudre la formule mathématique donnée.
⇒Mais on s’interesse à une solution numérique aussi proches
que possible de la solution réelle.
En cas de problèmes : [Link]@[Link] CPGE - Tanger 231/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Ingénierie numérique et simulation
Introduction
Ce chapitre explique comment utiliser les fonctions fournies par
Python et ses bibliothèques (numpy, scipy et matplotlib)
Module numpy : traitement des tableaux
Module scipy : méthodes numériques (Résolution d’équations
sur les réels (f (x) = 0), d’équations differentielles, ...)
Module matplotlib : représentation graphique
En cas de problèmes : [Link]@[Link] CPGE - Tanger 232/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Les tableaux de numpy
numpy permet de créer un tableau (array) de taille fixée, multidimensionnel
contenant des élements de méme type et de même taille
Pour utiliser numpy :
1 import numpy
2 Ou sous une abréviation : import numpy as np
3 ou par la commande : from numpy import *
La syntaxe : array(liste)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 233/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Les tableaux de numpy
numpy permet de créer un tableau (array) de taille fixée, multidimensionnel
contenant des élements de méme type et de même taille
Pour utiliser numpy :
1 import numpy
2 Ou sous une abréviation : import numpy as np
3 ou par la commande : from numpy import *
La syntaxe : array(liste)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 233/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Les tableaux de numpy
numpy permet de créer un tableau (array) de taille fixée, multidimensionnel
contenant des élements de méme type et de même taille
Pour utiliser numpy :
1 import numpy
2 Ou sous une abréviation : import numpy as np
3 ou par la commande : from numpy import *
La syntaxe : array(liste)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 233/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Les tableaux de numpy
numpy permet de créer un tableau (array) de taille fixée, multidimensionnel
contenant des élements de méme type et de même taille
Pour utiliser numpy :
1 import numpy
2 Ou sous une abréviation : import numpy as np
3 ou par la commande : from numpy import *
La syntaxe : array(liste)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 233/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Création de tableaux
Indiquer le type des éléments du tableau avec l’instruction dtype :
dtype = int pour les nombres entiers
dtype = float pour les nombres réels
dtype = complex pour les nombres complexes
En cas de problèmes : [Link]@[Link] CPGE - Tanger 234/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Création de tableaux spéciaux
La fonction ones pour créer des tableaux remplis par 1
La fonction zeros pour créer des tableaux remplis par 0
En cas de problèmes : [Link]@[Link] CPGE - Tanger 235/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Création de tableaux spéciaux
La fonction arange qui est l’équivalent de range avec un pas
de type float
La fonction linspace retourne un tableau dont ces éléments sont
répartis entre deux bornes avec un nombre donné d’éléments
En cas de problèmes : [Link]@[Link] CPGE - Tanger 236/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Création de tableaux spéciaux
Les fonctions identity et eye retournent la matrice identité (des
1 sur la diagonale et des zéros ailleurs)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 237/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Informations d’un tableau
shape retourne un tuple des dimensions d’un tableau
size retourne La taille totale d’un tableau
En cas de problèmes : [Link]@[Link] CPGE - Tanger 238/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Informations d’un tableau
Les fonctions : sum( ), prod( ), mean( ), min( ) et max( )
En cas de problèmes : [Link]@[Link] CPGE - Tanger 239/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Accès et modification d’éléments de tableaux
La fonction fill(v) permet de remplir le tableau avec la valeur v
En cas de problèmes : [Link]@[Link] CPGE - Tanger 240/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Opérations sur les tableaux
Opérateur + : pour calculer la somme
Opérateur - : pour calculer la soustraction
Opérateur * : pour calculer ? ? ?
En cas de problèmes : [Link]@[Link] CPGE - Tanger 241/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Opérations sur les tableaux
Opérateur + : pour calculer la somme
Opérateur - : pour calculer la soustraction
Opérateur * : ATTENTION, ce n’est pas le produit matriciel, c’est le
produit coefficient par coefficient
En cas de problèmes : [Link]@[Link] CPGE - Tanger 242/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Produit de matrices
La fonction dot( ) retourne le produit de deux matrices (Produit
matriciel)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 243/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Transposition de matrices
La fonction transpose( ) retourne la transposée d’une matrice
En cas de problèmes : [Link]@[Link] CPGE - Tanger 244/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Transformation de matrices
La fonction reshape(l,c) retourne une nouvelle forme d’un tableau
sans modifier ses données, avec l représente le nouveau nombre de
lignes et c le nouveau nombre de colonnes
En cas de problèmes : [Link]@[Link] CPGE - Tanger 245/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Aplatir une matrice
La fonction flatten( ) vue d’une dimension d’un tableau sans modi-
fication
En cas de problèmes : [Link]@[Link] CPGE - Tanger 246/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Copie ou référence
Les variables sont des références aux objets
En cas de problèmes : [Link]@[Link] CPGE - Tanger 247/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Copie ou référence
La fonction copy() retourne une copie d’un tableau
En cas de problèmes : [Link]@[Link] CPGE - Tanger 248/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Accès et modification d’éléments de tableaux
a[i][j] ou bien a[i,j] correspond à l’élément de la ligne i et de la
colonne j dans la matrice a
En cas de problèmes : [Link]@[Link] CPGE - Tanger 249/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Extraction des éléments d’un tableau
Entre [ ] peut figurer une condition
a[i] pour extraire la ligne i de la matrice a
a[ :,j] pour extraire la colonne j de la matrice a
En cas de problèmes : [Link]@[Link] CPGE - Tanger 250/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Extraction des sous-tableaux
a[k : l, m : n] renvoie la sous-tableaux (aij ) avec k ≤ i < l et
m≤j <n
En cas de problèmes : [Link]@[Link] CPGE - Tanger 251/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Valeurs aléatoires
La fonction [Link] pour générer des valeurs aléa-
toires entre 0 et 1. (Pour tester des algorithmes matriciels).
La fonction [Link].random_integers(i, j, k) retourne un
vecteur de k nombres entiers entre i et j, j inclus
En cas de problèmes : [Link]@[Link] CPGE - Tanger 252/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Algèbre linéaire
La fonction det( ) permet de calculer le déterminant d’une ma-
trice
La fonction inv( ) permet de calculer l’inverse d’une matrice
En cas de problèmes : [Link]@[Link] CPGE - Tanger 253/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Algèbre linéaire
La fonction eigvals( ) permet de calculer les valeurs propres
La fonction eig( ) permet de calculer les valeurs propres et base
de vecteurs propres
En cas de problèmes : [Link]@[Link] CPGE - Tanger 254/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module numpy
numpy
Exercices
1 Créer un vecteur nul de la taille 10
2 Créer un vecteur nul de la taille 10 dont la case 5 est 1
3 Créer un vecteur avec des valeurs allant de 5 à 15
4 Créer un
√vecteur à 100 composantes commençant à 10 avec un
pas de 2
En cas de problèmes : [Link]@[Link] CPGE - Tanger 255/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module matplotlib
matplotlib
[Link]
Pour tracer des graphes de fonctions nous n’utiliserons le sous-
module pyplot, importé, avec alias, à l’aide de la commande :
import [Link] as plt
Les fonctions essentielles de pyplot sont :
plot( ) : pour tracer des points et des courbes
show( ) : pour afficher le graphique
En cas de problèmes : [Link]@[Link] CPGE - Tanger 256/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module matplotlib
matplotlib
[Link]
Utiliser la fonction plot(argument1, argument2, argument3) avec :
1 en 1er argument la liste des abscisses
2 en 2eme argument la liste des ordonnées
3 en 3eme argument [optionnel] le motif des points :
’.’ : un petit point,
’o’ : un gros point,
’+’ : une croix,
’*’ : une étoile,
’-’ : points reliés par des segments
’- -’ : points reliés par des segments en pointillés
’-o’ : gros points reliés par des segments (on peut combiner les
options)
’b’,’r’,’g’,’y’ pour de la couleur (bleu, rouge, vert, jaune, etc...)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 257/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module matplotlib
matplotlib
[Link]
Exemple : Pour tracer un nuage de points reliés par des segments
En cas de problèmes : [Link]@[Link] CPGE - Tanger 258/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module matplotlib
matplotlib
[Link]
Pour améliorer le graphique en ajoutant quelques fonctions :
axis(L) prend une liste de L=[xmin, xmax, ymin, ymax] pour spécifier les
limites des axes des abscisses et des ordonnées
xlabel(’Axe des x’) pour afficher un label de l’axe des abscisses
ylabel(’Axe des y’) pour afficher un label de l’axe des ordonnées
title(’Titre’) pour afficher un titre
text(x, y, ’text’) pour afficher un text dans la position (x,y)
grid(True) pour afficher une grille
legend((’elt_légende1’,’elt_légende2’), ’upper right’, shadow = True)
pour afficher une légende en haut à droite
En cas de problèmes : [Link]@[Link] CPGE - Tanger 259/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module matplotlib
matplotlib
En cas de problèmes : [Link]@[Link] CPGE - Tanger 260/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module matplotlib
matplotlib
[Link]
Exercices : Tracé à l’aide de [Link]
1 La courbe représentative de y=tan(x) pour x ∈ [−π/2 + 0.1, π/2 − 0.1]
2 Les courbes représentatives de y=ln(x) et de y=sin(x)/x pour x ∈ ]0, 10]
3 La courbe paramétrée x(t) = [Link](t) ; y(t) = [Link](t) pour t ∈ [0, 10]
En cas de problèmes : [Link]@[Link] CPGE - Tanger 261/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module matplotlib
matplotlib
En cas de problèmes : [Link]@[Link] CPGE - Tanger 262/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module matplotlib
Résolution d’équation algébrique
f(x) = 0
On peut toujours écrire une équation sous la forme : f(x) = 0
Il faut chercher les solutions de cette équation, où f est une fonction
à valeurs réelles
Méthodes proposées
L’objectif est de trouver une solution approchée. Deux méthodes vont
être présentées :
1 La méthode de dichotomie : s’applique à une fonction continue
2 La méthode de Newton : fournit une vitesse de convergence bien
plus élevée
En cas de problèmes : [Link]@[Link] CPGE - Tanger 263/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Le module matplotlib
Résolution d’équation algébrique
f(x) = 0
On peut toujours écrire une équation sous la forme : f(x) = 0
Il faut chercher les solutions de cette équation, où f est une fonction
à valeurs réelles
Méthodes proposées
L’objectif est de trouver une solution approchée. Deux méthodes vont
être présentées :
1 La méthode de dichotomie : s’applique à une fonction continue
2 La méthode de Newton : fournit une vitesse de convergence bien
plus élevée
En cas de problèmes : [Link]@[Link] CPGE - Tanger 263/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Résolution d’équation algébrique : Algorithme de dichotomie
Résolution d’équation algébrique : La méthode de
dichotomie
On cherche une racine xsol de l’équation f(x) = 0
Principe de la recherche d’un zéro de fonction par dichotomie
On suppose que :
1 f est une fonction continue sur un intervalle [a,b]
2 f(a) et f(b) sont de signes contraires : c.à.d. (f(a)*f(b)<0)
3 Le théorème des valeurs intermédiaires nous assure que f s’an-
nule entre a et b
⇒ Existence d’au moins un zéro de f dans [a,b]
En cas de problèmes : [Link]@[Link] CPGE - Tanger 264/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Résolution d’équation algébrique : Algorithme de dichotomie
Résolution d’équation algébrique : La méthode de
dichotomie
Algorithme
Soit [a,b] l’intervalle de recherche.
Démarche à répéter :
1 m = (a+b)/2
2 on calcule f(m)
3 si f(a)*f(m)<0 c.à.d. le zéro se
trouve dans [a,m]
4 sinon, le zéro se trouve dans [m,b]
En cas de problèmes : [Link]@[Link] CPGE - Tanger 265/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Résolution d’équation algébrique : Algorithme de dichotomie
Résolution d’équation algébrique : La méthode de
dichotomie
Terminaison de l’algorithme
Pour arrêter l’algorithme :
1 il faut fixer une marge d’erreur (ε condition d’arrêt)
2 à chaque itération i la longueur bi − ai ≥ 0 est divisée par 2
b−a
3 c.à.d : on arrête l’algorithme lorsque bi − ai = 2n ≤ ε, tel que
n est le nombre d’itération
4 ou bien (bi − ai )≤ ε
bi +ai
5 on décide de renvoyer 2
En cas de problèmes : [Link]@[Link] CPGE - Tanger 266/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Résolution d’équation algébrique : Algorithme de dichotomie
Résolution d’équation algébrique : La méthode de
dichotomie
Exemple
Soit la fonction f (x) = x 2 − 2
1 f est continue sur l’intervalle [1, 2]
2 f(1)=-1 et f(2)=2⇒f(1)*f(2)<0 et f(x)=0 possède une solution dans [1,2]
2+1
3 m= = 1.5 ⇒ f(1.5) = 0.25, c.à.d : f(1)*f(1.5)<0 et f(x)=0 possède
2
une solution dans [1,1.5]
1.5+1
4 m= = 1.25 ⇒ f(1.25) = -0.4675, c.à.d : f(1.25)*f(1.5)<0 et f(x)=0
2
possède une solution dans [1.25,1.5]
5 ...
6 f(1.41430664062)> 0> f(1.4140625)⇒f(x)=0 possède une solution dans
[1.4140625,1.41430664062]
7 On arrête l’algorithme lorsqu’on atteint une valeur correspondant à la pré-
cision ε demandée
En cas de problèmes : [Link]@[Link] CPGE - Tanger 267/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Résolution d’équation algébrique : Algorithme de dichotomie
Résolution d’équation algébrique : La méthode de
dichotomie (implémentation python)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 268/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Résolution d’équation algébrique : Algorithme de Newton
Résolution d’équation algébrique : La méthode de
Newton
Principe de la recherche d’un zéro de fonction par La méthode de
Newton
Soit [a,b] l’intervalle de recherche, on suppose que :
1 f est dérivable sur [a, b]
2 la fonction dérivée f’ ne s’annule pas sur [a, b]
⇒ On veut construire une suite (xn )n∈N convergente vers xsol
En cas de problèmes : [Link]@[Link] CPGE - Tanger 269/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Résolution d’équation algébrique : Algorithme de Newton
Résolution d’équation algébrique : La méthode de
Newton
Principe La méthode de Newton
cette méthode considère la suite définie par son premier
terme x0 = b et par la relation : xn+1 = xn − ff0(x(xnn)) , cette
suite obtenue par cette démarche :
on considère alors la tangente à la courbe de f au
point d’abscisse x0 = b, qui a pour équation y =
f 0 (x0 )(x − x0 ) + f (x0 )
le point d’intersection de cette droite et de l’axe
des abscisses permet d’approcher xsol
on note x1 vérifiant f 0 (x0 )(x1 − x0 ) + f (x0 ) = 0,
c.à.d que l’on pose x1 = x0 − ff0(x(x00))
Puis on recommence : le réel xn étant construit, on
pose : xn+1 = xn − ff0(x(xnn))
En cas de problèmes : [Link]@[Link] CPGE - Tanger 270/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Résolution d’équation algébrique : Algorithme de Newton
Résolution d’équation algébrique : La méthode de
Newton
Principe La méthode de Newton
pour arrêter les calculs, on prend comme critère d’arrêt (ε condi-
tion d’arrêt), tel que : xn+1 − xn ≤ ε
Il faut savoir calculer la fonction dérivée, et avoir démontré que
pour une valeur x0 la suite (xn ) est bien définie (pas de division
par zéro)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 271/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Résolution d’équation algébrique : Algorithme de Newton
Résolution d’équation algébrique : La méthode de
Newton (implémentation python)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 272/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Résolution d’équation algébrique : [Link] et [Link]
Résolution d’équation algébrique : Les fonctions
prédéfinies de la bibliothèque scipy
Fonction prédéfinies de dichotomie et de newton
python dispose de bibliothèques de fonctions scientifiques prédéfinies
la bibliothèque [Link] contient la méthode de dichotomie et de
newton :
1 la fonction bisect qui implémente la méthode de dichotomie
2 la fonction newton qui implémente la méthode de dichotomie
import [Link] as sp
.. .. ..
. . .
[Link](f, borne_inf, borne_sup)
.. .. ..
. . .
[Link](f, position_depart, derivée_f)
En cas de problèmes : [Link]@[Link] CPGE - Tanger 273/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Résolution d’équation algébrique : [Link] et [Link]
Résolution d’équation algébrique : Les fonctions
prédéfinies de la bibliothèque scipy
[Link]
Exercice :chercher la racine xsol de l’équation f(x) = cos(x) en utilisant :
1 la fonction bisect ∀x ∈ [0, π]
2 la fonction newton ∀x ∈ [π/100, π/3]
En cas de problèmes : [Link]@[Link] CPGE - Tanger 274/275
Cours d’informatique
Cours d’informatique
Chapitre 9 : Ingénierie numérique et simulation
Résolution d’équation algébrique : Racines d’un polynôme
Résolution d’équation algébrique : (Racines d’un
polynôme)
Fonction prédéfinie roots
La fonction roots de la bibliothèque numpy détermine les racines
dans C d’un polynôme
En cas de problèmes : [Link]@[Link] CPGE - Tanger 275/275
Cours d’informatique