“Nada se crea, nada se destruye, todo se transforma”

Anuncio
“Nada se crea, nada se destruye, todo se transforma”
-Antoine Lavoisier
Algoritmos y Estructuras de Datos I
Introducción a imperativo y transformaciones de estados.
Temas de hoy
•
¿Por qué se llama paradigma imperativo? ¿Qué lo
define?
•
¿Qué vs. Cómo?
•
•
Extensión del lenguaje de especificación
Transformar, transformar y más transformar
Paradigma
imperativo
Imperativo: Variables
•
Pedacitos de RAM que usamos para guardar
información
‘a’
64277
int n;
‘a’ ‘b’‘c’ ‘d’
…
}
}
}
char c;
…
char letras[];
RAM
Imperativo: Asignación
•
LA instrucción importante de imperativo
•
Modifica solamente el valor de una variable
•
variable = expresión;
int fib = 1 + 1 + 2 + 3;
Imperativo: Estado
•
Es el conjunto de todas las variables declaradas (y
sus respectivos valores) en un punto dado del
programa.
char letra = ‘L’;
…
int numero = 5;
…
Acá hay muchos más estados
Acá hay un estado: letra == ‘L’
Acá hay otro estado: letra == ‘L’ ^ numero == 5
Imperativo: Ejecución
•
Ni más ni menos, una sucesión de estados.
¿Qué vs. Cómo?
Qué
Cómo
… que calcule
el promedio
sumo todos los
números del
arreglo
y los divido por
la cantidad total
Especificación
Imperativo
Qué
Cómo
sumo todos los
números del
… que calcule
arreglo
el promedio
y los divido por
TRANSFORMACIÓNla cantidad total
DE
ESTADOS
Especificación
Imperativo
Transformación de Estados
•
Ampliamos nuestro lenguaje de especificación con
las siguientes cláusulas:
•
Estado
•
Vale
•
Implica
Transformación de Estados:
Estado
•
Nos sirve para darle un nombre al estado para
poder referirnos a este punto más fácilmente
Transformación de Estados:
Vale
•
Vamos a indicar que un predicado es verdadero en
un estado
•
Importante: si usamos vale sólo podemos hablar
de la postcondición de la instrucción que se
ejecutó. No podemos asumir el contexto.
Transformación de Estados:
Implica
•
Vamos a indicar que un predicado, que se deduce
de los vale y el contexto, es verdadero en un
estado
Importante
•
Entender primero qué es lo que hace el programa
•
Revisar, antes de empezar, si algún parámetro se
usa como variable local
•
Hablar de todas las variables declaradas hasta el
momento en cada vale.
•
Justificar los implicas
Ejercicios
Ejercicio 1
Ejercicio 2
Ejercicio 2
Ejercicio 3
Ejercicio 3
Modificando variables
Modificando variables
Estructuras de control
Ejemplo de abstracción del If
Ejemplo de abstracción del If
Descargar