21
OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

Embed Size (px)

Citation preview

Page 1: OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

OTTO EL ROBOTSICI-3011

Preparado por:

Prof. Nelliud D. Torres

Page 2: OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

Instrucciones para el Robot Otto

El propósito de estudiar a Otto el Robot es familiarizarse con los conceptos básicos de programación de computadoras. Otto es un robot que no es muy listo. De hecho, su base de conocimientos se limita a sólo 15 instrucciones y su vida se limita a recorrer un cuarto. Los programas que Otto entiende pueden contener cualquier cantidad de pasos, siempre y cuando sean combinaciones de las 15 instrucciones en su base de conocimientos. Los pasos en un programa de Otto se ejecutan de forma secuencial; esto es, los pasos se ejecutan en el orden en que aparecen en el programa, uno detrás del otro.

Page 3: OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

Restricciones de Otto el Robot

a) Otto sólo entiende las instrucciones en su base de conocimientos.

b) Otto mantiene un solo número en su memoria. El número comienza en cero.

c) Otto comienza sentado y mirando hacia el frente.

d) Otto deberá terminar sentado en la silla original y en su posición original.

e) Otto recibe las instrucciones del programa antes de que comience a caminar por el cuarto.

Page 4: OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

Instrucciones para Manipular el Cuerpo de Otto

1. Stand up

Este comando permite que Otto se pueda levantar de la silla. Si se le indica que ejecute el comando nuevamente o que se levante si ya lo estaba, ocurre un error y Otto se detiene.

Page 5: OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

2. Sit down

Le permite a Otto sentarse en la silla. Si no hay una silla al lado, ocurre un error y Otto deja de funcionar. (se cae)

¡Auchh! ¿Quién movió la silla?

Page 6: OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

3. Take a Step (Step)

Otto puede dar un paso para el frente. Debe estar parado para que se pueda ejecutar esta instrucción. Para efectos del curso, vamos a abreviar este comando a: STEP.

Page 7: OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

4. Turn

Otto se mueve a la derecha 90 grados. No existe una instrucción para que se pueda mover a la izquierda 90 grados. ¿Cómo se puede hacer para que Otto vire a la izquierda entonces?

Page 8: OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

5. Raise Arms

Otto pone sus brazos hacia el frente. Esto le permite detectar paredes y puertas para poder moverse efectivamente.

Page 9: OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

6. Lower Arms

Otto baja los brazos. Al tenerlos abajo, no puede detectar si tiene una pared, objeto o puerta al frente. Por uso y costumbre se le da este comando justo antes de que se siente en la silla y termine el programa de ejecutarse.

Page 10: OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

Instrucciones Aritméticas7. Add One

Otto tiene una memoria que sólo le permite almacenar un número. Siempre que Otto se prende, el número es cero. Esta instrucción le permite sumar uno al número que tenga en la memoria. Si el número era cero, lo cambia a uno.

+ 1

Page 11: OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

8. Subtract One

Otto le resta uno al número que tenga en la memoria. Si el número era cero, va a cambiar a negativo uno.

- 1

Page 12: OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

Instrucciones Condicionales9.   Test: Are your hands touching anything?

Yes: (Instrucciones si la condición es cierta)

No: (Instrucciones si la condición es falsa)Con esta instrucción se le pregunta a Otto si sus manos (que deben estar levantadas) están tocando algún objeto tal como una pared, puerta, silla, etc. En caso de ser cierto, va a ejecutar las intrucciones que se agrupan bajo la opción YES, de no ser cierto, va a ejecutar las instrucciones que se agrupan bajo la opción NO.

Esta instrucción puede abreviarse:

Test: AYHTA?

Page 13: OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

10.   Test: Are your hands touching a door?

Yes: (Instrucciones si la condición es cierta)

No: (Instrucciones si la condición es falsa)

Con esta instrucción se le pregunta a Otto si sus manos (que deben estar levantadas) está tocando específicamente una puerta. En caso de ser cierto, va a ejecutar las intrucciones que se agrupan bajo la opción YES, de no ser cierto, va a ejecutar las instrucciones que se agrupan bajo la opción NO.

Esta instrucción puede abreviarse:

Test: AYHTAD?

Page 14: OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

11.   Test: Is the number in your memory zero?

Yes: (Instrucciones si la condición es cierta)

No: (Instrucciones si la condición es falsa)Con esta instrucción se le pregunta a Otto si el número que tiene en su memoria es cero. En caso de ser cierto, va a ejecutar las intrucciones que se agrupan bajo la opción YES, de no ser cierto, va a ejecutar las instrucciones que se agrupan bajo la opción NO.

¿ 0 ? Esta instrucción puede abreviarse:

Test: ITNIYMZ?

Page 15: OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

Instrucción para Repeticiones:

Le permite a Otto poder ejecutar una o más instrucciones repetitivamente sin la necesidad de tener que volver a escribir.

12.  Repeat x times [un grupo de instrucciones]

Ejemplo: Es equivalente a: 1. STEP 1. Repeat 4 times [STEP]2 STEP3. STEP4. STEP

Page 16: OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

Otras Instrucciones:

Brinca al paso (instrucción) # y continua la ejecución del programa de forma secuencial.

13.  Goto #

Ejemplo: : 1. Stand Up2 Raise Armas3. Repeat 3 times [Step]4. Turn5. Goto 3

Page 17: OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

14. Open door

Esta instrucción le permite a Otto poder abrir una puerta. Necesita estar justo frente a la puerta para que la instrucción se pueda ejecutar sin errores. La puerta se cierra de forma automática, después de que Otto cruce el umbral.

Page 18: OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

15. Stop

Cuando Otto ejecuta esta instrucción, se apaga automáticamente. En otras palabras, detiene la ejecución del programa.

ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

Z

Page 19: OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

Ejemplo de un programa de Otto:

El siguiente es el grupo de pasos para que Otto camine cinco (5) pasos hacia el frente, se voltee, y camine cinco (5) pasos de nuevopara volver a su silla. 1.      Stand up2.      Repeat 5 times [Take a step]3.      Repeat 2 times [Turn]4.      Repeat 5 times [Take a step]5.      Repeat 2 times [Turn]6.      Sit down7.      Stop

Page 20: OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

Proyectos

1. Escribir un programa que le permita a Otto caminar de su silla a una pared y que vuelva de lapared a la silla para sentarse nuevamente.(el espaldar de la silla es lo suficientemente altopara que Otto lo pueda tocar cuando este de regreso)

Page 21: OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres

Proyectos2. Escribir un programa que le permita a Otto caminar de su silla a una pared y que vuelva de lapared a la silla para sentarse nuevamente. Sin embargo en este caso, el espaldar de la silla NO es losuficientemente alto para que Otto lo pueda tocarcuando este de regreso.