“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