Académique Documents
Professionnel Documents
Culture Documents
Révisions
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 :
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]
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]
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]
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]
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]
mémoire.
mémoire.
mémoire.
mémoire.
mémoire.
mémoire.
mémoire.
mémoire.
mémoire.
mémoire.
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 ?
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
ET LE ZERO ? ? ?
ET LE ZERO ? ? ?
En fait, on utilise la norme IEEE 754 un peu plus compliquée
ET LE ZERO ? ? ?
En fait, on utilise la norme IEEE 754 un peu plus compliquée
https://fr.wikipedia.org/wiki/IEEE_754
def maxi(L):
n = len(L)
R = L[0]
for i in range(1,n):
if L[i] > R:
R = L[i]
return R
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.
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
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.
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
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
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
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
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
def zero(f,fp,x0,N):
x = x0
for i in range(N):
x = x - f(x)/fp(x)
return x
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 :
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