Livre_silo 30 août 2013 16:32 Page 87
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
87
4 – Instructions : langage minimal de l’algorithmique
L’importance de l’ordre dans lequel sont exécutées les instructions se confirme : si on inverse l’ordre des deux instructions, ce programme produit l’état
. .
3 .
x
.
x = x * 2
x = x + 1
POUR ALLER PLUS LOIN Sémantique de la séquence
Si on note i(e) l’état obtenu en exécutant l’instruction i dans l’état e, on a, après l’exécution
des deux instructions i 1 puis i 2 , l’état i 2 (i 1 (e)).
Enchaîner deux instructions en séquence revient donc à composer (au sens des fonctions
mathématiques) leurs deux actions sur l’état.
Il est possible de considérer des séquences de plus de deux instructions ; on parle alors plus
généralement de bloc d’instructions.
Exercice 4.1 Les suites de symboles suivantes sont-elles des instructions ou des expressions ?
• a
• b = a
• float(input())
• b = b - 1
• c * 2
• print(a + b)
• x = int(input())
• a == 3
• a == b or c == 1
Exercice 4.2 Décrire l’évolution de l’état au cours de l’exécution du programme ci-dessous, en partant
de l’état
. .
5 .
b
.
a = 2
a = b - 7
b = b + 1
c = a - b
a = (a-1) / (a+1)
Exercice 4.3 * On s’intéresse à l’effet du programme ci-dessous.
a = 2*a - b
b = a + b
a = b - a
b = b // 2
1 Décrire l’évolution de l’état au cours de l’exécution de ce programme pour différentes valeurs initiales
de a et b.
2 Formuler une conjecture sur les valeurs finales de a et de b en fonction de leurs valeurs initiales.
3 Démontrer cette conjecture dans le cas où les valeurs initiales de a et b sont des entiers relatifs.
4 Que penser de cette conjecture dans le cas où a et b contiennent initialement des nombres en virgule
flottante ? Et si on remplace la dernière ligne par b = b / 2 ?
Précédent

- 100/402

Suivant