49
ESTRUCTURAS DE CONTROL

Estructuras de Control

  • Upload
    adeola

  • View
    28

  • Download
    0

Embed Size (px)

DESCRIPTION

Estructuras de Control. Recomendación. Para poder seguir la animación de las diapositivas correctamente te recomendamos que utilices las flechas de Siguiente y Anterior que aparecerán al pie de cada diapositiva. ANTERIOR. SIGUIENTE. ANTERIOR. SIGUIENTE. CONCEPTOS. - PowerPoint PPT Presentation

Citation preview

Page 1: Estructuras de Control

ESTRUCTU

RAS DE

CONTROL

Page 2: Estructuras de Control

RECOMENDACIÓN

SIGUIENTE

ANTERIOR

SIGUIENTE

Para poder seguir la animación de las diapositivas correctamente te recomendamos que utilices las flechas de Siguiente y Anterior que aparecerán al pie de cada diapositiva

ANTERIOR

Page 3: Estructuras de Control

CONCEPTOS

Las estructuras de control permiten al programador alterar el flujo de ejecución del programa

Selectivas

Repetitivas

Condicionales

SIGUIENTE

ANTERIOR

Page 4: Estructuras de Control

SIGUIENTE

1EJERCICIO

ANTERIOR

Page 5: Estructuras de Control

Si analizamos el ejercicio podemos ver que hay tres casos posibles

CASO 1: No hay flores en la esquina.

CASO 2: Hay 1 flor en la esquina.

CASO 3: Hay mas de 1 flor en la esquina (pero no sabemos cuantas exactamente).

Ejercicio 1:Posicionar al robot en la esquina (28,5) y juntar una flor. En la esquina puede haber 0, 1 o mas flores.

SIGUIENTE

ANTERIOR

Page 6: Estructuras de Control

Ejercicio 1: CASO 1 NO HAY FLORES EN LA ESQUINA

SIGUIENTE

Esquina (28 , 5)

ANTERIOR

Page 7: Estructuras de Control

Secuencia

Repetición

Selección

Iteración

¿Cómo funcionaría el programa con cada estructura?¿Cuál es la correcta para resolver este problema?

SIGUIENTE

Ejercicio 1: CASO 1 – NO HAY FLORES EN LA ESQUINA

ANTERIOR

Page 8: Estructuras de Control

¿Cómo funcionaría el programa con cada estructura?¿Cuál es la correcta para resolver este problema?

SIGUIENTE

Prueba 1: Usamos Secuencia

Ejercicio 1: CASO 1 – NO HAY FLORES EN LA ESQUINA

Secuencia

Repetición

Selección

Iteración

ANTERIOR

Page 9: Estructuras de Control

Cantidad de Flores en la esquina:

Esquina (28 , 5)

Como no hay ninguna flor en la esquina se genera

un error.Se corta la

ejecución del programa

Cantidad de Flores tomadas:

Comenzar

iniciar

Fin

Pos(28, 5)

tomarFlor

0

0

Es responsabilidad del programador utilizar las instrucciones correctamente.

ERROR

SIGUIENTE

Ejercicio 1: CASO 1 – NO HAY FLORES EN LA ESQUINA SECUENCIA

ANTERIOR

Page 10: Estructuras de Control

¿Cómo funcionaría el programa con cada estructura?¿Cuál es la correcta para resolver este problema?

SIGUIENTE

Prueba 2: Usamos Repetición

Ejercicio 1: CASO 1 – NO HAY FLORES EN LA ESQUINA

Secuencia

Repetición

Selección

Iteración

ANTERIOR

Page 11: Estructuras de Control

Esta estructura no es adecuada para este ejercicio en particular. Esto se debe a que la estructura repetir siempre debe indicar la cantidad de veces que se repiten las instrucciones (y esa cantidad debe ser >=1)

En este caso que hay 0 flores en la esquina, nos

daría un error igual al error que queríamos solucionar.

Sabemos que

debemos juntar 1 flor

entonces probamos

poniendo N= 1

SIGUIENTE

Ejercicio 1: CASO 1 – NO HAY FLORES EN LA ESQUINA REPETICION

Cantidad de Flores en la esquina:

Esquina (28 , 5)

Cantidad de Flores tomadas:

Comenzar

iniciar

Fin

Pos(28, 5)

tomarFlor

0

0

ERRORRepetir 1

ANTERIOR

Page 12: Estructuras de Control

¿Cómo funcionaría el programa con cada estructura?¿Cuál es la correcta para resolver este problema?

SIGUIENTE

Prueba 3: Usamos Selección

Ejercicio 1: CASO 1 – NO HAY FLORES EN LA ESQUINA SECUENCIA

Secuencia

Repetición

Selección

Iteración

ANTERIOR

Page 13: Estructuras de Control

Cantidad de Flores en la esquina:

Si (HayFlorEnLaEsquina)

Esquina (28 , 5)

Como no hay ninguna flor en la

esquina, la condición es falsa

y no entra al cuerpo de la estructura si

Cantidad de Flores tomadas:

Comenzar

iniciar

Fin

Pos(28, 5)

tomarFlor

0

0

Todo funciona correctamente para este caso, es decir, no ejecuta la instrucción tomar Flor porque la condición es falsa.

Ejercicio 1: CASO 1 – NO HAY FLORES EN LA ESQUINA SELECCION

SIGUIENTE

Page 14: Estructuras de Control

¿Cómo funcionaría el programa con cada estructura?¿Cuál es la correcta para resolver este problema?

SIGUIENTE

Prueba 4: Usamos Iteración

Ejercicio 1: CASO 1 – NO HAY FLORES EN LA ESQUINA

Secuencia

Repetición

Selección

Iteración

ANTERIOR

Page 15: Estructuras de Control

Cantidad de Flores en la esquina:

Mientras (HayFlorEnLaEsquina)

Esquina (28 , 5)

Como no hay ninguna flor en la

esquina, la condición es falsa

y no entra al cuerpo de la estructura mientras

Cantidad de Flores tomadas:

Comenzar

iniciar

Fin

Pos(28, 5)

tomarFlor

0

0

Todo funciona correctamente para este caso, es decir, no ejecuta la instrucción tomar Flor porque la condición es falsa.

Ejercicio 1: CASO 1 – NO HAY FLORES EN LA ESQUINA ITERACION

SIGUIENTE

ANTERIOR

Page 16: Estructuras de Control

Ejercicio 1: CASO 2 HAY 1 FLOR EN LA ESQUINA

SIGUIENTE

Esquina (28 , 5)

ANTERIOR

Page 17: Estructuras de Control

Ejercicio 1: CASO 2 – HAY 1 FLOR EN LA ESQUINA

SIGUIENTE

Secuencia

Repetición

Selección

Iteración

¿Cómo funcionaría el programa con cada estructura?¿Cuál es la correcta para resolver este problema?

ANTERIOR

Page 18: Estructuras de Control

¿Cómo funcionaría el programa con cada estructura?¿Cuál es la correcta para resolver este problema?

SIGUIENTE

Prueba 1: Usamos Secuencia

Secuencia

Selección

Iteración

Ejercicio 1: CASO 2 – HAY 1 FLOR EN LA ESQUINA

Repetición

ANTERIOR

Page 19: Estructuras de Control

Ejercicio 1: CASO 2 – HAY 1 FLOR EN LA ESQUINA SECUENCIA

SIGUIENTE

Cantidad de Flores en la esquina:

Como hay una flor en la esquina se

toma esa flor y se continua con la ejecución del

programa.

Cantidad de Flores tomadas:

Comenzar

iniciar

Fin

Pos(28, 5)

tomarFlor

0

1

La solución funciona y no genera error solo en este caso pues hay solo 1 flor seguro en la esquina.

1

0

Esquina (28 , 5)

ANTERIOR

Page 20: Estructuras de Control

¿Cómo funcionaría el programa con cada estructura?¿Cuál es la correcta para resolver este problema?

SIGUIENTE

Prueba 2: Usamos Repetición

Secuencia

Repetición

Selección

Iteración

Ejercicio 1: CASO 2 – HAY 1 FLOR EN LA ESQUINA

ANTERIOR

Page 21: Estructuras de Control

La solución funciona, sin embargo hay que tener en cuenta que si se sabe que hay una única flor y que se debe juntar 1 flor no sería necesario utilizar una estructura repetitiva.

Ejercicio 1: CASO 2 – HAY 1 FLOR EN LA ESQUINA REPETICION

SIGUIENTE

Cantidad de Flores en la esquina:

Como hay una flor en la esquina se

toma esa flor y se continua con la ejecución del

programa. Usamos N=1

Cantidad de Flores tomadas:

Comenzar

iniciar

Fin

Pos(28, 5)

tomarFlor

0

1

1

0Repetir 1

Esquina (28 , 5)

ANTERIOR

Page 22: Estructuras de Control

¿Cómo funcionaría el programa con cada estructura?¿Cuál es la correcta para resolver este problema?

SIGUIENTE

Prueba 3: Usamos Selección

Secuencia

Repetición

Selección

Iteración

Ejercicio 1: CASO 2 – HAY 1 FLOR EN LA ESQUINA

ANTERIOR

Page 23: Estructuras de Control

Cantidad de Flores en la esquina:

En este caso , como hay una flor en la

esquina, la condición es

verdadera y se entra al cuerpo de la estructura y se

toma la flor

Si (HayFlorEnLaEsquina)

Comenzar

iniciar

Fin

Pos(28, 5)

Cantidad de Flores tomadas:

0

0

tomarFlor

10

1

Todo funciona correctamente para este caso ya que se sabe que hay que hay flor y se debe juntar 1 sola.

Esquina (28 , 5)

Ejercicio 1: CASO 2 – HAY 1 FLOR EN LA ESQUINA SELECCION

SIGUIENTE

ANTERIOR

Page 24: Estructuras de Control

¿Cómo funcionaría el programa con cada estructura?¿Cuál es la correcta para resolver este problema?

SIGUIENTE

Prueba 4: Usamos Iteración

Secuencia

Repetición

Selección

Iteración

Ejercicio 1: CASO 2 – HAY 1 FLOR EN LA ESQUINA

ANTERIOR

Page 25: Estructuras de Control

La solución funciona, sin embargo hay que tener en cuenta que si se sabe que hay que tomar una única flor no sería necesario utilizar una estructura iterativa.

Ejercicio 1: CASO 2 – HAY 1 FLOR EN LA ESQUINA ITERACION

SIGUIENTE

Cantidad de Flores en la esquina:

En este caso , como hay una flor en la

esquina, la condición es

verdadera y se entra al cuerpo de la estructura (una

única vez) y se toma la flor

Mientras (HayFlorEnLaEsquina)

Comenzar

iniciar

Fin

Pos(28, 5)

Cantidad de Flores tomadas:

0

0

tomarFlor

10

1

Esquina (28 , 5)

ANTERIOR

Page 26: Estructuras de Control

Ejercicio 1: CASO 3 HAY MAS DE UNA FLOR EN LA

ESQUINA

SIGUIENTE

Esquina (28 , 5)

ANTERIOR

Page 27: Estructuras de Control

SIGUIENTE

Ejercicio 1: CASO 3 – HAY MAS DE UNA FLOR EN LA ESQUINA

Secuencia

Repetición

Selección

Iteración

¿Cómo funcionaría el programa con cada estructura?¿Cuál es la correcta para resolver este problema?

ANTERIOR

Page 28: Estructuras de Control

¿Cómo funcionaría el programa con cada estructura?¿Cuál es la correcta para resolver este problema?

SIGUIENTE

Prueba 1: Usamos Secuencia

Secuencia

Repetición

Selección

Iteración

Ejercicio 1: CASO 3 – HAY MAS DE UNA FLOR EN LA ESQUINA

ANTERIOR

Page 29: Estructuras de Control

La solución funciona ya que cuenta la flor, pero cabe señalar que en la esquina quedan flores. SIGUIENT

E

Ejercicio 1: CASO 3 – HAY MAS DE UNA FLOR EN LA ESQUINA SECUENCIA

Cantidad de Flores en la esquina:

Como hay una flor en la esquina se

toma esa flor y se continua con la ejecución del

programa.

Cantidad de Flores tomadas:

Comenzar

iniciar

Fin

Pos(28, 5)

tomarFlor

0

3

1

2

ANTERIOR

Page 30: Estructuras de Control

¿Cómo funcionaría el programa con cada estructura?¿Cuál es la correcta para resolver este problema?

SIGUIENTE

Prueba 2: Usamos Repetición

Secuencia

Repetición

Selección

Iteración

Ejercicio 1: CASO 3 – HAY MAS DE UNA FLOR EN LA ESQUINA

ANTERIOR

Page 31: Estructuras de Control

La solución funciona, sin embargo hay que tener en cuenta que si se sabe que hay flores pero se debe tomar una única flor no sería necesario utilizar una estructura repetitiva.

SIGUIENTE

Ejercicio 1:CASO 3–HAY MAS DE UNA FLOR EN LA ESQUINA REPETICION

Cantidad de Flores en la esquina:

Como hay flores en la esquina se toma una flor y se continua con

la ejecución del programa. Usamos

N=1

Cantidad de Flores tomadas:

Comenzar

iniciar

Fin

Pos(28, 5)

tomarFlor

0

3

1

2Repetir 1

ANTERIOR

Page 32: Estructuras de Control

¿Cómo funcionaría el programa con cada estructura?¿Cuál es la correcta para resolver este problema?

SIGUIENTE

Prueba 3: Usamos Selección

Secuencia

Repetición

Selección

Iteración

Ejercicio 1: CASO 3 – HAY MAS DE UNA FLOR EN LA ESQUINA

ANTERIOR

Page 33: Estructuras de Control

La solución funciona, sin embargo hay que tener en cuenta que si se sabe que hay mas de una flor y se quiere juntar sólo una no sería necesario utilizar una estructura selección.

SIGUIENTE

Ejercicio 1: CASO 3 – HAY MAS DE UNA FLOR EN LA ESQUINA SELECCION

Cantidad de Flores en la esquina:

Como hay flores en la esquina se toma una

flor porque la condición es

verdadera y se continua con la ejecución del programa.

Cantidad de Flores tomadas:

Comenzar

iniciar

Fin

Pos(28, 5)

tomarFlor

0

3

1

2Si(HayFlorEnLaEsquina)

ANTERIOR

Page 34: Estructuras de Control

¿Cómo funcionaría el programa con cada estructura?¿Cuál es la correcta para resolver este problema?

SIGUIENTE

Prueba 4: Usamos Iteración

Secuencia

Repetición

Selección

Iteración

Ejercicio 1: CASO 3 – HAY MAS DE UNA FLOR EN LA ESQUINA

ANTERIOR

Page 35: Estructuras de Control

La solución NO funciona, porque se juntan todas las flores de la esquina y el problema pide que se junte una sola. SIGUIENT

E

Ejercicio 1: CASO 3 – HAY MAS DE UNA FLOR EN LA ESQUINA ITERACION

Cantidad de Flores en la esquina:

Como hay flores en la esquina se toman flores mientras la

condición sea verdadera

Cantidad de Flores tomadas:

Comenzar

iniciar

Fin

Pos(28, 5)

tomarFlor

0

3

3

0Mientras (HayFlorEnLaEsquina)

ERROR

ANTERIOR

Page 36: Estructuras de Control

Para el ejercicio 1, y para todo ejercicio en el que haya que juntar UNA flor o papel de una esquina la mejor solución es usar un SI (condición) ya que funciona para los tres casos planteados.

SIGUIENTE

CONCLUSIÓN

Selección

ANTERIOR

Page 37: Estructuras de Control

SIGUIENTE

2EJERCICIO

ANTERIOR

Page 38: Estructuras de Control

Si analizamos el ejercicio podemos ver que hay tres casos posibles

CASO 1: Hay 0 flores en la esquina.

CASO 2: Hay 1 flor en la esquina.

CASO 3: Hay mas de 1 flor en la esquina (pero no sabemos cuantas exactamente).

Ejercicio 2:Posicionar al robot en la esquina (28,5) y juntar TODAS las flores. En la esquina puede haber 0, 1 o mas flores.

SIGUIENTE

ANTERIOR

Page 39: Estructuras de Control

¿Qué estructura debo elegir para solucionar el problema pedido?

SIGUIENTE

Secuencia

Repetición

Selección

Iteración

ANTERIOR

Page 40: Estructuras de Control

¿Qué estructura debo elegir?

SIGUIENTE

Secuencia

Repetición

Selección

Iteración

Descarto la Secuencia porque el ejercicio me pide juntar TODAS las flores de la esquina

ANTERIOR

Page 41: Estructuras de Control

¿Qué estructura debo elegir?

SIGUIENTE

Prueba 1: Usamos Repetición

Secuencia

Repetición

Selección

Iteración

ANTERIOR

Page 42: Estructuras de Control

Comenzar

iniciar

Fin

Pos(28, 5)

tomarFlor

Esta estructura no es adecuada para este ejercicio en particular ya que la estructura repetir necesita saber la cantidad de veces que debe ejecutar las instrucciones.

Repetir ?

Sabemos que debemos juntar todas las flores de la esquina pero no sabemos cuantas hay exactamente en la misma por lo que no

sabemos que valor darle a N

CASO 1CASO 1CASO 1

SIGUIENTE

Repetición

Page 43: Estructuras de Control

¿Qué estructura debo elegir?

SIGUIENTE

Prueba 2: Usamos Selección

Secuencia

Repetición

Selección

Iteración

ANTERIOR

Page 44: Estructuras de Control

Cantidad de Flores en la esquina:

Si (HayFlorEnLaEsquina)

Comenzar

iniciar

Fin

Pos(28, 5)

Cantidad de Flores tomadas:

0

0

tomarFlor

32

1

En este caso por mas que el programa no da error no se cumple con lo pedido porque aún quedan flores en la esquina y no se han juntado.

Esquina (28 , 5)

Esta solución si bien funciona para los casos de 0 o 1 flor en la esquina siempre debemos escribir soluciones teniendo en cuenta todos los posibles escenarios.

SIGUIENTE

CASO 1CASO 1CASO 1 Iteración

En este caso , solo tomará una flor de todas las que hay en la esquina y continua con la ejecución del programa .

ANTERIOR

Page 45: Estructuras de Control

¿Qué estructura debo elegir?

SIGUIENTE

Prueba 3: Usamos Iteración

Secuencia

Repetición

Selección

Iteración

ANTERIOR

Page 46: Estructuras de Control

Cantidad de Flores en la esquina:

Cualquiera sea el caso de cantidad de flores en

la esquina con el mientras se juntara

todas las flores ya que la condición será

verdadera mientras haya alguna flor.

Mientras (HayFlorEnLaEsquina)

Comenzar

iniciar

Fin

Pos(28, 5)

Cantidad de Flores tomadas:

0

0

tomarFlor

30

3

Todo funciona correctamente para los tres casos.

Esquina (28 , 5)

SIGUIENTE

CASO 1CASO 1CASO 1 Selección

ANTERIOR

Page 47: Estructuras de Control

Para el ejercicio de ejemplo 2, y para todo ejercicio en el que haya que juntar TODAS las flores o papeles de una esquina la mejor solución es usar un Mientras (condición).

SIGUIENTE

CONCLUSIÓN

Iteración

ANTERIOR

Page 48: Estructuras de Control

CONCLUSIONES FINALES

1

•Cuando escribimos un programa debemos elegir la estructura de control adecuada

2

•Como vimos en los ejemplos anteriores muchas soluciones funcionan con mas de una estructura de control, pero sólo una es la adecuada.

3

•No alcanza con que el programa funcione, también hace falta que esté escrito correctamente, utilizando las estructuras adecuadas

SIGUIENTE

ANTERIOR

Page 49: Estructuras de Control

CONCLUSIONES FINALES

1

•La estructura si (condicion) debe utilizarse cuando queremos evaluar una condición antes de ejecutar las acciones. Hay que tener en cuenta que esas acciones sólo se ejecutarán una única vez

2

•La estructura repetir N, debe utilizarse cuando se sabe la cantidad exacta de veces que deben realizarse las acciones. No es posible utilizar un repetir si al momento de escribir el programa no se conoce la cantidad de veces que se deben ejecutar las acciones.

3

•La estructura mientras (condicion), debe utilizarse cuando se quiere ejecutar las acciones un conjunto de veces pero el programador desconoce la cantidad exacta.

ANTERIOR