0% ont trouvé ce document utile (0 vote)
396 vues304 pages

Cours d'informatique : Systèmes et programmation

Le document présente un cours d'informatique pour les classes préparatoires MPSI-PCSI, structuré en plusieurs chapitres abordant des thèmes tels que l'environnement matériel et logiciel, la représentation des données, l'algorithmique et la programmation, ainsi que la programmation orientée objet. Chaque chapitre traite des concepts fondamentaux, des composants d'un système informatique, et des langages de programmation, notamment Python. Le cours est destiné aux étudiants de la CPGE à Tanger pour l'année scolaire 2019/2020.

Transféré par

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

Cours d'informatique : Systèmes et programmation

Le document présente un cours d'informatique pour les classes préparatoires MPSI-PCSI, structuré en plusieurs chapitres abordant des thèmes tels que l'environnement matériel et logiciel, la représentation des données, l'algorithmique et la programmation, ainsi que la programmation orientée objet. Chaque chapitre traite des concepts fondamentaux, des composants d'un système informatique, et des langages de programmation, notamment Python. Le cours est destiné aux étudiants de la CPGE à Tanger pour l'année scolaire 2019/2020.

Transféré par

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

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

Vous aimerez peut-être aussi