La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Ejemplo 3.3b) El robot debe recorrer la avenida 1 hasta encontrar una esquina con flor y papel. Al finalizar el recorrido se debe informar la cantidad.

Presentaciones similares


Presentación del tema: "Ejemplo 3.3b) El robot debe recorrer la avenida 1 hasta encontrar una esquina con flor y papel. Al finalizar el recorrido se debe informar la cantidad."— Transcripción de la presentación:

1 Ejemplo 3.3b) El robot debe recorrer la avenida 1 hasta encontrar una esquina con flor y papel. Al finalizar el recorrido se debe informar la cantidad de cuadras recorridas hasta encontrar dicha esquina. La esquina puede NO existir. 1Ingreso Expresión de Problemas y Algoritmos A diferencia de la solución anterior, ahora puede ocurrir que no exista a lo largo de la avenida 1, una esquina con flor y papel Por lo tanto, no solo debo analizar la situación de cada esquina sino que además debo asegurarme que el robot está dentro de los límites de la ciudad Si esa esquina no existe, el robot recorrerá la avenida 1 desde la calle 1 hasta la calle 100, pero NO deberá avanzar mas allá. En ese caso no debe informar. Debo agregar una condición que controle que el robot no avance mas allá de la calle 100 ¿QUE ANALIZO?

2 Ejemplo 3.3b) El robot debe recorrer la avenida 1 hasta encontrar una esquina con flor y papel. Al finalizar el recorrido se debe informar la cantidad de cuadras recorridas hasta encontrar dicha esquina. La esquina puede NO existir. 2Ingreso Expresión de Problemas y Algoritmos Planteamos una posible solución Mientras PosCa < 100 Debo agregar una condición que controle que el robot no avance mas allá de la calle 100 Esa condición debe permitir que el robot avance mientras el valor de la calle en la que está ubicado sea menor a 100 Cuando esa condición es falsa, el robot debe analizar la situación de la esquina (1,100)

3 3Ingreso Expresión de Problemas y Algoritmos Ejemplo 3.3 El robot debe recorrer la avenida 1 hasta encontrar una esquina con flor y papel. Al finalizar el recorrido se debe informar la cantidad de cuadras recorridas hasta encontrar dicha esquina. La esquina puede NO existir. Analicemos cuidadosamente la sección señalada Programa buscar areas ciudad: areaC(1,1,100,100) robots robot robot1 variables cuadras : numero Comenzar cuadras := 0 si (HayFlorEnLaEsquina & HayPapelEnLaEsquina) Informar (cuadras) sino mientras (PosCa <100) & (~HayFlorEnLaEsquina | ~HayPapelEnLaEsquina) cuadras := cuadras + 1 mover si (HayFlorEnLaEsquina | HayPapelEnLaEsquina) cuadras := cuadras + 1 Informar (cuadras) fin variables R-info: robot1 comenzar AsignarArea(R-info,ciudad) Iniciar(R-info,1,1) fin

4 4Ingreso Expresión de Problemas y Algoritmos Ejemplo 3.3 El robot debe recorrer la avenida 1 hasta encontrar una esquina con flor y papel. Al finalizar el recorrido se debe informar la cantidad de cuadras recorridas hasta encontrar dicha esquina. La esquina puede NO existir. variables cuadras : numero cuadras := 0 cuadras := cuadras + 1 mover si (HayFlorEnLaEsquina | HayPapelEnLaEsquina) cuadras := cuadras + 1 Informar (cuadras) fin comenzar mientras (PosCa <100)& (~HayFlorEnLaEsquina | ~HayPapelEnLaEsquina) Analicemos las distintas partes de la solución si (HayFlorEnLaEsquina & HayPapelEnLaEsquina) Informar (cuadras) sino

5 5Ingreso Expresión de Problemas y Algoritmos Ejemplo 3.3 El robot debe recorrer la avenida 1 hasta encontrar una esquina con flor y papel. Al finalizar el recorrido se debe informar la cantidad de cuadras recorridas hasta encontrar dicha esquina. La esquina puede NO existir. variables cuadras : numero cuadras := 0 cuadras := cuadras + 1 mover si (HayFlorEnLaEsquina | HayPapelEnLaEsquina) cuadras := cuadras + 1 Informar (cuadras) fin comenzar mientras (PosCa <100)& (~HayFlorEnLaEsquina | ~HayPapelEnLaEsquina) Analicemos cada una de las partes de la solución si (HayFlorEnLaEsquina & HayPapelEnLaEsquina) Informar (cuadras) sino Parte 1 Parte 2 Parte 4 Parte 3 Se pueden destacar 4 partes importantes

6 6Ingreso Expresión de Problemas y Algoritmos Ejemplo 3.3 El robot debe recorrer la avenida 1 hasta encontrar una esquina con flor y papel. Al finalizar el recorrido se debe informar la cantidad de cuadras recorridas hasta encontrar dicha esquina. La esquina puede NO existir. cuadras := cuadras + 1 mover si (HayFlorEnLaEsquina | HayPapelEnLaEsquina) cuadras := cuadras + 1 Informar (cuadras) fin mientras (PosCa <100)& (~HayFlorEnLaEsquina | ~HayPapelEnLaEsquina) si (HayFlorEnLaEsquina & HayPapelEnLaEsquina) Informar (cuadras) sino Parte 1 Queda igual a la solución anterior variables cuadras : numero cuadras := 0 comenzar

7 7Ingreso Expresión de Problemas y Algoritmos Ejemplo 3.3 El robot debe recorrer la avenida 1 hasta encontrar una esquina con flor y papel. Al finalizar el recorrido se debe informar la cantidad de cuadras recorridas hasta encontrar dicha esquina. La esquina puede NO existir. cuadras := cuadras + 1 mover si (HayFlorEnLaEsquina | HayPapelEnLaEsquina) cuadras := cuadras + 1 Informar (cuadras) fin mientras (PosCa <100)& (~HayFlorEnLaEsquina | ~HayPapelEnLaEsquina) si (HayFlorEnLaEsquina & HayPapelEnLaEsquina) Informar (cuadras) sino Parte 2 Analiza la esquina (1,1). Si hay flor y papel, entonces se informa 0 puesto que el robot NO avanzó variables cuadras : numero cuadras := 0 comenzar

8 8Ingreso Expresión de Problemas y Algoritmos Ejemplo 3.3 El robot debe recorrer la avenida 1 hasta encontrar una esquina con flor y papel. Al finalizar el recorrido se debe informar la cantidad de cuadras recorridas hasta encontrar dicha esquina. La esquina puede NO existir. cuadras := cuadras + 1 (*) mover (*) si (HayFlorEnLaEsquina | HayPapelEnLaEsquina) cuadras := cuadras + 1 Informar (cuadras) fin mientras (PosCa <100)& (~HayFlorEnLaEsquina | ~HayPapelEnLaEsquina) si (HayFlorEnLaEsquina & HayPapelEnLaEsquina) Informar (cuadras) sino Parte 3 Mientras la conjunción sea verdadera se ejecutarán las instrucciones con (*) Evalúa que el valor de la calle sea menor a 100 Evalúa la situación de la esquina Al salir de la iteración, el robot debe analizar la situación de la esquina en la que se encuentra variables cuadras : numero cuadras := 0 comenzar

9 9Ingreso Expresión de Problemas y Algoritmos Ejemplo 3.3 El robot debe recorrer la avenida 1 hasta encontrar una esquina con flor y papel. Al finalizar el recorrido se debe informar la cantidad de cuadras recorridas hasta encontrar dicha esquina. La esquina puede NO existir. cuadras := cuadras + 1 mover si (HayFlorEnLaEsquina | HayPapelEnLaEsquina) cuadras := cuadras + 1 Informar (cuadras) fin mientras (PosCa <100)& (~HayFlorEnLaEsquina | ~HayPapelEnLaEsquina) Revisemos nuevamente la solución completa si (HayFlorEnLaEsquina & HayPapelEnLaEsquina) Informar (cuadras) sino Evalúa la situación de la esquina donde se encuentra el robot Parte 4 Puede ser una esquina cualquiera o la (1,100) variables cuadras : numero cuadras := 0 comenzar

10 10Ingreso Expresión de Problemas y Algoritmos Ejemplo 3.3 Analice siguiendo la solución que informa el robot en cada caso propuesto: Flores y papeles en (1,1) Flores y papeles en una esquina cualquiera Flores y papeles en (1,100) Ninguna esquina con flores y papeles Programa buscar areas ciudad: areaC(1,1,100,100) robots robot robot1 variables cuadras : numero Comenzar cuadras := 0 si (HayFlorEnLaEsquina & HayPapelEnLaEsquina) Informar (cuadras) sino mientras (PosCa <100) & (~HayFlorEnLaEsquina | ~HayPapelEnLaEsquina) cuadras := cuadras + 1 mover si (HayFlorEnLaEsquina | HayPapelEnLaEsquina) cuadras := cuadras + 1 Informar (cuadras) fin variables R-info: robot1 comenzar AsignarArea(R-info,ciudad) Iniciar(R-info,1,1) fin


Descargar ppt "Ejemplo 3.3b) El robot debe recorrer la avenida 1 hasta encontrar una esquina con flor y papel. Al finalizar el recorrido se debe informar la cantidad."

Presentaciones similares


Anuncios Google