90 likes | 261 Views
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. Ejemplo 3.3b).
E N D
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. Ejemplo 3.3b) 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 ¿QUE ANALIZO? 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 Ingreso 2013 - Expresión de Problemas y Algoritmos
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. Ejemplo 3.3b) 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 Mientras PosCa < 100 Cuando esa condición es falsa, el robot debe analizar la situación de la esquina (1,100) Planteamos una posible solución Ingreso 2013 - Expresión de Problemas y Algoritmos
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. Programa buscar variables cuadras : numero comenzar iniciar cuadras := 0 si (HayFlorEnLaEsquina & HayPapelEnLaEsquina) Informar (cuadras) sino mientras(PosCa <100) & (~HayFlorEnLaEsquina | ~HayPapelEnLaEsquina) Ejemplo 3.3 cuadras := cuadras + 1 mover si (HayFlorEnLaEsquina | HayPapelEnLaEsquina) cuadras := cuadras + 1 Informar (cuadras) fin Analicemos cada una de las partes de la solución Ingreso 2013 - Expresión de Problemas y Algoritmos 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. Programa buscar variables Se pueden destacar 4 partes en el programa cuadras : numero Parte 1 comenzar iniciar cuadras := 0 si (HayFlorEnLaEsquina & HayPapelEnLaEsquina) Parte 2 Informar (cuadras) sino mientras(PosCa <100) & (~HayFlorEnLaEsquina | ~HayPapelEnLaEsquina) Parte3 Ejemplo 3.3 cuadras := cuadras + 1 mover si (HayFlorEnLaEsquina | HayPapelEnLaEsquina) cuadras := cuadras + 1 Parte 4 Informar (cuadras) fin Analicemos cada una de las partes de la solución Ingreso 2013 - Expresión de Problemas y Algoritmos 4
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. Parte 1 Programa buscar variables Queda igual a la solución anterior cuadras : numero comenzar iniciar cuadras := 0 si (HayFlorEnLaEsquina & HayPapelEnLaEsquina) Informar (cuadras) sino mientras(PosCa <100) & (~HayFlorEnLaEsquina | ~HayPapelEnLaEsquina) Ejemplo 3.3 cuadras := cuadras + 1 mover si (HayFlorEnLaEsquina | HayPapelEnLaEsquina) cuadras := cuadras + 1 Informar (cuadras) fin Ingreso 2013 - Expresión de Problemas y Algoritmos 5
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. Parte 2 Programa buscar Analiza la esquina (1,1). Si hay flor y papel, entonces se informa 0 puesto que el robot NO avanzó variables cuadras : numero comenzar iniciar cuadras := 0 si (HayFlorEnLaEsquina & HayPapelEnLaEsquina) Informar (cuadras) sino mientras(PosCa <100) & (~HayFlorEnLaEsquina | ~HayPapelEnLaEsquina) Ejemplo 3.3 cuadras := cuadras + 1 mover si (HayFlorEnLaEsquina | HayPapelEnLaEsquina) cuadras := cuadras + 1 Informar (cuadras) fin Ingreso 2013 - Expresión de Problemas y Algoritmos 6
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. Parte 3 Programa buscar variables Evalúa que el valor de la calle sea menor a 100 Evalúa la situación de la esquina cuadras : numero comenzar iniciar cuadras := 0 si (HayFlorEnLaEsquina & HayPapelEnLaEsquina) Informar (cuadras) sino mientras(PosCa <100) & (~HayFlorEnLaEsquina | ~HayPapelEnLaEsquina) Ejemplo 3.3 cuadras := cuadras + 1 (*) mover (*) si (HayFlorEnLaEsquina | HayPapelEnLaEsquina) Mientras la conjunción sea verdadera se ejecutarán las instrucciones con (*) Al salir de la iteración, el robot debe analizar la situación de la esquina en la que se encuentra cuadras := cuadras + 1 Informar (cuadras) fin Ingreso 2013 - Expresión de Problemas y Algoritmos 7
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. Parte 4 Programa buscar variables cuadras : numero comenzar iniciar cuadras := 0 si (HayFlorEnLaEsquina & HayPapelEnLaEsquina) Informar (cuadras) Evalúa la situación de la esquina donde se encuentra el robot sino mientras(PosCa <100) & (~HayFlorEnLaEsquina | ~HayPapelEnLaEsquina) Ejemplo 3.3 cuadras := cuadras + 1 mover Puede ser una esquina cualquiera o la (1,100) si (HayFlorEnLaEsquina | HayPapelEnLaEsquina) cuadras := cuadras + 1 Informar (cuadras) fin Revisemos nuevamente la solución completa Ingreso 2013 - Expresión de Problemas y Algoritmos 8
Analice siguiendo la solución que informa el robot en cada casos: Programa buscar Flores y papeles en (1,1) variables cuadras : numero comenzar Flores y papeles en una esquina cualquiera iniciar cuadras := 0 si (HayFlorEnLaEsquina & HayPapelEnLaEsquina) Informar (cuadras) sino mientras(PosCa <100) & (~HayFlorEnLaEsquina | ~HayPapelEnLaEsquina) Ejemplo 3.3 cuadras := cuadras + 1 Flores y papeles en (1,100) mover si (HayFlorEnLaEsquina | HayPapelEnLaEsquina) cuadras := cuadras + 1 Ninguna esquina con flores y papeles Informar (cuadras) fin Ingreso 2013 - Expresión de Problemas y Algoritmos 9