A lo largo de la ejecución de un programa las variables pueden cambiar el valor con el que están asociadas. En un momento dado uno puede detenerse a observar a qué valor se refiere cada una de las variables del programa. Esa foto que indica en un momento dado a qué valor hace referencia cada una de las variables se denomina estado. También hablaremos del estado de una variable para indicar a qué valor está asociada esa variable, y usaremos la notación n → 13
para describir el estado de la variable n
(e indicar que está asociada al número 13
).
A medida que las variables cambian de valores a los que se refieren, el programa va cambiando de estado. La sucesión de todos los estados por los que pasa el programa en una ejecución dada se denomina computación.
Para ejemplificar estos conceptos veamos qué sucede cuando se ejecuta el programa cuad
:
print "Se calcularán cuadrados de números"
- Qué sucede: Se despliega el texto *"Se calcularán cuadrados de números" en la pantalla.
- Estado: -
n1 = input("Ingrese un número entero: ")
- Qué sucede: Se despliega el texto "Ingrese un número entero: " en la pantalla y el programa se queda esperando que el usuario ingrese un número.
- Estado: -
- Supondremos que el usuario ingresa el número
3
y luego oprime la tecla<ENTER>
. Se asocia el número3
con la variablen1
. n2 = input("Ingrese otro número entero: ")
- Qué sucede: Se despliega el texto "Ingrese otro núme- ro entero:" en la pantalla y el programa se queda esperando que el usuario ingrese un número.
- Estado:
n1 → 3
- Supondremos que el usuario ingresa el número
5
y luego oprime la tecla<ENTER>
. Se asocia el número5
con la variablen2
. for x in range(n1, n2):
- Qué sucede: Se asocia el primer número de
[n1,n2)
con la variable x y se ejecuta el cuerpo del ciclo. - Estado:
n1 → 3
,n2 → 5
,x → 3
- Qué sucede: Se asocia el primer número de
print x*x
- Qué sucede: Se imprime por pantalla el valor de
x * x
(9
) - Estado:
n1 → 3
,n2 → 5
,x → 3
- Qué sucede: Se imprime por pantalla el valor de
for x in range(n1, n2):
- Qué sucede: Se asocia el segundo número de
[n1,n2)
con la variablex
y se ejecuta el cuerpo del ciclo. - Estado:
n1 → 3
,n2 → 5
,x → 4
- Qué sucede: Se asocia el segundo número de
print x*x
- Qué sucede: Se imprime por pantalla el valor de
x * x
(16
) - Estado:
n1 → 3
,n2 → 5
,x → 4
- Qué sucede: Se imprime por pantalla el valor de
for x in range(n1, n2):
- Qué sucede: Como no quedan más valores por tratar en
[n1,n2)
, se sale del ciclo. - Estado:
n1 → 3
,n2 → 5
,x → 4
- Qué sucede: Como no quedan más valores por tratar en
print "Es todo por ahora"
- Qué sucede: Se despliega por pantalla el mensaje "Es todo por ahora"
- Estado:
n1 → 3
,n2 → 5
,x → 4