Estructuras de Control
description
Transcript of Estructuras de Control
ESTRUCTU
RAS 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
CONCEPTOS
Las estructuras de control permiten al programador alterar el flujo de ejecución del programa
Selectivas
Repetitivas
Condicionales
SIGUIENTE
ANTERIOR
SIGUIENTE
1EJERCICIO
ANTERIOR
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
Ejercicio 1: CASO 1 NO HAY FLORES EN LA ESQUINA
SIGUIENTE
Esquina (28 , 5)
ANTERIOR
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
¿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
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
¿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
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
¿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
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
¿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
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
Ejercicio 1: CASO 2 HAY 1 FLOR EN LA ESQUINA
SIGUIENTE
Esquina (28 , 5)
ANTERIOR
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
¿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
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
¿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
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
¿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
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
¿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
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
Ejercicio 1: CASO 3 HAY MAS DE UNA FLOR EN LA
ESQUINA
SIGUIENTE
Esquina (28 , 5)
ANTERIOR
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
¿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
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
¿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
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
¿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
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
¿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
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
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
SIGUIENTE
2EJERCICIO
ANTERIOR
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
¿Qué estructura debo elegir para solucionar el problema pedido?
SIGUIENTE
Secuencia
Repetición
Selección
Iteración
ANTERIOR
¿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
¿Qué estructura debo elegir?
SIGUIENTE
Prueba 1: Usamos Repetición
Secuencia
Repetición
Selección
Iteración
ANTERIOR
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
¿Qué estructura debo elegir?
SIGUIENTE
Prueba 2: Usamos Selección
Secuencia
Repetición
Selección
Iteración
ANTERIOR
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
¿Qué estructura debo elegir?
SIGUIENTE
Prueba 3: Usamos Iteración
Secuencia
Repetición
Selección
Iteración
ANTERIOR
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
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
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
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