49 lines
907 B
Plaintext
49 lines
907 B
Plaintext
# Calcul de l'expression E = [(a+b)*(a-b)]+[(b+1)*(b-1)]
|
|
#
|
|
# On simplifie d'abord l'expression.
|
|
#
|
|
# The dreaded 'identités remarquables'...
|
|
# (a+b)*(a-b) = a^2 - b^2
|
|
# (b-1)*(b+1) = b^2 - 1^2 = b^2 - 1
|
|
# En caculant on obtient au final pour E l'expression simplifiée suivante
|
|
# a^2 - 1
|
|
#
|
|
#
|
|
# Arbre syntaxique de l'expression simplifiée.
|
|
#
|
|
# -(1)
|
|
# *(2) Cons 1 (5)
|
|
# Var a(3) Var a (4)
|
|
|
|
|
|
# gestion des variables a et b
|
|
|
|
PUSHI 0 # a (habite à l'adresse 0)
|
|
# PUSHI 0 # b est inutile maintenant
|
|
|
|
# demander à l'utilisateur les valeurs de a et pas de b qui ne sert à rien
|
|
READ
|
|
STOREG 0
|
|
# READ
|
|
# STOREG 1
|
|
|
|
|
|
# gestion du calcul de l'expression.
|
|
|
|
PUSHG 0 # (3)
|
|
PUSHG 0 # (4)
|
|
MUL # (2)
|
|
PUSHI 1 # (5)
|
|
SUB # (1)
|
|
|
|
# écrire le résultat et enlever le résultat de la pile
|
|
|
|
WRITE
|
|
POP
|
|
|
|
|
|
### suppression des variables
|
|
|
|
POP
|
|
HALT
|