Vous êtes sur la page 1sur 62

Informatique

Révisions

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 1 / 31


Sommaire

Représentation binaire d'un entier


Représentation binaire des nombres réels
Quelques algorithmes
Recherche dans une liste
Recherche du maximum dans une liste de nombres
Calcul de la moyenne
Calcul de la variance
Recherche par dichotomie dans un tableau trié
Recherche par dichotomie du zéro d'une fonction continue
Méthodes des rectangles pour le calcul approché d'une intégrale
Méthodes des trapèzes pour le calcul approché d'une intégrale
Recherche d'un mot dans une chaîne de caractères
Résolution approchée d'une équation, méthode de Newton
Résolution approchée d'une équation diérentielle ordinaire par la méthode
d'Euler
Résolution d'un système de Cramer par la méthode de Gauss

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 2 / 31


Représentation des nombres

Le programme :
Principe de la représentation des nombres entiers en mémoire.
On introduit ou rappelle brièvement le principe de la représentation
binaire ainsi que ses limites.
Principe de la représentation des nombres réels en mémoire.
On se limite à la dénition de l'écriture en virgule ottante normalisée
et on explique le codage d'un nombre réel en général sans
entrer dans les cas particuliers comme les non-nombres  not a
number ou les innis.
Conséquences de la représentation limitée des nombres réels en
machine.
On illustre, sur des exemples simples, pouvant être illustrés au moyen
d'une calculatrice, les phénomènes de dépassement de capacité (ou
 overow ) de séquences de calculs conduisant à des résultats faux
et erreurs d'arrondis. On illustre aussi le problème de la comparaison à
zéro, par exemple dans une équation du second degré.
MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 3 / 31
Représentation binaire d'un entier :

si n = 24 a4 + 23 a3 + 22 a2 + 2a1 + a0 avec ai = 0 ou 1, on note


n = a4 a3 a2 a1 a02
Exemple 142 = 27 + 23 + 22 + 2
En binaire, on le représente par 100011102

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 4 / 31


Représentation binaire d'un entier :

si n = 24 a4 + 23 a3 + 22 a2 + 2a1 + a0 avec ai = 0 ou 1, on note


n = a4 a3 a2 a1 a02
Exemple 142 = 27 + 23 + 22 + 2
En binaire, on le représente par 100011102

• Quelle est la représentation binaire de 134 ?


• Quelle est la représentation décimale de 110101012 ?

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 4 / 31


Représentation binaire d'un entier :

si n = 24 a4 + 23 a3 + 22 a2 + 2a1 + a0 avec ai = 0 ou 1, on note


n = a4 a3 a2 a1 a02
Exemple 142 = 27 + 23 + 22 + 2
En binaire, on le représente par 100011102

• Quelle est la représentation binaire de 134 ?


• Quelle est la représentation décimale de 110101012 ?
Représentation binaire de 134 : 100001102

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 4 / 31


Représentation binaire d'un entier :

si n = 24 a4 + 23 a3 + 22 a2 + 2a1 + a0 avec ai = 0 ou 1, on note


n = a4 a3 a2 a1 a02
Exemple 142 = 27 + 23 + 22 + 2
En binaire, on le représente par 100011102

• Quelle est la représentation binaire de 134 ?


• Quelle est la représentation décimale de 110101012 ?
Représentation binaire de 134 : 100001102
Représentation décimale de 110101012 : 213

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 4 / 31


Principe de la représentation des nombres entiers en

mémoire.

Entiers positifs :
Exemple :
46 = 0 × 27 + 0 × 26 + 1 × 25 + 0 × 24 + 1 × 23 + 1 × 22 + 1 × 21 + 0 × 20 .
Représentation binaire : 1011102
Sur 8 bits, 46 est représenté par [0, 0, 1, 0, 1, 1, 1, 0]

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 5 / 31


Principe de la représentation des nombres entiers en

mémoire.

Entiers positifs :
Exemple :
46 = 0 × 27 + 0 × 26 + 1 × 25 + 0 × 24 + 1 × 23 + 1 × 22 + 1 × 21 + 0 × 20 .
Représentation binaire : 1011102
Sur 8 bits, 46 est représenté par [0, 0, 1, 0, 1, 1, 1, 0]

• Quelle est la représentation sur 8 bits de 36 ?


• Quel nombre est représenté par [1, 0, 1, 0, 1, 0, 1, 0] ?
• Quels sont les entiers naturels que l'on peut représenter sur 8 bits ?

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 5 / 31


Principe de la représentation des nombres entiers en

mémoire.

Entiers positifs :
Exemple :
46 = 0 × 27 + 0 × 26 + 1 × 25 + 0 × 24 + 1 × 23 + 1 × 22 + 1 × 21 + 0 × 20 .
Représentation binaire : 1011102
Sur 8 bits, 46 est représenté par [0, 0, 1, 0, 1, 1, 1, 0]

• Quelle est la représentation sur 8 bits de 36 ?


• Quel nombre est représenté par [1, 0, 1, 0, 1, 0, 1, 0] ?
• Quels sont les entiers naturels que l'on peut représenter sur 8 bits ?
La représentation sur 8 bits de 36 est [0,0,1,0,0,1,0,0]

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 5 / 31


Principe de la représentation des nombres entiers en

mémoire.

Entiers positifs :
Exemple :
46 = 0 × 27 + 0 × 26 + 1 × 25 + 0 × 24 + 1 × 23 + 1 × 22 + 1 × 21 + 0 × 20 .
Représentation binaire : 1011102
Sur 8 bits, 46 est représenté par [0, 0, 1, 0, 1, 1, 1, 0]

• Quelle est la représentation sur 8 bits de 36 ?


• Quel nombre est représenté par [1, 0, 1, 0, 1, 0, 1, 0] ?
• Quels sont les entiers naturels que l'on peut représenter sur 8 bits ?
La représentation sur 8 bits de 36 est [0,0,1,0,0,1,0,0]
Le nombre représenté par [1, 0, 1, 0, 1, 0, 1, 0] est 170

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 5 / 31


Principe de la représentation des nombres entiers en

mémoire.

Entiers positifs :
Exemple :
46 = 0 × 27 + 0 × 26 + 1 × 25 + 0 × 24 + 1 × 23 + 1 × 22 + 1 × 21 + 0 × 20 .
Représentation binaire : 1011102
Sur 8 bits, 46 est représenté par [0, 0, 1, 0, 1, 1, 1, 0]

• Quelle est la représentation sur 8 bits de 36 ?


• Quel nombre est représenté par [1, 0, 1, 0, 1, 0, 1, 0] ?
• Quels sont les entiers naturels que l'on peut représenter sur 8 bits ?
La représentation sur 8 bits de 36 est [0,0,1,0,0,1,0,0]
Le nombre représenté par [1, 0, 1, 0, 1, 0, 1, 0] est 170
Sur 8 bits, on peut représenter les entiers compris entre 0 et 255
MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 5 / 31
Principe de la représentation des nombres entiers en

mémoire.

Entiers relatifs : la notation en complément à 2


Exemple : représentation de -46 sur 8 bits.
46 est représenté par [0, 0, 1, 0, 1, 1, 1, 0].
On prend le complément à 2 : [1, 1, 0, 1, 0, 0, 0, 1] et on rajoute 1.
−46 est représenté par [1, 1, 0, 1, 0, 0, 1, 0].
Avec 8 bits, ce principe permet de coder les entiers compris entre -128 et
127

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 6 / 31


Principe de la représentation des nombres entiers en

mémoire.

Entiers relatifs : la notation en complément à 2


Exemple : représentation de -46 sur 8 bits.
46 est représenté par [0, 0, 1, 0, 1, 1, 1, 0].
On prend le complément à 2 : [1, 1, 0, 1, 0, 0, 0, 1] et on rajoute 1.
−46 est représenté par [1, 1, 0, 1, 0, 0, 1, 0].
Avec 8 bits, ce principe permet de coder les entiers compris entre -128 et
127

• Quelle est la représentation de 75 ?


• Quelle est la représentation de -75 ?

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 6 / 31


Principe de la représentation des nombres entiers en

mémoire.

Entiers relatifs : la notation en complément à 2


Exemple : représentation de -46 sur 8 bits.
46 est représenté par [0, 0, 1, 0, 1, 1, 1, 0].
On prend le complément à 2 : [1, 1, 0, 1, 0, 0, 0, 1] et on rajoute 1.
−46 est représenté par [1, 1, 0, 1, 0, 0, 1, 0].
Avec 8 bits, ce principe permet de coder les entiers compris entre -128 et
127

• Quelle est la représentation de 75 ?


• Quelle est la représentation de -75 ?
Représentation de 75 : [0, 1, 0, 0, 1, 0, 1, 1]

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 6 / 31


Principe de la représentation des nombres entiers en

mémoire.

Entiers relatifs : la notation en complément à 2


Exemple : représentation de -46 sur 8 bits.
46 est représenté par [0, 0, 1, 0, 1, 1, 1, 0].
On prend le complément à 2 : [1, 1, 0, 1, 0, 0, 0, 1] et on rajoute 1.
−46 est représenté par [1, 1, 0, 1, 0, 0, 1, 0].
Avec 8 bits, ce principe permet de coder les entiers compris entre -128 et
127

• Quelle est la représentation de 75 ?


• Quelle est la représentation de -75 ?
Représentation de 75 : [0, 1, 0, 0, 1, 0, 1, 1]
Représentation de -75 : [1, 0, 1, 1, 0, 1, 0, 1]
MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 6 / 31
Principe de la représentation des nombres entiers en

mémoire.

• Quel nombre est représenté par [1, 0, 1, 0, 1, 0, 1, 0] ?


• Quel nombre est représenté par [0, 1, 0, 1, 0, 1, 0, 1] ?

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 7 / 31


Principe de la représentation des nombres entiers en

mémoire.

• Quel nombre est représenté par [1, 0, 1, 0, 1, 0, 1, 0] ?


• Quel nombre est représenté par [0, 1, 0, 1, 0, 1, 0, 1] ?
[1, 0, 1, 0, 1, 0, 1, 0] représente -86

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 7 / 31


Principe de la représentation des nombres entiers en

mémoire.

• Quel nombre est représenté par [1, 0, 1, 0, 1, 0, 1, 0] ?


• Quel nombre est représenté par [0, 1, 0, 1, 0, 1, 0, 1] ?
[1, 0, 1, 0, 1, 0, 1, 0] représente -86
[0, 1, 0, 1, 0, 1, 0, 1] représente 85

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 7 / 31


Principe de la représentation des nombres entiers en

mémoire.

Entiers relatifs : la notation en complément à 2


Sur 16 bits, on peut représenter les entiers de −32768 = −215 à
32767 = 215 − 1.

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 8 / 31


Principe de la représentation des nombres entiers en

mémoire.

Entiers relatifs : la notation en complément à 2


Sur 16 bits, on peut représenter les entiers de −32768 = −215 à
32767 = 215 − 1.

• Quel nombre est représenté par [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] ?


• Quel nombre est représenté par [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ?

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 8 / 31


Principe de la représentation des nombres entiers en

mémoire.

Entiers relatifs : la notation en complément à 2


Sur 16 bits, on peut représenter les entiers de −32768 = −215 à
32767 = 215 − 1.

• Quel nombre est représenté par [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] ?


• Quel nombre est représenté par [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ?
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] représente -1

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 8 / 31


Principe de la représentation des nombres entiers en

mémoire.

Entiers relatifs : la notation en complément à 2


Sur 16 bits, on peut représenter les entiers de −32768 = −215 à
32767 = 215 − 1.

• Quel nombre est représenté par [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] ?


• Quel nombre est représenté par [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ?
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] représente -1
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] représente -32768

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 8 / 31


Principe de la représentation des nombres réels en mémoire.

Signe, exposant, mantisse


Quand on utilise 64 bits (8 octets) pour représenter un nombre à virgule,
on utilise
1 bit pour le signe,
11 bits pour l'exposant
52 bits pour la mantisse.
(format utilisé par Python pour coder les ottants)

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 9 / 31


Principe de la représentation des nombres réels en mémoire.

Signe, exposant, mantisse


Le signe + est représenté par 0 et le signe − par 1.
L'exposant n est un entier relatif compris entre −1022 et 1023 ; on le
représente comme l'entier naturel n + 1023, qui est compris entre 1 et
2046.
La mantisse m est un nombre binaire à virgule compris entre 1 inclus
et 2 exclu, comprenant 52 chires après la virgule. Comme cette
mantisse est comprise entre 1 et 2, elle a toujours le seul chire 1
avant la virgule ; il est donc inutile de le représenter et on utilise les 52
bits pour représenter les 52 chires après la virgule, ce qui donne une
mantisse dont la précision réelle est de 53 bits.

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 10 / 31


Principe de la représentation des nombres réels en mémoire.

Exemple : représentation de 157,375


157, 375 = 1, 2294921875 × 27 = 27 + 24 + 23 + 22 + 20 + 2−2 + 2−3
écriture binaire : 10011101, 0112
signe + : 0
exposant 7 : 7+1023=1030 représenté par [1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0]
mantisse 1,2294921875 : 1, 00111010112 représentée par
[0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

157,375 est donc représenté par


[0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 11 / 31


Principe de la représentation des nombres réels en mémoire.

• Quel est le plus petit nombre strictement positif représentable ainsi ?

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 12 / 31


Principe de la représentation des nombres réels en mémoire.

• Quel est le plus petit nombre strictement positif représentable ainsi ?


signe + : [0]
exposant minimum -1022, représenté par [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
mantisse minimum 1 représentée par
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
le plus petit nombre strictement positif représentable ainsi est
2−1022 ≈ 2.2250738585072014 × 10−308

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 12 / 31


Principe de la représentation des nombres réels en mémoire.

• Quel est le plus grand nombre représentable ainsi ?

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 13 / 31


Principe de la représentation des nombres réels en mémoire.

• Quel est le plus grand nombre représentable ainsi ?


signe + : [0]
exposant maximum 1023, représenté par [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0]
1
mantisse maximum 2 − 52 représentée par
2
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
le plus grand nombre strictement positif représentable ainsi est environ
21024 ≈ 1.797693134853119 × 10308

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 13 / 31


Principe de la représentation des nombres réels en mémoire.

• Quel est l'ordre de grandeur du nombre de chires signicatifs ?

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 14 / 31


Principe de la représentation des nombres réels en mémoire.

• Quel est l'ordre de grandeur du nombre de chires signicatifs ?


La mantisse est codée par 52 bits, sa précision réelle est de 53 bits. Elle
correspond à un entier inférieur à 253 = 9007199254740992.
Environ 16 chires signicatifs (pi=3.141592653589793)

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 14 / 31


Principe de la représentation des nombres réels en mémoire.

Comparaison à zéro
On veut calculer le discriminant de l'équation X 2 + 1, 4X + 0, 49.
∆ = 1, 42 − 4 × 0, 49

• Que trouvez-vous ?
• Que trouve Python ?

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 15 / 31


Principe de la représentation des nombres réels en mémoire.

Comparaison à zéro
On veut calculer le discriminant de l'équation X 2 + 1, 4X + 0, 49.
∆ = 1, 42 − 4 × 0, 49

• Que trouvez-vous ?
• Que trouve Python ?
Le discriminant est égal à 0
mais Python trouve −2.220446049250313e − 16

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 15 / 31


Principe de la représentation des nombres réels en mémoire.

ET LE ZERO ? ? ?

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 16 / 31


Principe de la représentation des nombres réels en mémoire.

ET LE ZERO ? ? ?
En fait, on utilise la norme IEEE 754 un peu plus compliquée

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 16 / 31


Principe de la représentation des nombres réels en mémoire.

ET LE ZERO ? ? ?
En fait, on utilise la norme IEEE 754 un peu plus compliquée
https://fr.wikipedia.org/wiki/IEEE_754

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 16 / 31


Quelques algorithmes :

Recherche dans une liste.


Écrire une fonction recherche(L,a) qui retourne le booleen True si a est
dans la liste L et False sinon

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 17 / 31


Quelques algorithmes :

Recherche dans une liste.


Écrire une fonction recherche(L,a) qui retourne le booleen True si a est
dans la liste L et False sinon
def recherche(L,a):
n = len(L)
for i in range(n):
if L[i] == a:
return True
return False

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 17 / 31


Quelques algorithmes :

Recherche du maximum dans une liste de nombres.


L est une liste de nombres.
Écrire une fonction maxi(L) qui retourne le maximum de la liste L.

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 18 / 31


Quelques algorithmes :

Recherche du maximum dans une liste de nombres.


L est une liste de nombres.
Écrire une fonction maxi(L) qui retourne le maximum de la liste L.

def maxi(L):
n = len(L)
R = L[0]
for i in range(1,n):
if L[i] > R:
R = L[i]
return R

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 18 / 31


Quelques algorithmes :

Calcul de la moyenne.
n
1 X
Moyenne de x1 , x2 , · · · , xn : m= xk .
n
k=1
L est une liste de nombres.
Écrire une fonction moyenne(L) qui retourne la moyenne de la liste L.

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 19 / 31


Quelques algorithmes :

Calcul de la moyenne.
n
1 X
Moyenne de x1 , x2 , · · · , xn : m= xk .
n
k=1
L est une liste de nombres.
Écrire une fonction moyenne(L) qui retourne la moyenne de la liste L.

def moyenne(L):
n = len(L)
S = 0
for i in range(n):
S = S + L[i]
return S / n

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 19 / 31


Quelques algorithmes :

Calcul de la variance.
n
1
(xk − m)2 .
X
Variance de x1 , x2 , · · · , xn : v=
n
k=1
L est une liste de nombres.
Écrire une fonction variance(L) qui retourne la variance de la liste L.

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 20 / 31


Quelques algorithmes :

Calcul de la variance.
n
1
(xk − m)2 .
X
Variance de x1 , x2 , · · · , xn : v=
n
k=1
L est une liste de nombres.
Écrire une fonction variance(L) qui retourne la variance de la liste L.

def variance(L):
m = moyenne(L)
S = 0
n = len(L)
for i in range(n):
S = S + (L[i]-m)**2
return S / n

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 20 / 31


Quelques algorithmes :

Recherche par dichotomie dans un tableau trié.


L étant une liste de nombres triée dans l'ordre croissant et a un réel
supérieur ou égal à L[0], écrire une fonction cherche(L,a) qui retourne le
plus grand élément de L inférieur ou égal à a, recherche par dichotomie.

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 21 / 31


Quelques algorithmes :

Recherche par dichotomie dans un tableau trié.


L étant une liste de nombres triée dans l'ordre croissant et a un réel
supérieur ou égal à L[0], écrire une fonction cherche(L,a) qui retourne le
plus grand élément de L inférieur ou égal à a, recherche par dichotomie.
def cherche(L,a):
n = len(L)
i = 0
j = n
while j-i > 1:
k = (i+j)//2
if L[k] <= a:
i = k
else:
j = k
return L[i]
MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 21 / 31
Quelques algorithmes :

Recherche par dichotomie du zéro d'une fonction continue.


Soit f une fonction continue sur [a, b] (a < b), avec f (a) < 0 et f (b) > 0
Écrire une fonction zero(f,a,b,eps) qui retourne le zéro de f à eps près.

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 22 / 31


Quelques algorithmes :

Recherche par dichotomie du zéro d'une fonction continue.


Soit f une fonction continue sur [a, b] (a < b), avec f (a) < 0 et f (b) > 0
Écrire une fonction zero(f,a,b,eps) qui retourne le zéro de f à eps près.

def zero(f,a,b,eps):
while b-a > eps:
c = (a+b)/2
if f(c) < 0:
b = c
else:
a = c
return (a+b)/2

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 22 / 31


Quelques algorithmes :

Méthodes des rectangles pour le calcul approché d'une intégrale.


Soit f une fonction continue sur le segment [a, b] (a < b).
b N−1  
b−a X b−a
Z
f (t) dt ≈ f a+i
a N N
i=0
Écrire une fonction
Z b
rectangles(f,a,b,N) qui retourne une valeur
approchée de f (t) dt .
a

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 23 / 31


Quelques algorithmes :

Méthodes des rectangles pour le calcul approché d'une intégrale.


Soit f une fonction continue sur le segment [a, b] (a < b).
b N−1  
b−a X b−a
Z
f (t) dt ≈ f a+i
a N N
i=0
Écrire une fonction
Z b
rectangles(f,a,b,N) qui retourne une valeur
approchée de f (t) dt .
a

def rectangles(f,a,b,N):
h = (b-a)/N
S = 0
for i in range(N):
S = S + f(a+i*h)
return S*h

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 23 / 31


Quelques algorithmes :

Méthodes des trapèzes pour le calcul approché d'une intégrale.


Soit f une fonction continue sur le segment [a, b] (a < b).
b N−1     
b−a X b−a b−a
Z
f (t) dt ≈ f a+i + f a + (i + 1)
a 2N i=0
N N
Écrire
Z b
une fonction trapezes(f,a,b,N) qui retourne une valeur approchée
de f (t) dt .
a

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 24 / 31


Quelques algorithmes :

Méthodes des trapèzes pour le calcul approché d'une intégrale.


Soit f une fonction continue sur le segment [a, b] (a < b).
b N−1     
b−a X b−a b−a
Z
f (t) dt ≈ f a+i + f a + (i + 1)
a 2N i=0
N N
Écrire
Z b
une fonction trapezes(f,a,b,N) qui retourne une valeur approchée
de f (t) dt .
a

def trapezes(f,a,b,N):
h = (b-a)/N
S = f(a) + f(b)
for i in range(1,N):
S=S + 2*f(a+i*h)
return S*h/2

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 24 / 31


Quelques algorithmes :

Recherche d'un mot dans une chaîne de caractères.


On considère deux chaines de caractères chaine et mot .
Écrire une fonction cherche(chaine,mot) qui retourne le booléen True si
mot est contenu dans chaine et False sinon.

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 25 / 31


Quelques algorithmes :

Recherche d'un mot dans une chaîne de caractères.


On considère deux chaines de caractères chaine et mot .
Écrire une fonction cherche(chaine,mot) qui retourne le booléen True si
mot est contenu dans chaine et False sinon.

def cherche(chaine,mot):
n = len(mot)
p = len(chaine)
for i in range(p-n):
if chaine[i:i+n] == mot:
return True
return False

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 25 / 31


Quelques algorithmes :

Résolution approchée d'une équation, méthode de Newton.


Soit f une fonction dérivable sur un intervalle I et dont la dérivée ne
s'annule pas.
Soit x0 ∈ I , on construit par récurrence la suite (xn ) :
f (xk )
xk+1 = xk − f 0 (xk )
Écrire une fonction zero(f,fp,x0,N) qui retourne une valeur approchée
du zéro de f en utilisant la méthode de Newton, N itérations , en partant
de x0 . (fp désigne la dérivée de f )

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 26 / 31


Quelques algorithmes :

Résolution approchée d'une équation, méthode de Newton.


Soit f une fonction dérivable sur un intervalle I et dont la dérivée ne
s'annule pas.
Soit x0 ∈ I , on construit par récurrence la suite (xn ) :
f (xk )
xk+1 = xk − f 0 (xk )
Écrire une fonction zero(f,fp,x0,N) qui retourne une valeur approchée
du zéro de f en utilisant la méthode de Newton, N itérations , en partant
de x0 . (fp désigne la dérivée de f )

def zero(f,fp,x0,N):
x = x0
for i in range(N):
x = x - f(x)/fp(x)
return x

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 26 / 31


Quelques algorithmes :

Résolution approchée d'une équation diérentielle ordinaire par la


méthode d'Euler (explicite).
Soit u une fonction continue de [a, b] × R dans R.
On considère f la solution sur [a, b] de l'équation y 0 = u(x, y ) telle que
f (a) = c .
On note h = b−aN .
On dénit (yn ) par y0 = c et pour k compris entre 0 et N − 1,
yk+1 = yk + hu(a + kh, yk ).
yk est une valeur approchée de f (a + kh)
Écrire une fonction euler(u,a,b,c,N) qui trace la courbe représentative
de f .
Méthode d'Euler en partageant [a, b] en N sous-segments.

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 27 / 31


Quelques algorithmes :

Résolution approchée d'une équation diérentielle ordinaire par la méthode


d'Euler.
import numpy as np
import matplotlib.pyplot as plt

def euler(u,a,b,c,N):
h = (b-a)/N
X = np.linspace(a,b,N+1)
y = c
Y = [y]
for i in range(N):
y = y + h*u(a+i*h,y)
Y.append(y)
plt.plot(X,Y)
plt.show()
MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 28 / 31
Quelques algorithmes :

Résolution d'un système linéaire inversible (ou de Cramer) par la


méthode de Gauss.
Soit A une matrice carrée d'ordre n inversible et B une matrice colonne
d'ordre n.
Écrire une fonction Resoudre(A,B) qui retourne l'unique solution du
système de Cramer AX = B par la méthode du pivot de Gauss.

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 29 / 31


Quelques algorithmes :

Résolution d'un système linéaire inversible (ou de Cramer) par la méthode


de Gauss.
def Resoudre(A,B):
n = len(B)
for i in range(n):
j = i
while(A[i,j]) == 0:
j = j+1
A[i],A[j] = array(A[j]),array(A[i])
B[i],B[j] = array(B[j]),array(B[i])
for j in range(i+1,n):
A[j] = array(A[j]-A[i]/A[i,i]*A[j,i])

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 30 / 31


Quelques algorithmes :

B[j] = array(B[j]-B[i]/A[i,i]*A[j,i])
R = [0]*n
for i in range(n-1,-1,-1): # de n-1 à 0
x = B[i,0]
for j in range(i+1,n):
x = x - A[i,j]*R[j]
R[i] = x/A[i,i]
return R

MP - Lycée Pissarro - Pontoise Révisions d'informatique 2020/2021 31 / 31

Vous aimerez peut-être aussi