Ejemplo 3.3
description
Transcript of Ejemplo 3.3
Eje
mp
lo 3
.3El 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. Suponga que la esquina seguro existe. Como ya se analizó, observamos que un dato a tener en cuenta es la cantidad de cuadras recorridas.
1Ingreso 2013 - Expresión de Problemas y AlgoritmosRetomemos la solución propuesta
Esto significa que al comienzo del recorrido,
debe tener valor 0 puesto que el robot no
recorrió ninguna cuadra. Cada vez que el
robot avance una cuadra, ese dato debe incrementar
su valor en 1Este dato modificará su valor a lo largo del
recorrido.
2Ingreso 2013 - Expresión de Problemas y Algoritmos
Eje
mp
lo 3
.3El 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. Suponga que la esquina seguro existe.
Analicemos paso a paso la solución
Solución propues
ta
programa cap3Ejemplo3areas ciudad: areaC(1,1,100,100)robots robot robot1 variables cuadras: numero comenzar cuadras:=0 mientras~(hayFlorEnLaEsquina)|~(hayPapelEnLaEsquina) {anotar que se caminó una cuadra mas} cuadras:=cuadras+1 mover Informar (cuadras) finvariables R-info: robot1comenzar AsignarArea(R-info,ciudad) Iniciar(R-info,1,1)fin
3Ingreso 2013 - Expresión de Problemas y Algoritmos
Eje
mp
lo 3
.3El 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. Suponga que la esquina seguro existe.
Analicemos paso a paso la solución
En particular observem
os esta sección
programa cap3Ejemplo3areas ciudad: areaC(1,1,100,100)robots robot robot1 variables cuadras: numero comenzar cuadras:=0 mientras~(hayFlorEnLaEsquina)|~(hayPapelEnLaEsquina) {anotar que se caminó una cuadra mas} cuadras:=cuadras+1 mover Informar (cuadras) finvariables R-info: robot1comenzar AsignarArea(R-info,ciudad) Iniciar(R-info,1,1)fin
4
variables
comenzar
cuadras:= 0
mientras ~(hayFlorEnLaEsquina) | ~(hayPapelEnLaEsquina)
cuadras:=cuadras+1
mover
Informar (cuadras)
fin
Ingreso 2013 - Expresión de Problemas y Algoritmos
Eje
mp
lo 3
.3El 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. Suponga que la esquina seguro existe.
cuadras: numero
Paso 1 : Declaro la variable cuadras, para contar las cuadras recorridas
5
variables
cuadras: numero
comenzar
mientras ~(hayFlorEnLaEsquina) | ~(hayPapelEnLaEsquina)
cuadras:=cuadras+1
mover
Informar (cuadras)
fin
Ingreso 2013 - Expresión de Problemas y Algoritmos
Eje
mp
lo 3
.3El 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. Suponga que la esquina seguro existe.
cuadras:= 0
Paso 2: Le asigno valor 0 a la variable cuadras, porque el robot aún no recorrió ninguna cuadra
6Ingreso 2013 - Expresión de Problemas y Algoritmos
Eje
mp
lo 3
.3El 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. Suponga que la esquina seguro existe.
variables
cuadras: numero
comenzar
cuadras:= 0
cuadras:=cuadras+1 (*)
mover (*)
Informar (cuadras)
fin
Paso 3: Analizo la situación de la esquina . Si en esa esquina no hay flor o no hay papel, la condición será verdadera, por lo tanto se ejecutarán las instrucciones marcadas con (*). Si no pasará a la instrucción Informar
mientras ~(hayFlorEnLaEsquina) | ~(hayPapelEnLaEsquina)
7
variables
cuadras: numero
comenzar
cuadras:= 0
mientras ~(hayFlorEnLaEsquina) | ~(hayPapelEnLaEsquina)
mover
Informar (cuadras)
fin
Ingreso 2013 - Expresión de Problemas y Algoritmos
Eje
mp
lo 3
.3El 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. Suponga que la esquina seguro existe.
cuadras:= cuadras + 1
Paso 4: en caso que la condición del mientras sea verdadera, incremento la cantidad de cuadras en 1
8
variables
cuadras: numero
comenzar
cuadras:= 0
mientras ~(hayFlorEnLaEsquina) | ~(hayPapelEnLaEsquina)
cuadras:=cuadras+1
Informar (cuadras)
fin
Ingreso 2013 - Expresión de Problemas y Algoritmos
Eje
mp
lo 3
.3El 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. Suponga que la esquina seguro existe.
moverPaso 5: en caso que la condición del mientras sea verdadera, el robot avanza una cuadra y vuelvo a analizar la situación de la nueva esquina (Paso 4)
9
variables
cuadras: numero
comenzar
cuadras:= 0
mientras ~(hayFlorEnLaEsquina) | ~(hayPapelEnLaEsquina)
cuadras:=cuadras+1 (*)
mover (*)
Informar (cuadras)
fin
Ingreso 2013 - Expresión de Problemas y Algoritmos
Eje
mp
lo 3
.3El 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. Suponga que la esquina seguro existe.
Las instrucciones con (*) se ejecutarán varias veces, hasta que el robot encuentre una esquina con flores y papeles
10
variables
cuadras: numero
comenzar
cuadras:= 0
mientras ~(hayFlorEnLaEsquina) | ~(hayPapelEnLaEsquina)
cuadras:=cuadras+1
mover
fin
Ingreso 2013 - Expresión de Problemas y Algoritmos
Informar (cuadras)
Eje
mp
lo 3
.3El 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. Suponga que la esquina seguro existe.
Paso 6: cuando el robot encuentre la esquina con flores y papeles (sale del mientras), muestra el valor que contiene la variable cuadras
Analicemos un caso particular
11
variables
cuadras: numero
comenzar
cuadras:= 0
mientras ~(hayFlorEnLaEsquina) | ~(hayPapelEnLaEsquina)
cuadras:=cuadras+1
mover
Informar (cuadras)
fin
Ingreso 2013 - Expresión de Problemas y Algoritmos
Eje
mp
lo 3
.3Supongamos la siguiente situación y sigamos la solución propuesta:Esquina (1,1) vacíaEsquina (1,2) 3 papelEsquina (1,3) 5 floresEsquina (1,4) 2 papeles y 1florEsquina (1,5) 4 papeles y 4 flores
(1,1)
(1,4)
(1,5)
(1,6)
(1,5)
(1,3)
(1,2)
0
cuadras
Situación inicialEl robot en (1,1)La variable cuadras con valor 0Condición verdadera
Esquina vacía
3 papele
s
5 flores
2 papeles,
1 flor
4 papeles, 4 flores
En (1,1) Verdadera
12
variables
cuadras: numero
comenzar
cuadras:= 0
mientras ~(hayFlorEnLaEsquina) | ~(hayPapelEnLaEsquina)
cuadras:=cuadras+1
mover
Informar (cuadras)
fin
Ingreso 2013 - Expresión de Problemas y Algoritmos
Eje
mp
lo 3
.3
(1,1)
(1,4)
(1,5)
(1,6)
(1,5)
(1,3)
(1,2)
Supongamos la siguiente situación y sigamos la solución propuesta:Esquina (1,1) vacíaEsquina (1,2) 3 papelEsquina (1,3) 5 floresEsquina (1,4) 2 papeles y 1florEsquina (1,5) 4 papeles y 4 flores
Situación actualEl robot en (1,2)La variable cuadras con valor 1Condición Verdadera
Esquina vacía
3 papele
s
5 flores
2 papeles,
1 flor
4 papeles, 4 flores
En (1,2) Verdadera
1
cuadras
13
variables
cuadras: numero
comenzar
cuadras:= 0
mientras ~(hayFlorEnLaEsquina) | ~(hayPapelEnLaEsquina)
cuadras:=cuadras+1
mover
Informar (cuadras)
fin
Ingreso 2013 - Expresión de Problemas y Algoritmos
Eje
mp
lo 3
.3
(1,1)
(1,4)
(1,5)
(1,6)
(1,5)
(1,3)
(1,2)
Supongamos la siguiente situación y sigamos la solución propuesta:Esquina (1,1) vacíaEsquina (1,2) 3 papelEsquina (1,3) 5 floresEsquina (1,4) 2 papeles y 1florEsquina (1,5) 4 papeles y 4 flores
Esquina vacía
3 papele
s
5 flores
2 papeles,
1 flor
4 papeles, 4 flores
Situación actualEl robot en (1,3)La variable cuadras con valor 2Condición Verdadera
En (1,3) Verdadera
2
cuadras
14
variables
cuadras: numero
comenzar
cuadras:= 0
mientras ~(hayFlorEnLaEsquina) | ~(hayPapelEnLaEsquina)
cuadras:=cuadras+1
mover
Informar (cuadras)
fin
Ingreso 2013 - Expresión de Problemas y Algoritmos
Eje
mp
lo 3
.3
(1,1)
(1,4)
(1,5)
(1,6)
(1,5)
(1,3)
(1,2)
Supongamos la siguiente situación y sigamos la solución propuesta:Esquina (1,1) vacíaEsquina (1,2) 3 papelEsquina (1,3) 5 floresEsquina (1,4) 2 papeles y 1florEsquina (1,5) 4 papeles y 4 flores
Esquina vacía
3 papele
s
5 flores
2 papeles,
1 flor
4 papeles, 4 flores
Situación actualEl robot en (1,4)La variable cuadras con valor 3Condición Falsa
En (1,4) Falsa
3
cuadras
Termina la iteración
Muestra el valor 3El robot se detiene