22
IntroducciónProgramación Noción de Estado Clase 4

Nocion de estado

Embed Size (px)

DESCRIPTION

Un sistema no es estático, es dinámico [cambia con el tiempo]. Los cambios se describen a través de los estados. Esta presentación busca explicar brevemente cómo los sistemas que se analizan cambian con el tiempo.

Citation preview

IntroducciónProgramación

Noción de Estado

Clase 4

IntroducciónProgramación

¿Qué es un estado?

Un sistema no es estático, es dinámico [cambia con el tiempo]. Los cambios se

describen a través de un estado.

Estado: una descripción total y única del sistema en un instante de tiempo dado,

definido por la valuación de todas sus variables.

- Estado inicial: condiciones iniciales del sistema [entradas].

- Estado final: condiciones finales [a lo que se debe llegar: salidas].

- Estados intermedios: todos los posibles estados que transcurren entre el inicial y final.

IntroducciónProgramación

Cambio de estado

Para que un sistema pase [evolucione] de un estado k a un estado k+1 debe

suceder un evento.

Evento: acción que hace que las observaciones [lo que vemos en las variables]

cambien. Los eventos pueden ser:

- Ordenes

- Operaciones

- Acciones

- Expresiones

IntroducciónProgramación

¿Qué es un problema?

Cuando se tiene un sistema cuyo estado actual no es el deseado, se dice que se tiene un problema.

La solución a un problema es una serie de pasos [realización de operaciones] que llevan del estado en que están las cosas en el sistema, al estado que se desea.

Esta serie de pasos [operaciones] se conoce como un algoritmo.

IntroducciónProgramación

¿Qué es un algoritmo?

Conjunto ordenado de pasos que llevan un sistema de un estado a otro. Los pasos que se realizan en un algoritmo efectúan operaciones que modifican las variables del sistema y, por ende, el estado del mismo.

Las operaciones son acciones que pueden efectuarse dentro del sistema y son definidas en el momento de creación del sistema.

Computacionalmente hablando, un algoritmo se convierte en un programa, es decir, un conjunto de operaciones que resuelven un problema determinado usando un lenguaje de programación [Python].

IntroducciónProgramación

Ejemplo

Problema a resolver: Se debe llevar el robot a un estado deseado.

¿Cómo llegar del estado inicial al final?

Estado inicial Estado final

IntroducciónProgramación

Ejemplo

Estado inicial

Variables:

posición = (5,6)

orientación = este

Constantes:

Tablero: 8x8

Bloques:

2: (5,4)

3: (8,8)

1: (1,3)

Celda azul: (5,2)

X Y

N

E

O

S

IntroducciónProgramación

Ejemplo

Estado intermedio (paso 1): girar a la derecha

Variables:

posición = (5,6)

orientación = sur

Constantes:

Tablero: 8x8

Bloques:

2: (5,4)

3: (8,8)

1: (1,3)

Celda azul: (5,2)

N

E

O

S

1 2

3 4

5 6

7 8

1 2

3 4

5 6

7 8

IntroducciónProgramación

Ejemplo

Estado intermedio (paso 2): moverse una casilla

Variables:

posición = (4,6)

orientación = sur

Constantes:

Tablero: 8x8

Bloques:

2: (5,4)

3: (8,8)

1: (1,3)

Celda azul: (5,2)

N

E

O

S

IntroducciónProgramación

Ejemplo

Estado intermedio (paso 3): girar a la izquierda

Variables:

posición = (4,6)

orientación = este

Constantes:

Tablero: 8x8

Bloques:

2: (5,4)

3: (8,8)

1: (1,3)

Celda azul: (5,2)

N

E

O

S

IntroducciónProgramación

Ejemplo

Estado intermedio (paso 4): moverse una casilla

Variables:

posición = (4,5)

orientación = este

Constantes:

Tablero: 8x8

Bloques:

2: (5,4)

3: (8,8)

1: (1,3)

Celda azul: (5,2)

N

E

O

S

IntroducciónProgramación

Ejemplo

Estado intermedio (paso 5): moverse una casilla

Variables:

posición = (4,4)

orientación = este

Constantes:

Tablero: 8x8

Bloques:

2: (5,4)

3: (8,8)

1: (1,3)

Celda azul: (5,2)

N

E

O

S

IntroducciónProgramación

Ejemplo

Estado intermedio (paso 6): moverse una casilla

Variables:

posición = (4,3)

orientación = este

Constantes:

Tablero: 8x8

Bloques:

2: (5,4)

3: (8,8)

1: (1,3)

Celda azul: (5,2)

N

E

O

S

IntroducciónProgramación

Ejemplo

Estado intermedio (paso 7): girar a la izquierda

Variables:

posición = (4,3)

orientación = norte

Constantes:

Tablero: 8x8

Bloques:

2: (5,4)

3: (8,8)

1: (1,3)

Celda azul: (5,2)

N

E

O

S

IntroducciónProgramación

Ejemplo

Estado intermedio (paso 8): moverse una casilla

Variables:

posición = (5,3)

orientación = norte

Constantes:

Tablero: 8x8

Bloques:

2: (5,4)

3: (8,8)

1: (1,3)

Celda azul: (5,2)

N

E

O

S

IntroducciónProgramación

Ejemplo

Estado intermedio (paso 9): girar a la derecha

Variables:

posición = (5,3)

orientación = este

Constantes:

Tablero: 8x8

Bloques:

2: (5,4)

3: (8,8)

1: (1,3)

Celda azul: (5,2)

N

E

O

S

IntroducciónProgramación

Ejemplo

Estado final (paso 10): moverse una casilla

Variables:

posición = (5,2)

orientación = este

Constantes:

Tablero: 8x8

Bloques:

2: (5,4)

3: (8,8)

1: (1,3)

Celda azul: (5,2)

N

E

O

S

IntroducciónProgramación

Ejemplo

1. Girar a la derecha

2. Moverse una casilla

3. Girar a la izquierda

4. Moverse una casilla

5. Moverse una casilla

6. Moverse una casilla

7. Girar a la izquierda

8. Moverse una casilla

9. Girar a la derecha

10.Moverse una casilla

Estado inicial

Estado final

Resumen de la solución del problema

IntroducciónProgramación

Algoritmo

Conjunto de instrucciones (eventos, pasos, acciones) secuenciales que resuelven un problema. Generalmente se escribe en lenguaje natural:

1. Girar a la derecha

2. Moverse una casilla

3. Girar a la izquierda

4. Moverse una casilla

5. Moverse una casilla

6. Moverse una casilla

7. Girar a la izquierda

8. Moverse una casilla

9. Girar a la derecha

10.Moverse una casilla

Estado inicial

Estado final

Algoritmo

IntroducciónProgramación

Programa

Algoritmo llevado a un lenguaje de programación, usando las reglas, funciones, operaciones y la notación [sintaxis] que el lenguaje provee y exige.

IntroducciónProgramación

Modelar un sistema

IntroducciónProgramación

Pontificia Universidad Javeriana Cali.

Hombres, mujeres y ciencia al servicio del país.

cic.puj.edu.co/wiki

Con el uso de esta presentación aceptas las siguientes

condiciones de uso y licencia.

Prohibido para uso comercial, sólo para uso académico.

Esta presentación puede ser usada libremente por los estudiantes.

Plantilla de diseño gratuita provista por PresentationPoint. Su uso esta restringido por las condiciones de uso de PresentationPoint.

En caso de preguntas o inquietudes contactar a:

E-Mail: [email protected]

Condiciones

IntroducciónProgramación