Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estimados estudiantes:
Cuando creé RUR-PLE, lo hice para que fuera un proyecto de programación divertido con la
esperanza de usarlo para enseñarles a mis dos hijos. Decidí que fuese gratuito y estuviera
disponible para todos, para que otras personas también pudieran usarlo.
En principio, pensé que quizás unos pocos estudiantes podrían usarlo. Desde entonces, una gran
cantidad de estudiantes de muchos países lo han usado. Sin embargo, fue una gran sorpresa y un
gran honor cuando Samsung se comunicó conmigo para informarme que habían elegido RUR-PLE
como herramienta para enseñarles el pensamiento computacional a muchos de ustedes. Lo que más
me impresionó fue la forma en la que han incorporado las ideas de RUR-PLE en un libro tan
interesante y divertido que presenta las ideas de una forma que hace que aprender sea mucho más Andre Roberge es un físico cuyo pasatiempo es la programación. Después de
fácil. obtener su doctorado, desarrolló varios programas de computadora (incluido RUR-
PLE) mientras trabajaba como profesor en tres universidades, como la Universite
Aun así, incluso con la ayuda de este libro visual, cuando empiecen a aprender con RUR-PLE, Sainte-Anne en Canadá, de la que ha sido presidente durante los últimos 10 años.
esperen sorprenderse con el comportamiento del robot: la forma en que hace exactamente lo que le En 2002, recibió el premio Queen Elizabeth Jubilee, y actualmente enseña Física e
indicas y no lo que quisiste decirle. Un estudiante que usa RUR-PLE le dijo a su maestro: “¡Es tan Hidráulica en la Universite Sainte-Anne. Al mismo tiempo, es padre de dos niños
que también estudian Hidráulica.
lógico y tan frustrante a la vez!”.
Pronto aprenderás que escribir un programa que funciona exactamente como lo planeaste es una de
las sensaciones más gratificantes del mundo. La programación por computadora es divertida y te
ayuda a desarrollar habilidades de pensamiento computacional. Quizás, algún día uses estas
habilidades para crear algo que mis hijos o nietos en Canadá puedan aprender.
¡Feliz programación!
Andre Roberge
Canadá
Cómo usar el material
La “Bienvenido al mundo Rurple” está formado por 12 contenidos de aprendizaje e incluye una tarea Comprensión En general,
En general, este
este libro
libro estáestá formado
formado por historias
por historias que interés
que generan generan interés
en los en losyestudiantes
estudiantes que ayudan ayentender
que
composición práctica llamada “Práctica de manipulación de robots” que te ayudará a entender. Como tareas que el de la lección ayudan a entender mediante narraciones. El aprendizaje de los contenidos y las tareas de la misión
mediante narraciones. El aprendizaje de los contenidos y las tareas de la misión no se enseñan por separado, si
estudiante puede vincular con los contenidos de aprendizaje, se incluye la “Capacitación para controlar no se enseñan por separado, si no que las tareas de la misión (Capacitación para controlar
no que las tareas de la misión (Capacitación para controlar robots y Solicitud de despacho de robots) robots
se y
de este libro Solicitud de despacho de robots) se combinan en la lección según los contenidos de aprendizaje.
robots” (con un nivel de dificultad de 1 a 4) y la “Solicitud de despacho de robots” (con un nivel de combinan en la lección según los contenidos de aprendizaje.
dificultad de 3 a 5). La composición del libro es la siguiente:
Contenidos de NIVEL 1a4 Capacitación para
aprendizaje
controlar robots
La información general necesaria para desarrollar RUR-
PLE y la introducción a Python se incluyen a modo de
historieta.
Concepto de programa
+ Práctica de
manipulación de robots
NIVEL 3a5 Solicitud de despacho
de robots
Nota
La guía del método de instalación de
RUR-PLE y Python El manual cuenta con un total de 20 lecciones; para las lecciones 1 a 12, los contenidos de aprendizaje
Contenido de aprendizaje presentados en el libro y en las tareas de la misión (Capacitación para controlar robots y Solicitud de despacho de
Aprender el concepto de la programación robots) se realizan en conjunto en la clase, y para las lecciones 13 a 16, la clase se realizará en un entorno en el
mediante RUR-PLE que los estudiantes deberán pensar y resolver problemas. Para las lecciones 17 a 20, la clase se lleva a cabo en
forma de proyecto en equipo que se basará en la experiencia para pensar y resolver problemas obtenida de las
Información adicional y
explicación de conceptos lecciones anteriores. (Consulte el Método de enseñanza y aprendizaje para maestros de cada lección).
Práctica de manipulación de
robots Práctica simple asociada
con el “Contenido de aprendizaje”
3 Visitar la tienda
robots
4 Reparar el centro comercial
5 Verificar el semáforo
Capacitación para Solicitud de 6 Ir a un concierto en la ribera
controlar robots despacho de robots
7 Entrada en calor
8 Jugar al béisbol
9 Limpiar el parque de diversiones
Ingresar Mapa de la misión/Resumen de la aventura
10 Construir un helipuerto
Presentación de personajes/Prólogo
6 La variable, un recipiente para guardar información | Práctica de manipulación de robots 07 9 Cuidar el jardín de flores de la princesa
7 Entrada y salida de datos 10 Calcular el tamaño de la habitación de la princesa
8 Las cuatro operaciones matemáticas también se pueden realizar con el programa | Práctica de manipulación de robots 08, 09 11 Limpiar la torre del cielo
9 Varias formas de información | Práctica de manipulación de robots 10, 11 12 Cuidar el jardín de flores del cielo
10 Los trabajos competitivos se pueden realizar de forma conveniente | Práctica de manipulación de robots 12, 13 53
11 Comparar y evaluar | Práctica de manipulación de robots 14
12 Crear un clon de robot | Práctica de manipulación de robots 15
Proyecto Plantilla
Entender RUR-PLE
Mapa de la misión del mundo RUR-PLE Programación orientada
Podrás instalar el programa RUR-PLE y Podrás escribir un programa
usar las funciones básicas. que produzca y controle una
cantidad de objetos robot
Podrás realizar una manipulación sencilla
mediante las funciones básicas de RUR-PLE. 02 Función definida por el usuario FIN mediante la clase UsedRobot.
Mapa de la misión del mundo Uso del enunciado de control II Contenidos de aprendizaje | 11
Podrás definir y ejecutar las
Contenidos de Solicitud de despacho de robots | 11,
aprendizaje | 1, 2, 3 LISTO funciones definidas por el usuario. RUR-PLE Podrás resolver los problemas 12
LISTO
Podrás resolver los problemas mediante las mediante el enunciado de control.
Debes colocar el adhesivo de misión completa
funciones.
cada vez que termines las misiones de la Solicitud de despacho de robots | 9, 10
aventura de programación exitosamente. LISTO Resolución de problemas
Contenidos de aprendizaje | 3
Función del sensor y operador lógico I
Capacitación para controlar robots | 1, 2 Cuando resuelvas situaciones
Solicitud de despacho de robots | 1, 2 problemáticas de otros amigos, podrás
Podrás comprender la función del sensor de LISTO Implementación de problemas I
compararlas con tu problema.
RUR-PLE y ejecutarlo según las condiciones.
Podrás definir la situación problemática
Comprenderás los conceptos de enunciados dentro de un mundo de 5x5. A medida que resuelvas situaciones
condicionales y operadores lógicos. problemáticas de otros amigos,
Variable
Podrás resolver problemas mediante encontrarás contenidos que requieran
Podrás diseñar e implementar un modificaciones o adiciones, y podrás
enunciados condicionales y operadores algoritmo para resolver problemas que
Podrás comprender el concepto de compartir tu opinión.
lógicos. se adapte a una situación específica.
variable y escribir un programa que
distinga variables locales y globales. Podrás elegir un problema bien
Contenidos de aprendizaje | 4, 5 Proyecto | 1 diseñado entre los problemas que
Podrás resolver los problemas LISTO
Capacitación para controlar robots | 3, 4 crearon otros amigos.
LISTO mediante las variables.
Proyecto | 2
LISTO
Implementación de problemas II
Contenidos de aprendizaje | 5
Capacitación para controlar robots | 5, 6 LISTO Podrás definir una situación
Función del sensor y operador lógico Resolución de problemas II
problemática superior al 5x5 del
tamaño del mundo.
Podrás comprender el proceso de Cuando resuelvas situaciones
entrada y salida de datos, e Podrás diseñar e implementar un problemáticas de otros amigos, podrás
implementarlo durante la práctica. algoritmo para resolver problemas que compararlas con tu problema.
se adapte una situación específica.
Podrás resolver los problemas
Tipos de información, lista y conjunto A medida que resuelvas situaciones
mediante operadores matemáticos. Proyecto | 3 problemáticas de otros amigos,
Podrás comprender varios tipos de
LISTO encontrarás contenidos que requieran
información y usarlos en la situación modificaciones o adiciones, y podrás
Contenidos de aprendizaje | 7, 8
LISTO correspondiente. compartir tu opinión.
Comprenderás los conceptos de lista
Organización del equipo y plan
de operación Podrás elegir un problema bien
y conjunto, y podrás resolver los
diseñado desde los problemas
problemas.
Podrás elegir un líder y el nombre que crearon otros amigos.
Enunciado de repetición y
LISTO del equipo, y compartir las tareas.
función range ( ) Contenidos de aprendizaje | 9
Proyecto | 4 LISTO
Podrás leer una guía de tareas y escribir un
Podrás comprender la estructura de plan de desempeño para la tarea.
un bucle básico y un bucle anidado. INICIO
Enunciado de repetición
Podrás resolver los problemas Proyecto | 5, 6, 7 LISTO Producción de una ficha de trabajo
mediante el enunciado de y operador de
repetición. comparación
Podrás resolver problemas mediante Podrás fijar una misión y crear el
Podrás implementar un bucle for
enunciados de repetición y operadores de mundo para cada sinopsis.
mediante la función range ( ).
comparación. Podrás implementarla mediante RUR-
Recolectar información y
Contenidos de aprendizaje | 11 PLE y escribir una ficha de trabajo para
escribir la sinopsis
Contenidos de aprendizaje | Solicitud
Capacitación para controlar robots | 7, 8 una competencia.
de despacho de robots 7, 8 | 3
LISTO
LISTO Podrás recopilar información para la tarea,
Proyecto | 9
tener un debate según tu experiencia y
LISTO
recopilar opiniones.
Comprender el enunciado de control Uso del enunciado de control I Según las opiniones recopiladas, podrás
escribir una sinopsis para una situación Presentación y evaluación del
Podrás comprender los enunciados de control con Podrás resolver los problemas problemática. producto
las estructuras de secuencia, condición y mediante el enunciado de control.
repetición. Proyecto | 8 LISTO Podrás brindar una presentación sobre
Podrás resolver los problemas mediante estos Solicitud de despacho de robots | 6, 7, 8 el proceso de creación del producto
enunciados de control.
LISTO
Podrás evaluar según los criterios
Capacitación para controlar robots | 9, 10 de evaluación basados en los
Solicitud de despacho de robots | 4, 5 contenidos de la presentación.
LISTO
Proyecto | 10, 11 LISTO
SINOPSIS PERSONAJES
Resumen de la aventura de programación Compañeros de aventura
Existe un “Servicio de despacho de robots” en el que los robots con muchas funciones ayudan a las personas del
“Mundo Rurple” desde hace mucho tiempo. Un buen día, Old-bot, que había estado encargándose del Servicio de
despacho de robots, decidió jubilarse y nombrarte a ti como su sucesor. Tendrás que enseñarles y capacitar a los Red-bot
robots sin experiencia para que sean buenos y mantengan la paz del Mundo Rurple al completar varias misiones
con robots bien entrenados. El robot rojo es saludable y fuerte. Suele cometer errores, ya que actúa
Por esto, tienes que elegir entre Red-bot, Blue-bot y Green-bot, y aprender la programación básica, como sin pensar, pero a la hora de enfrentarse a una crisis es el mejor.
“Funciones y enunciados condicionales para operar robots”, etc. mediante los 15 pasos de “Práctica de
manipulación de robots”. Luego, desarrollarás tu capacidad para resolver problemas mediante la “Capacitación
para controlar robots” en varias situaciones que pueden ocurrir en tu hogar o en la escuela, como entregar el
periódico, saltar obstáculos y limpiar un parque de diversiones. Básicamente, estás capacitándote para aprender
Green-bot
a programar un robot. El robot verde es muy entrometido. Siempre tiene mucha curiosidad y
Cuando termines la capacitación, comenzarás el nivel “Solicitud de despacho de robots”. La misión de
desea conocer más sobre Python en particular. A veces, hace muchas
programación estará completa si llegas a la Torre del cielo y te reúnes con los ángeles a medida que resuelves
varias misiones, como diseñar una pirámide, cuidar las flores del oasis, entregar pizza en los apartamentos del
preguntas y sus amigos se agotan.
hormiguero y salvar a la princesa atrapada en el laberinto. Si llegas a la cima, es probable que seas el maestro
del Mundo Rurple mientras diseñas tu propio mundo y resuelves las misiones. Blue-bot
1-3 Los pensamientos creativos son la especialidad del robot azul. Tiene
muchos conocimientos pero su manera brusca de hablar es una falla.
Puedo salir a jugar
después de limpiar Sin embargo, siempre tiene nuevas ideas y no se cansa de responder
este lugar, ¿verdad?
todas las preguntas de Green-bot.
Entreguemos este
periódico a la casa
de mi abuelo.
Old-bot
Robot viejo y sabio que es respetado por todos los robots. Lo
consideran un robot legendario porque tiene mucha experiencia
Por lo tanto, voy a jubilarme del Sin embargo, como los robots no tienen ¡Hola!
Me encargo del servicio de despacho y se lo experiencia aún, necesitamos a alguien ¡Voilá!
Servicio de dejaré a los robots más jóvenes. que les enseñe.
despacho de
robots. Es difícil
para mí continuar
con esta tarea.
También soy un robot que crearon
Las personas podrían aprender
Este concepto de aprender un lenguaje de para usar en GvR, uno de los
conocimientos básicos de la programación
programación al controlar un robot ha aparecido lenguajes de programación. Podrías
de una forma divertida al manipular al
en varias versiones del lenguaje de programación decir que soy un ancestro del RUR-
robot que solo puede realizar acciones
desde entonces. PLE que usarás.
simples mediante Pascal.
Primero, te
El “RUR” de “RUR-PLE” significa
contaré Es una herramienta de aprendizaje excelente
un poco sobre Rossum's Universal Robots, una
para usar casi cualquier factor del lenguaje de
Es por eso que te elijo obra de Karel Capek, a quien se
RUR-PLE para que programación llamado Python que está más
como mi sucesor. puedas capacitar le ocurrió el concepto de desarrollado que GvR y yo.
a los robots. “robot” por primera vez.
¡Hola! Soy Red-bot y quiero ¡Soy Green-bot! Ja, ja, ja. Soy Blue-bot.
convertirme en el mejor Cambio y fuera.
robot del futuro.
¿No
deberíamos...?
1 Instalación de RUR-PLE
1 Ingresa al sitio web (http://code.google.com/p/rur-ple/) para descargar RUR-PLE. 3 Descarga el archivo de instalación en la página “Descargas”.
2 Selecciona el archivo correspondiente para tu sistema operativo en el menú 4 El proceso de instalación después de la descarga es el mismo que para cualquier
“Descargas”. otro programa.
2 Instalación y ejecución de Python
Ingresa al sitio web oficial de Python (http://www.python.org/download) y descarga el archivo de 02 IDLE: [iniciar] → [programa] → [Python 3.4.2] →
instalación correspondiente para tu sistema operativo y CPU. Existe una pequeña diferencia gramatical
[IDLE(Python GUI)]
entre la versión Python 2.X y la versión Python 3.x. La pantalla de ejecución de Python se ve así: Python
es un lenguaje de programación en el que el resultado
de ejecución aparece inmediatamente cuando se
Es posible ejecutar RUR-PLE sin instalar Python. La programación básica que se puede ingresa un comando. Por ejemplo, si ingresas un
realizar en Python también se puede realizar en RUR-PLE, por lo que no es necesario que enunciado comando como print (“Hello”) a una consola
instales Python. (>>>), como se muestra en la figura, y presionas la
tecla Enter, el programa “Hello” se muestra
inmediatamente como resultado de ejecución. Para los
comandos de Python se escribe todo en minúscula, ya
que podrían ocurrir errores si se usan letras
mayúsculas. La pantalla de ejecución de Python se
denomina Python Shell.
Ejecución de Python
01 Cómo ejecutar directamente en el estado de consola (>>>)
Python se puede ejecutar directamente en el estado de consola (>>>) y el
resultado se verifica inmediatamente.
De esta forma, el resultado se puede verificar rápidamente, pero es molesto volver
a ingresar el programa cada vez que desees ejecutarlo.
02 Cómo ejecutar el programa después de guardarlo.
Python se puede ejecutar después de escribir y guardar el código del programa.
Sitio web para descargar Python De esta forma, podrás ejecutar el programa sin la inconveniencia de ingresarlo
cada vez que lo necesites porque el programa estará guardado.
Iniciar Python
1 Presiona [Archivo]-[Ventana nueva]
01 Comando de Python: [Iniciar] → [Programa] → [Python 3.4.2] → Ejecución de [Python(línea de comando)] 2 Ingresa el programa si aparece la ventana (ventana de edición de IDLE) y ejecuta [Archivo]-[Guardar].
3 Designa la ruta y guarda los contenidos del programa al ingresar el nombre del programa. (extensión : py)
4 Al presionar [Ejecutar]-[Ejecutar módulo] desde la ventana de edición IDLE o al presionar la tecla F5,
ejecuta el programa y verifica el resultado. Para que se ejecute el programa, se debe activar la ventana
en la que se está editando el código py.
1 ¿Por qué aprendes a programar? Sin embargo, como la computadora no es tan inteligente como un ser humano, existen muchas tareas
que las computadoras no pueden realizar. Los tipos de lenguajes que pueden entender también son
¿En qué piensas cuando escuchas la palabra escasos. Su velocidad de cálculo es mucho más rápida que la de un ser humano. En realidad, la
programación? ¿En un hácker genio? ¿O en letras computadora solo puede sumar, pero no restar.
enigmáticas que se parecen a un código? En realidad, la La magia de la programación nos permite hacer que una computadora (que solo puede realizar una
programación no es tan complicada como crees. No es cantidad limitada de acciones a una velocidad rápida) tenga una capacidad ilimitada. Sin embargo,
algo que solo las personas inteligentes pueden hacer. ingresar comandos en una computadora debe ser más exacto, lógico y amable que darle órdenes a
pensamientos y ejecute una acción al respecto. Si la computadora puede entender una oración como “ir enunciado, debes usar un salto de línea. a=10 b=20 print a+10 (X)
adelante”, se convierte en un enunciado. En las computadoras, se puede decir que un enunciado es una
oración que puede convertirse en una instrucción. Un programa de computadora es un conjunto de
2) Cómo expresar la estructura de bloque
enunciados.
En el idioma de las computadoras, los enunciados que expresan
En muchos lenguajes de programación (incluido el lenguaje C), el método de agregar un punto y coma (;)
una característica o acción similar se expresan en un conjunto, y
se usa para indicar el final de un enunciado. En estos lenguajes de programación, la computadora no
esto se denomina estructura de bloque. En otras palabras,
considera que la expresión escrita en su totalidad es un enunciado hasta que aparezca el punto y coma.
interpreta una cantidad de enunciados al unirlos en un solo
En otras palabras, no funciona.
bloque. Si expresas enunciados en un bloque, será muy útil para
Ir adelante No se interpreta como un enunciado y la acción no se realiza repetir los enunciados múltiples o administrar un conjunto de
gramática de Python que expresa la unión de elementos que se refieren al mismo sujeto (suite) con * Nota: si escribes un comentario en coreano en RUR-PLE, ocurre un error y el programa no puede guardar.
sangría en la misma posición es parecida a la forma de escribir, leer y comprender de las personas, por lo
que es bueno que otros puedan leer y comprender el código.
¿Qué es la sangría?
La sangría es un espacio en blanco delante del enunciado. El tamaño de la
sangría depende de la cantidad de espacios en blanco.
Ejemplo de Python>
Como Python no usa marcas especiales para designar el final de un bloque, las personas que aprenden eliminaron estos elementos, aprendieron que podían escribir un programa fácil de aprender,
un lenguaje de programación por primera vez no tienen errores de sintaxis, como una “}” faltante. Además, reducir los errores de los desarrolladores y hacerlo más fácil de entender estructuralmente.
los enunciados en bloques expresados con sangrías del mismo tamaño funcionan como método de
En consecuencia, a diferencia del lenguaje de programación existente, “ABC” se diseñó
expresión para que las personas entiendan con mayor facilidad. Esto se debe a que usamos el mismo
para expresar de forma similar a la que el público lee y escribe, y estos elementos se
método de expresión para escribir a fin de mostrar los componentes del sujeto en una lista.
transfirieron a Python.
Contenidos de aprendizaje 02 Principios básicos de RUR-PLE
En la parte superior del programa RUR-PLE, existen botones en el menú para varias
funciones. Esta función verifica si existe un muro frente al Esta función verifica si existe un muro a la
Abre o guarda el robot. Muestra “Verdadero” si no hay un muro y izquierda del robot. Muestra “Verdadero” si no
Controla la
archivo RUR-PLE.
velocidad de Le da un beeper (zumbador) al robot. “Falso” si hay uno. hay un muro a la derecha y “Falso” si hay uno.
El archivo de código RUR- Reinicia el mundo a la
ejecución del El beeper puede variar de 0 a 1000.
PLE se guarda con condición previa a la Puede construir un
programa. La cantidad de beepers se marca
extensión .rur. ejecución del muro que limita el en la parte inferior de la pantalla de la
programa. movimiento de los siguiente manera.
robots en el
mundo. left_is_clear( ) on_beeper( )
Práctica de
Una función es como una instrucción. Como una acción que corresponde al manipulación
de robots
01 Primer paso de la manipulación del robot
nombre de una instrucción se debe realizar cuando se proporciona una
instrucción, podemos hacer que el robot ejecute el nombre de la función al Movamos el robot de la forma que prefieras mediante las funciones incorporadas.
ingresar la función en el área del código de RUR-PLE.
Las funciones como “move( ) and turn_left( )” (“mover y girar a la izquierda”) se move()
denominan funciones incorporadas. Podemos combinar varias funciones incorporadas, move()
o podemos agregar instrucciones a las funciones incorporadas para darle nombre a una turn_left()
nueva función. Se denominan “funciones definidas por el usuario”. Cuando creas y usas move()
una función definida por el usuario, el proceso complejo se puede ejecutar de forma move()
más simple que al usar una sola función incorporada y también es más fácil modificar
turn_off()
contenidos creados previamente.
Práctica de
manipulación
de robots
02 Habilidades para manipular el robot
1 Usar una función incorporada Hagamos que el robot levante un beeper a medida que se mueve hacia la derecha y luego que lo suelte en el
próximo espacio.
Las funciones incorporadas típicas de RUR-PLE son move(), turn_left() y turn_off(), etc.
move()
move () es una función que hace que el robot dé un paso hacia la dirección a la que se dirige. pick_beeper()
move()
turn_off() es una función que apaga el suministro de energía del robot. Esta función también debe estar put_beeper()
al final del programa. move()
pick_beeper()
r turn_left() es una función que sirve para giar el robot 90 grados a la izquierda.
move()
put_beeper()
pick_beeper() es una función que hace que el robot recoja el beeper colocado en el mundo.
turn_off()
put_beeper() es una función que hace que el robot suelte el beeper colocado en el mundo. Sin
embargo, para soltar el beeper, el robot debe tener uno. Para hacer que el robot lleve el beeper
antes de comenzar el programa, puedes fijar la cantidad de beepers que el robot tendrá al hacer
clic en: Notas para resolver problemas
Gira a la
Usar una función
izquierda,
por favor.
incorporada
turn_left()
SÍ
Para hacer que el robot dé una vuelta alrededor del mundo 5x5, necesitarás escribir un código
2 Definir la función definida por el usuario al repetir move() y turn_left() varias veces. Si usas la función definida por el usuario para la
parte en la que tienes que usar las funciones, move() y turn_left(), el código se puede abreviar.
Mmm, entonces, ¿qué Cómo crear funciones Para el nombre de la función, tendrás que usar el abecedario, los
definidas por el usuario
debo hacer? ¡Ah! Si giro
números y guiones bajos (_).
a la izquierda dos veces, def turn_back():
puedo regresar. El nombre de la función no debe comenzar con un número y no
turn_left()
turn_left() puede tener espacios en blanco ni tildes.
No se pueden usar palabras reservadas (def, y while, etc.).
Práctica de
manipulación 03 Cómo hacer que el robot avance Se denomina enunciado condicional a la instrucción que solo se ejecuta
de robots
Subamos la colina mediante la función definida por el usuario. cuando se cumple la condición dada.
Para que el robot suba la colina, es necesario que gire a la derecha y a la izquierda. Para
que el robot gire a la derecha, puedes repetir la función turn_left() 3 veces. Hagamos que el
robot suba la colina al crear una función para que gire a la derecha.
Girar a la izquierda
3 veces
(girar a la derecha)
2
Girar a la
izquierda
El flujo de código 1 cuando el enunciado condicional es falso
2 Enunciado if anidado
Enunciado condicional si
mple Un enunciado if anidado se refiere a la estructura de otro enunciado condicional dentro de un
if on_beeper(): 1
turn_left() enunciado condicional. Para ejecutar <execution instruction 2>, la expresión condicional 1 y la
1
turn_left() ¿Hay un beeper? expresión condicional 2 tienen que ser verdaderas.
turn_left()
expresión condicional if 1:
else: ejecución de instrucción 1 // cuando la expresión condicional 1 es verdadera
2
turn_left()
expresión condicional if 2:
move() 3 instrucción de ejecución 2 // cuando la expresión condicional 1 y la expresión condicional 2 son verdaderas
else:
ejecución de instrucción 3 // cuando la expresión condicional 1 es falsa
Girar a la izquierda 3
veces
(girar a la derecha)
Enunciado if anidado
3 ¡Hacia if front_is_clear():
adelante! Girar a la if on_beeper():
izquierda
pick_beeper()
2
move()
else:
turn_left()
¿No hay un muro adelante?
Práctica
de manipulación 04 ¡Alto!
de robots
Hagamos que el robot se detenga en el lugar donde se encuentra el beeper mientras
se mueve a la derecha.
Si escribes un programa en el que el robot se mueve hacia el lugar donde se ¿Hay un beeper?
Levanta el beeper
encuentra el beeper y se detiene, ocurre de la siguiente manera. Si el beeper está en
la línea 1 (Street:1), funciona sin importar dónde se encuentra. Pero hay solo 1 beeper.
def f():
if on_beeper(): ¡Hacia
turn_off() adelante!
move()
repeat(f,5)
Girar a la
izquierda
Práctica de
manipulación
de robots
05 Aspiradora robótica 3 Cómo nombrar las funciones
Hagamos que el robot recoja todos los beepers del suelo a medida que se mueve hacia
el muro derecho. Varios enunciados if múltiples se refieren a la estructura con muchos casos de enunciados if.
Esta es una estructura en la que si la condición del enunciado if no es verdadera, evalúa el
El programa para que el robot recoja todos los beepers en la línea 1 (Street: 1) y se dirija hacia el control del enunciado elif, y si la condición del enunciado elif tampoco es verdadera, ejecuta
muro se puede escribir de la siguiente manera. Si el beeper está en la línea 1 (Street:1), funciona el enunciado else. En este momento, el enunciado if se puede usar varias veces según la
sin importar donde se encuentra. Pero solo un beeper se coloca en un solo lugar. condición, pero la expresión condicional debe estar escrita.
repeat(f,5)
Enunciado if múltiple
if front_is_clear():
move()
elif left_is_clear():
¡Hacia
turn_left() adelante!
elif right_is_clear():
turn_left()
turn_left() ¿No hay un
muro adelante?
turn_left()
Notas para resolver problemas
else:
turn_left() ¿No hay un muro
a la izquierda?
turn_left() Girar a la
izquierda
Girar a la
Regresar
derecha
¿No hay un muro
a la derecha?
Contenidos de aprendizaje 05 ¿Verdadero o falso?
Práctica de
Cuando muestras relaciones lógicas entre los operadores en el programa, se manipulación
de robots
06 Completar el blanco con el robot
usa un operador lógico. Los operadores lógicos muestran el resultado con Hagamos que el robot coloque el beeper en el lugar sin el beeper a medida que
verdadero (0) o falso (1) cuando hay conjunciones (AND), disyunciones (OR) y se mueve a la derecha.
negaciones (NOT). El programa para colocar el beeper donde no haya un beeper en la posición desde (Avenue:1, Street:1)
a (Avenue:4, Street:1) se puede escribir de la siguiente manera. Pero el robot debe tener una cantidad
suficiente de beepers.
5 5
4 4
Street
Street
3 3
2 2
1 1
1 2 3 4 5 1 2 3 4 5
2 Conjunción (AND)
La conjunción es un operador lógico que muestra verdadero si las dos condiciones son
verdaderas, y si no, muestra falso para todos.
3 Disyunción (OR)
La disyunción es un operador lógico que muestra verdadero si una de las dos condiciones es
verdadera, y muestra falso solo si las dos condiciones son falsas.
La variable, un recipiente para guardar información
Contenidos de aprendizaje 06
La variable es un espacio de memoria en el que se puede guardar un valor. Si usas una En Python, la variable se denomina nombre. En general, las formas
variable, varias acciones se pueden realizar fácilmente, como contar números y calcular una de declarar una variable difieren según el lenguaje de programación, >>>
y Python declara la variable de una forma muy sencilla. En Python, >>> a=3
fórmula.
sin necesidad de declarar el tipo de información de la variable como >>> a 3
Para crear dicha variable, debes declarar el nombre, que es un nombre único que la representa. en otros lenguajes, la declaración de la variable se completa si >>> print(a) 3
En RUR-PLE, la declaración de una variable se completa cuando escribes el nombre escribes “nombre de la variable = información”. Si ves el ejemplo de >>>
(nombre=información). Si usas el nombre de una variable no declarada, la computadora no la derecha, guarda la información (3) en el nombre de la variable (a).
El nombre de la variable (a) automáticamente se declara como tipo
sabe a qué información se refiere el nombre correspondiente y causa un error.
de número entero por el número entero designado, que es 3.
Solo se pueden usar caracteres alfabéticos, coreanos, números y guiones bajos (_) para el nombre
de la variable. Las palabras no deben llevar tilde.
El primer carácter debe ser un guion bajo (_), un carácter coreano o alfabético.
¡Muy bien! Le
Restar 2 de a. Cómo cambiar la restaré 2 a a.
variable El nombre de la variable distingue mayúsculas y minúsculas.
a = 10
a = a-2
No se puede usar una palabra reservada que ya se definió en el programa Python como nombre
de una variable. Las palabras reservadas son palabras que ya se designaron en el programa
e incluyen if, while, y for, etc.
while(a): Como declaramos n como variable global, aumentaremos el valor dentro y fuera de la
move()
función por 1 y luego lo mostraremos.
a = a-1
n=3
Como la variable que
¿Qué quieres declaramos anteriormente es def f():
Código del
decir? A está una variable local, no se puede global n
declarada en la def f():programa usar fuera de la función. n=n+1
función f()
a = 10 print n
f()
while(a): n=n+1
move() print n
a = a-1 turn_off()
2) Variable global
Como variable declarada fuera de la función, se puede usar en cualquier parte del programa.
Si intentas usar n, que se declara fuera de la función, la variable global n se puede usar en la
función f() cuando ingresas global n en el sentido de usar n, que es una variable global.
Las cuatro operaciones matemáticas
Contenidos de aprendizaje 07 Ingresar y mostrar información Contenidos de aprendizaje 08 fundamentales con el programa
Si ingresas información, el resultado se muestra según el programa. Guardar El operador que realiza el cálculo con las cuatro operaciones matemáticas
(designar) un valor en la variable al ingresar una instrucción se denomina fundamentales en el programa se denomina operador aritmético. A diferencia
“ingresar información”, y mostrar las variables guardadas (designadas) en la
pantalla mediante la instrucción print se denomina “mostrar información”. Por lo de otros lenguajes de programación, Python (RUR-PLE) se clasifica en
general, cuando ingresas o muestras información, se usan unidades de entrada operadores que descartan el punto decimal en la división (//) y que no
y salida, como el teclado, el ratón y el monitor. descartan el punto decimal (/).
La práctica para ingresar y mostrar información se puede realizar en el programa Python o en
Ejemplo
Práctica de
manipulación
de robots
08 Operaciones matemáticas para principiantes
Busquemos el cociente y el resto al dividir dos entradas de números enteros.
>>> a=input()
<-- 10
>>> b=input()
<-- 3
<<< print a//b, a%b 3 1
>>>
Contenidos de aprendizaje 09 Varias formas de datos
Práctica
de 09 Operaciones matemáticas para expertos 1 ¿Qué son los tipos de información?
manipulación
de robots
Averigüemos el área del triángulo mediante la entrada de la base y la altura.
Los tipos de información se clasifican en dos tipos. Existen dos tipos de información: los
Crearemos un programa para averiguar el área del triángulo después de ingresar la longitud de la base y números enteros y el string . Pero, ¿por qué se clasifica la información?
la altura de un triángulo.
La computadora puede calcular que 1+1 es 2 rápidamente, pero no sabe qué hacer con
Ejemplo de entrada Ejemplo de salida 1+AMOR. Para distinguir si es posible realizar una operación con cierta información, la
computadora distingue la forma de cada variable con tipos de información.
13 19.5
3 En otros lenguajes de programación como el lenguaje C, tienes qué escribir el tipo de
información delante del nombre de la variable cuando se declara una variable. Sin embargo,
Python decide los tipos de información de la variable según el tipo de información guardada.
Índice
CCaarra
acctteerr
Práctica
de 11 Crucigrama 4 Información del tipo de lista
manipulación
de robots Guarda a todas
Mostremos parte de un string de caracteres. las personas que
asistieron a la Código del programa ¡Guau! Hay muchas variables.
reunión de hoy
como variables.
a = “Dr. Kim”
Crearemos un programa para mostrar parte del string de caracteres después de b = “Dr. Lee”
ingresar el string “secret garden” (jardín secreto). c = “Dr. Choi”
La lista es una forma de información que contiene cierta cantidad de información. Si usas la lista, es
0 1 2 3 4 5 6 7 8 9 10 11 12
posible usar mucha información con facilidad. La lista se puede crear al colocar la información dentro de
corchetes [ ] y al distinguir el valor a colocar dentro con una coma. La información colocada en la lista se
s e c r e t g a r d e n puede mostrar si el número de índice de la información correspondiente se coloca dentro del corchete [ ].
Str[5:9] # se refiere a una serie de letras desde el primer índice hasta (el segundo índice -1). (9-5=4 letras) En la lista, se puede colocar la lista misma y la información individual. Tener otra lista dentro de la lista
Str[3:] # se refiere a una serie de letras desde el tercer índice hasta el final. a veces se denomina “lista bidimensional”. Cuando existe una lista dentro de la lista, la información se
Str[:7] # se refiere a una serie de letras desde el primer índice hasta el 6to (7-1) índice. puede mostrar mediante corchetes [ ].
A continuación presentamos ejemplos de listas de una dimensión ( a=[1,2,3]) y una lista bidimensional (a=[[1,2,3],[4,5,6]]).
Notas para resolver problemas
>>> a=[1,2,3]
>>>
a[0] 1
>>> a=[[1,2,3],[4,5,6]]
>>>
>>>
a[0][0] 1
>>>
a=[0][2] 3
>>>
a[1][1] 5
>>>
Los trabajos repetitivos se pueden
Contenidos de aprendizaje 10 realizar de forma conveniente
Como una estructura con un enunciado de repetición, un enunciado de bucle básico se refiere a la forma
Haremos que el robot se mueva hacia la derecha mientras suelta el beeper.
que se ejecuta repetidamente hasta que se cumple la condición. La estructura de un enunciado de bucle
básico con while es la siguiente.
Crearemos un programa que repita el proceso en el que el robot suelta el beeper en la
Configuración de valor inicial posición en la se encuentra y se mueve cuatro veces.
Expresión condicional while:
i=1
Instrucción
while i<=4:
Operador de incremento y decremento put_beeper() move()
i=i+1
turn_off()
While repite la instrucción continuamente mientras la expresión condicional sea verdadera.
Cuando uses while, necesitarás el “valor inicial”, la “expresión condicional”, la “estructura de repetición”
y el “operador de incremento y decremento”.
Es conveniente si usas el enunciado for para crear estructuras de repetición mediante la lista o la
función range().
Cuando creas estructuras de enunciados de repetición básicas para for, puedes usar la función range() o lista.
i=0
Rango ([valor inicial], valor final, [valor de incremento y decremento])
while i<10: # conditional expression
# instruction *El valor inicial y el valor de incremento y decremento se pueden omitir. (al omitir un valor, el valor inicial es 0,
i=i+1 # increment and decrement operator el valor de incremento y decremento es 1 y se ejecuta hasta (final value-1))
>>> list(range(10))
Si lo escribes como se indica anteriormente, i comienza desde 0 y aumenta en 1 cada vez que se ejecute [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
la orden. Si el valor de i llega a 10 al repetir la orden de esta manera, el enunciado de repetición finalizará. >>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Cuando domines Python, podrás escribir el código de la siguiente manera para expresar operadores de
>>> list(range(0, 30, 5))
incremento y decremento de forma más simple.
[0, 5, 10, 15, 20, 25]
>>> list(range(0, 10, 3))
[0, 3, 6, 9]
while i<10: # Conditional expression
>>> list(range(0, -10, -1))
# instruction
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
i+=1 # increment and decrement operator >>> list(range(0)) []
>>> list(range(1, 0)) []
2 Enunciado de bucle anidado 2. Cómo alinear el valor de una lista almacenada en orden ascendente
Crearemos un programa para alinear los valores de una lista guardada en orden ascendente.
Un enunciado de bucle anidado es una manera de escribir un código al agregar un bucle Resultado
i=2 2*1=2 La función que alinea los valores de la lista en orden ascendente es sort( )
while i<=9: 2*2=4
Tabla de
j=1 2*3=6
2*4=8 list.sort()
multiplicaciones while j<=9:
utilizando bucle 2 * 5 = 10 print list
print i,"*",j,"=",i*j
while 2 * 6 = 12
j=j+1
2 * 7 = 14
i=i+1 2 * 8 = 16 3. Cómo alinear el valor de una lista almacenada en orden descendente.
turn_off() 2 * 9 = 18
Ahora, crearemos un programa para alinear los valores de una lista guardada en orden
3*1=3
descendente.
for i in range(2,10): 3*2=6
Tabla de 3*3=9 Resultado
multiplicaciones for j in range(1,10): de la
utilizando 3 * 4 = 12 [10, 9, 8, 7, 6, 6, 4, 2, 1, 1]
ejecución
bucle for print i,"*",j,"=",i*j 3 * 5. = 15
turn_off()
.
La función que almacena los valores de la lista en orden inverso es reverse( ).
Para alinear los valores de una lista en orden descendente, primero deberás alinear los valores
Práctica de en orden ascendente utilizando sort( ) y luego utilizar la función reverse( ).
manipulación
de robots
13 La lotería
Buscaremos un valor al azar según la condición. list.sort()
print list
list.reverse()
1. Cómo encontrar un número entero al azar print list
Crearemos un programa para guardar los valores del 1 al 10 a la lista de manera aleatoria
utilizando la función aleatoria.
Resultado
de la [7, 10, 6, 2, 6, 1, 4, 1, 8, 9] 4. Mostrar los 3 valores más bajos
ejecución
Crearemos un programa para encontrar y mostrar los tres valores más bajos de entre los valores de la
Para utilizar la función aleatoria (radint( )), deberás utilizar el módulo aleatorio. lista almacenada. Solo
Para agregar un valor a la lista, la lista debe estar declarada como list=[ ] para crear una lista vacía. los valores mostrados se eliminarán de la lista.
Resultado
de la 1 for i in range(3):
La función para agregar un valor a la lista es append( ). ejecución 1 print list.pop()
2 print list
Los operadores que comparan el tamaño de dos valores, como mayor que (>), En RUR-PLE, puedes crear y utilizar distintos robots. La orden para crear un
menor que (<) o igual que (>=), menor o igual que (<=), igual que (==), y distinto robot es UsedRobot( ) y puedes designar propiedades como el nombre del
de (!=) se conocen como operadores de comparación. Al utilizar un operador de robot, la posición, el color y la dirección hacia la que apunta. Las instrucciones
comparación, se compara el valor real o el valor que el nombre indica y muestra para crear un robot y las propiedades de cada uno son las siguientes:
el resultado como verdadero (true) o falso (false).
Menor que
Menor o igual
Mayor que
Práctica de
manipulación 14 Robot inteligente
de robots La coordenada Y donde se
La cantidad de beepers que El color del clon de robot que
ubicará el clon de robot que
tendrá el clon de robot que deseas crear (yellow/blue/light
Haremos que el robot encuentre la suma de las cantidades de beepers. deseas crear (coordenada street)
blue/purple/green)
deseas crear
Crearemos un programa para encontrar la suma de la cantidad de beepers ubicados en dos * Para el clon de robot no se pueden utilizar las funciones del sensor left_is_clear() y right_is_clear().
posiciones.
Al crear un robot, no es necesario guardar todas las propiedades. Observa el siguiente ejemplo
para crear cinco robots nuevos distintos del robot básico.
R1=UsedRobot(2)
R2=UsedRobot(2,3)
i=0 n=1 R3=UsedRobot(3,1,'S',colour='green')
while n<=2: R4=UsedRobot(5,colour='yellow')
move()
while on_beeper(): R5=UsedRobot(avenues=1,streets=2,orient_key='E',beepers=10,colour='blue')
pick_beeper() n=0
i=i+1 while R5.carries_beepers():
n=n+1
R5.put_beeper()
move()
while carries_beepers(): n=n+1
put_beeper() R5.move()
move() print n
turn_off()
turn_off()
Práctica de
Antes de ejecutar el programa Después de ejecutar el programa manipulación 15 Cómo duplicar un robot
de robots
Crearemos un programa en el que cuatro robots reciban un valor al azar entre números
4
enteros del 0 al 10 y se muevan según ese valor.
Street
3
import random 5
RB=UsedRobot(1,2,colour='blue')
4
2 RG=UsedRobot(1,3,colour='green')
Street
RY=UsedRobot(1,4,colour='yellow') 3
1 d=random.randrange(10)
2
b=random.randrange(10)
1 2 3 4 5 g=random.randrange(10) 1
Avenue y=random.randrange(10) 1 2 3 4 5 6 7 8 9 10
for i in range(d): Avenue
move()
for j in range(b):
Se crea en la posición (Avenue:2, RB.move() 5
Street:1) apuntando hacia el valor for k in range(g):
predeterminado, el este (E).
RG.move() 4
for l in range(y):
Street
3
Se crea en la posición (Avenue:2,
Street:3) apuntando hacia el valor
RY.move()
predeterminado, el este (E). turn_off() 2
RB.turn_off() 1
(S). El color del robot se fija a verde (green). * random.randrange(número) es una función para crear números enteros aleatorios entre 0 y (el número seleccionado -1)
Misión Nivel
1 Entregar el periódico
2 Saltar obstáculos
3 Visitar la tienda
4 Reparar el centro comercial
5 Verificar el semáforo
6 Ir al concierto en la ribera
7 Entrada en calor
8 Jugar al béisbol
9 Limpiar el parque de diversiones
10Construir un helipuerto
1-3
1-1 1-2
Me pregunto si estarán
realizando bien las entregas
¡AY! .
En realidad, no tenemos una función para girar a la derecha, únicamente tene ¡Ahora puedo ir a cualquier parte! Crearemos un programa para entregar periódicos (
mos una función
Utilizando paraturn_left(),
la función girar a la izquierda.
¿podrías hacernos girar a la derecha? beepers) a abuelo en la colina y regresar utilizando la función turn_right() que creamos anteriormente.
la casa del
LISTO COMPLETADO
Notas para resolver problemas
5 5
4 4
3 3
2 2
Sería conveniente crear la función para girar a la derecha como una función definida por el
usuario llamada turn_right().
Notas para resolver problemas
¡Oh, no! ¡Está bloquead
¡Los alcanzar
3--
o!
é!
악
! 1
2- ¡Bien! ¡Un nuevo récord
!
1 Debería regresa
r por hoy.
4 4 4 4
3 3 3 3
2 2
2 2
1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 1 2 3 4 5
3-2. Iré de compras a la tienda 4-1. Necesito marcar los muros colapsados
Necesito ir a comprar a la tienda. ¿Qué debería hacer si la tienda está cerrada? ¿Qué es esto? Algunos muros han colapsado alrededor del centro comercial y son muy peli
Por favor,crear un programa para regresar cuando la puerta de la tienda (muro) e
¿Podrías grosos. Si los muros colapsados con un beeper, el personal de mantenimiento los arreglará.
marcamos
stépuerta
la cerrada y para
esté saltar
abierta? cuando
Haz que la condición de la puerta cambie aleatoriamente (0 Crea un programa para recoger el beeper si el beeper está en el suelo mientras doy vueltas
o 1).
(utiliza randrange() de una biblioteca aleatoria) alrededor del centro comercial y para marcar el muro con un orificio al dejar caer el beeper.
LISTO ABIERTO Cuando la condición CERRADO Cuando la condición para LISTO COMPLETADO
para la puerta sea 1 la puerta sea 0. 10
9 9
5 5 5
8 8
7 7
4 4 4
6 6
5 5
3 3 3
4 4
3 3
2 2 2
2 2
1
1 2 3 4 5 6 7 8 9 1 1 2 3 4 5 6 7 8 9 1
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 0 0
1
¿verdad?
6-2
6-2. Limpiaré el lugar del concierto 7-1. Quiero recoger los objetos que están en el suelo
Fue un concierto muy divertido, ¿no? Pero las personas dejaron demasiada basura. ¡Había dinero en el suelo! Primero lo levantaremos. Decidiré qué hacer después de levantarlo.
Necesito recoger toda la basura (beepers) y luego reunirla en un solo lugar. Crea un programa para que el robot recoja el dinero (beeper) y continúe moviéndose
hasta el final.
¿Podrías crear un programa con estas instrucciones?
LISTO COMENZAR COMPLETADO
LISTO COMPLETADO
5 5 5
5 5
4 4 4
4 4
Street
Street
3 3 3
3 3
2 2 2
2 2
1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
Avenue Avenue
8-1
7-2 ¡GUAU!
¡GUA Debo correr
U!
aasegunda
segunda base
base
7-2. ¿Qué tal si intento una carrera corta? 8-1. Batearé un jonrón
Creo que necesito entrar en calor antes de jugar al béisbol. Si fijas el número del beeper ¡Viva! Llegó el momento que tanto esperé, ¡hora de jugar al béisbol! Batearé un jonrón.
a (Avenue:1, Street:1), correré hasta el muro. Sabes que ahora debes Crea un programa para ir a la primera, segunda y tercera base y regresar a la base
crear un programa con todo esto, ¿verdad? del bateador por adelantado, ya que estoy seguro de que batearé un jonrón.
Street
Street
Street
4 4
3 3 3
2 2 2 3 3
2 2
1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7
Avenue Avenue Avenue
8-2. Puedo batear la pelota 9-1. Limpiemos la basura del parque de diversiones
¡Ok! Comencemos con el juego. Crea un programa para hacerme avanzar según El parque de diversiones es muy divertido. Pero también hay mucha basura.
el bateo Hay montones de basura acumulados en un lugar. Creo que deberíamos
Si el tipo de bateo está fijado con un beeper en (Avenue:2, Street: 1). Luego de
limpiar un poco. Crea un programa para recoger toda la basura (beepers)
avanzar, necesito mirar hacia el frente para el siguiente bateo, ¿no? y llevar la basura al basurero (Avenue:1, Street:2).
5 5 5 5
4 4
Street
4 4 4
Street
Street
Street
3 3
3 3 3
2 2
2 2
1 2 3 4 5 6 7 8 9 1 1 2 3 4 5 6 7 8 9 10
Avenue 0 Avenue
1 2 3 4 5 1 2 3 4 5
Avenue Avenue
¿Qué debería hacer para recoger una cantidad de beepers? (usar bucle while)
El tipo de bateo se configura según la cantidad de beepers colocados frente al robot.
¿Cómo encontraré la basura?
· 1 beeper: Bateo
· 2 beepers: bateo y carrera a segunda base ¿Qué haré para encontrar la basura hasta toparme contra un muro? (usar bucle while)
· 3 beepers: bateo y carrera a tercera base
· 4 beepers: Jonrón Notas para resolver problemas
Notas para resolver problemas
Limpiar todo el ¡Qué hermosa vista!
parque de diversiones ¡Qué hermosa vist
Realmente es a!
es demasiado trabajo.
muy grande.
10-1
Lo es. 9-2
Por favor, yo quiero ir también
9-2. Limpiaré todo el parque de diversiones 10-1. Necesito dibujar un cuadrado grande
Ya terminé de limpiar esta área. Ya que estoy limpiando, ¿qué tal si limpio Oh. No podemos transportar tanta basura sin utilizar el helicóptero. Crea un programa
todo el parque de diversiones? Se puede hacer rápido si utilizo el enunciado para dibujar un helipuerto cerca de aquí. Primero deberás dibujar un cuadrado,
de repetición. Puedes crear un programa con todo esto, ¿verdad? No olvides el largo de cada lado es la cantidad de beepers colocados en (Avenue:1, Street:2),
que el basurero está en (Avenue:1, Street:2). a partir de (Avenue:2, Street:2).
LISTO COMPLETADO
LISTO COMPLETADO
5 5
7 7
4 4
6 6
Street
Street
3 3
5 5
Street
Street
2 2
4 4
3 3
1 2 3 4 5 6 7 8 9 1 1 2 3 4 5 6 7 8 9 1 2 2
Avenue 0 Avenue 0
¿Qué debería hacer para recoger una cantidad de beepers? (usar bucle while) 1 2 3 4 5 6 7 1 2 3 4 5 6 7
Avenue Avenue
¿Cómo encontraré la basura?
¿Qué haré para encontrar la basura hasta toparme contra un muro? (usar bucle while) El beeper colocado en (Avenue:2, Street:1) se fija de manera aleatoria por
el usuario (5 o 6).
Notas para resolver problemas
Notas para resolver problemas
80 81
PASO 2
Solicitud de despacho de robots
Misión Nivel
1 Diseñar una pirámide
2 Limpiar el lugar de construcción de la pirámide
3 Dibujar un espiral
4 Cultivar flores en un oasis
5 Entregar pizzas a los apartamentos del hormiguero
6 Repeler a la araña camello, la guardiana de la cueva
7 Repeler al escorpión gigante, el guardián de la salida
8 Salvar a la princesa atrapada en el laberinto
9 Cuidar el jardín de flores de la princesa
10 Calcular el tamaño de la habitación de la princesa
11 Limpiar la torre del cielo
12 Cuidar el jardín de flores del cielo
1. Diseñar una pirámide Nivel
¡Los robots
son Solicitud
geniales!
· Dibuja un triángulo rectángulo isósceles con una medida determinada para la base y la altura.
· El punto de inicio del triángulo es (Avenue:2, Street:2), dibújalo para que el tamaño no sea
mayor que el del mundo.
¡Uf! ¿Cuándo es
Soy la esfinge. Dibuja el
la fecha límite?
triángulo necesario para · Provee suficientes beepers para el robot.
construir una pirámide.
¡No sean Si no lo haces, ¡te comeré!
LISTO COMPLETADO
holgazanes y
apresúrense!
7 7
6 6
5 5
¿Cuál es la mejor manera
1-1
Street
Street
de deshacernos de la 4 4
basura en el sitio de
Empieza a verse construcción? 3 3
como un triángulo.
2 2
1 2 3 4 5 6 7 1 2 3 4 5 6 7
Avenue Avenue
Solicitud 1 Solicitud 2
Solicitud
LISTO COMPLETADO
11 11
10 10
9 9
8 8
7 7
6 6
5 5
4 4
3 3
2 2
1 2 3 4 5 6 7 8 9 10 1 1 2 3 4 5 6 7 8 9 10 1
Recibí una solicitud para un festival de Halloween. Quieren que dibuje un espiral en
el centro del lugar del festival. Lee la solicitud atentamente y crea un programa.
Solicitud
· Dibuja un espiral que comience en el centro del mundo y gire en sentido antihorario.
· Al final del espiral, marca la cantidad de beepers que utilizaste.
¿Por qué la audiencia · Provee suficientes beepers para el robot.
está llena de zombis?
LISTO COMPLETADO
9 9
¡Oh! ¡Escucho
la música! 8 8
7 7
6 6
Si sigo el espiral, llegaré 5 5
al lugar del festival.
4 4
3 3
3-1 2 2
¡GUAU!
¡Uf! ¿Cuánto más
van a seguirme? 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9
Solicitud 3
Dibujar un espiral
4. Cultivar flores en un oasis Nivel
Esta vez he recibido una solicitud poco común. El cliente solicitó limpiar el lecho de
las flores junto al oasis. Lee la solicitud atentamente y crea un programa.
Quiero que
quede hermoso
como este. Solicitud
5 5
¿Está seguro de
Oh. ¿Qué es que pidió pizza? 4 4
este agujero?
3 3
2 2
5-1
¡Voy en
camino!
¿Alguien
pidió pizza?
Solicitud 4 Solicitud 5
Solicitud
· El número del apartamento donde debo entregar la pizza está designado con un
beeper en la posición (Avenue:2, Street:1)
· La pizza (beeper) para entregar se encuentra en la posición (Avenue:3, Street:1). (11
tipos de pizza)
· Haz que el robot verifique el número del apartamento y entregue la cantidad exacta de
pizzas (beepers) a la ubicación exacta.
LISTO COMPLETADO
5 5
4 4
3 3
2 2
1 2 3 4 5 6 7 8 9 1 1 2 3 4 5 6 7 8 9 1
Avenue 0 Avenue 0
LISTO COMPLETADO
¡Oh, no!
Estoy 5 5
atrapado
4 4
Street
Street
3 3
¡Uf! ¿Es un
escorpión esta vez? 8-1 ¿Dónde estoy?
¡Sálvenme, por favor! 2 2
7-1 1 2 3 4 5 1 2 3 4 5
Avenue Avenue
Puedes contar Resiste un
conmigo. minuto, Princesa. ¿Cuáles son los sensores para detectar la presencia de un beeper?
¿Cómo puedes implementar el movimiento repetitivo del robot para recoger todos los beepers?
¿Cómo puedes distinguir la cantidad de beepers que el robot recoge entre las decenas y las
unidades?
¡Esta vez el problema es más difícil!
¡Ja, ja! ¿Podrán responder Para utilizar la cantidad de beepers recolectados en una función diferente,
correctamente?
¿qué variable deberías declarar?
¡Viva! ¡Logré pasar!
26 repeat(pick,2)
¡De la sartén al fuego! A la salida de la cueva, un escorpión gigante bloquea el paso 27 repeat(turn_left,2)
con un problema de suma más difícil. Escribamos un programa para ahuyentarlo. 28 repeat(move,2)
29 result_put()
30
Solicitud 31 repeat(move,3)
· Ahuyenta al escorpión gigante al resolver el problema de suma con dos números de dos dígitos. 32 turn_left()
33 compute()
· Al sumar un número de dos dígitos (por ej., 29) que aparece en (Avenue:3, Street:3). y (Avenue:4, Street:3). 34 repeat(turn_left,3)
y otro número de dos dígitos (por ej., 96) que aparece en (Avenue:3, Street:2) y (Avenue:4, Street:2). 35 sum += carry
muestra el resultado con un beeper. 36 compute
37 move()
· Coloca el beeper para mostrar el lugar de las centenas en (Avenue:2, Street:1), las decenas
38 turn_off()
en (Avenue:3, Street:1) y las unidades en (Avenue:4, Street:1) para que los números
sean visibles.
1 Si el robot encuentra el beeper, ¿qué instrucción debe seguir?
LISTO COMPLETADO →
5 5 2 ¿Cómo debería utilizarse la variable a, que almacenó la cantidad de beepers que el robot recogió?
→
4 4
3 ¿Cuál es la función de la variable carry (acarreo)?
Street
Street
3 3
→
2 2
4 ¿Cuál es la instrucción que se debe repetir utilizando el valor de la variable carry?
→
1 2 3 4 5 1 2 3 4 5
Avenue Avenue Notas para resolver problemas
Escribiremos las instrucciones en el recuadro del programa sugerido
1 a=0
2 sum = 0
3 carry = 0
4
5 def pick():
6 move()
7 global a, sum
8 while on_beeper():9
9 pick_beeper() 1
10 a += 1
11 sum += a 2
12 repeat(put_beeper,a)
13 a=0
14
15 def result_put():
16 global sum, carry
17 repeat(pick_beeper,carry)
18 carry = sum/10 3
19 repeat(put_beeper,sum-(carry*10))
20 sum = 0
21 repeat(turn_left,3)
El programa de ejemplo anterior es un método para salir del laberinto con
8. Salvar a la princesa atrapada en el laberinto Nivel
la regla de la mano derecha. Escribiremos un programa utilizando la regla
8-1. Necesito encontrar a la princesa de la mano derecha.
1
2
Es una solicitud de emergencia. La princesa había salido a pasear cuando quedó
3
atrapada en el laberinto. Crea un programa para llegar a la princesa explorando el
laberinto, ¡rápido! 4
Solicitud 5
Solicitud 6
7
· Haz que el robot explore el laberinto automáticamente y llegue a la princesa (beeper).
8
LISTO COMPLETADO Crea un programa para salir de un laberinto por ti mismo. (El tamaño del mundo deberá ser mayor
que 10x10).
7 7
Notas para resolver problemas
6 6
5 5
4 4
3 3
2 2
1 2 3 4 5 6 7 1 2 3 4 5 6 7
1
while not on_beeper():
2
2 if right_is_clear():
3
3 repeat(turn_left,3)
4
4 move()
5
5 elif front_is_clear():
6
6 move()
7
7 else :
8
8 repeat(turn_left,2)
9
9 turn_off()
10
10
11
1
12
12
13
13
14
14
15
15
9. Cuidar el jardín de flores de la princesa Nivel
Solicitud
¡Qué bien
huelen las flores! · Planta tulipanes en los lechos vacíos.
· Retira las flores secas y planta rosas en su · 1 beeper: flor seca
Hay que retirar las lugar. · 2 beepers: flor marchita
9-1 flores secas.
· Riega las flores marchitas para que florezcan. · 3 beepers: flores nuevas
· Descarta las flores secas que arrancaste en un · 4 beepers: tulipán
¡Hay que regar basurero designado (Avenue:11, Street:7). · 5 beepers: rosa
las flores marchitas! Cuiden muy bien
de mi jardín de flores · Provee suficientes beepers para el robot.
LISTO COMPLETADO
8 8
7 7
6 6
Street
Street
5 5
Quiero averiguar 4 4
La habitación de el tamaño de esta 3 3
la princesa está aquí. habitación.
2 2
En esta misión debemos resolver problemas según una variedad de condiciones. ¿Cuáles son las
¡Mi corazón
palpita! instrucciones necesarias? ¿Cómo podemos conocer la cantidad de beepers que hay en el suelo?
No hay
problema. ¿Cómo debería moverse el robot?
¿Cómo deberías declarar las variables?
Solicitud 9 Solicitud 1
0
Cuidar el jardín de flores de la princesa Calcular el tamaño de la habitación
de la princesa
10. Calcular el tamaño de la habitación de la Nivel 22
23 elif front_is_clear(): Pantalla
princesa 10-1. Necesito contar la cantidad de muros 24 move()
25 1 i=
26 else: 2 count =
27 turn_left() 3 i=
La princesa ha enviado una nueva solicitud. Esta vez, es una solicitud para medir el 28 count = 4 4 count =
perímetro de la habitación. Es un nuevo tipo de solicitud, pero tú puedes hacerlo, ¿verdad? 29 5 i=
30 while not on_beeper(): 6 count =
31 count += travel_wall() 7 i=
· Haz que el robot comience con un beeper para marcar la posición de inicio. 35 elif not right_is_clear(): 11 i=
36 turn_around() 12 count =
· Es una solicitud para contar la cantidad de muros, no la cantidad de beepers. Necesitas
37 count += 2 13 i=
comprender la función facing_north()※. 38 else: 14 count =
39 turn_right() 15 i=
LISTO COMPLETADO 40 count += 1 16 count =
41 17 i=
7 7 print "count = ", count 2
18 count =
42
6 6
43 19 perimeter wall count =
44 pick_beeper()
5 5 45
46 while not facing_north():
4 4 turn_left()
47
3 3 48 count += 1
2 2
49
50 turn_right()
51 print "perimeter wall count = ", count 3
1 2 3 4 5 6 7 1 2 3 4 5 6 7 turn_off()
※ facing_north(): es una función para verificar si el robot está apuntando hacia el norte. Es verdadera cuando el
robot apunta hacia el norte y falsa cuando el robot no apunta hacia el norte.
Notas para resolver problemas
Observa la respuesta de ejemplo y escribe el valor resultante para ①, ②, ③ que aparecerá en
pantalla
1 def turn_around():
2 repeat(turn_left,2)
3
4 def turn_right():
5 repeat(turn_left,3)
6
7
8 def travel_wall(): i = 0
9 while front_is_clear() and not left_is_clear():
10 move()
11 i += 1
12
13 print "i =", i 1
14 return i
15
16 put_beeper()
17 count = 1
18
19
if left_is_clear():
20
turn_left() move()
21
11. Limpiar la torre del cielo Nivel
Solicitud
Las flores están · Limpia todas las plumas (beepers) del suelo de la Torre del cielo.
creciendo bien porque
salió el sol. · Haz que cada robot limpie la mitad de la torre utilizando la función UsedRobot() para una
12-1 limpieza más rápida,
LISTO COMPLETADO
6 6
5 5
Street
4 4
Street
Supongo que los ángeles
también aman las flores.
3 3
2 2
Colocaré las flores
secas en un solo lugar
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
¡Guau! ¡Los robots Avenue Avenue
tienen la habilidad de
duplicarse!
Cómo utilizar la función UsedRobot()
Solicitud 9 Solicitud 10
12-1. Debo cuidar el jardín de flores del cielo con el clon de robot
Supongo que los ángeles también cultivan flores. He recibido una solicitud
para cuidar el jardín de flores del cielo. La jardinería es complicada.
Lee la solicitud atentamente y crea un programa.
Solicitud
8 8
7 7
6 6
5 5
Street
Street
4 4
3 3
2 2
1 2 3 4 5 6 7 8 9 0 1 2 1 2 3 4 5 6 7 8 9 0 1 2
Avenue Avenue
PASO 3
PLANTILLA
DE PROYECTO
SOLICITUD
5 5
4 4
3 3
2 2
1 2 3 4 5 1 2 3 4 5
SOLICITUD
5 5
4 4
3 3
2 2
1 2 3 4 5 1 2 3 4 5
Crearemos un problema para un mundo grande de más de 5x5 3-3. Código de respuesta
SOLICITUD
SOLICITUD
Guía de tareas
Líder del equipo
Para cada equipo, creen 3 situaciones de la vida real que puedan resolverse utilizando
robots y escriban una sinopsis que pueda conectarlas.
Construyan un mundo que se adapte a la sinopsis y coordinen las misiones detalladas.
Nombre del miembro Rol
Deberán preparar una ficha con los contenidos que hayan producido.
01 Al asignar roles a los miembros, cada equipo deberá asegurarse de que ningún miembro realice
demasiado trabajo o quede excluido.
02 Esta tarea debe realizarse con problemas que puedan resolverse con robots y situaciones que
puedan ocurrir en la vida real.
03 Cada equipo deberá guardar los archivos producidos durante la clase del proyecto en la biblioteca del
laboratorio de aprendizaje y prepararse para crear una carpeta con copias en limpio.
04 Cada equipo deberá finalizar un paso antes de avanzar al siguiente. Incluso si un miembro del equipo
no ha terminado la tarea asignada, todo el equipo deberá resolver el problema en conjunto y luego
avanzar al siguiente paso.
05 Después de completar la ficha, cada equipo deberá preparar un informe sobre el proceso de avance del proyecto en forma de
presentación y presentar los contenidos. El tiempo dado para la presentación es de 5 minutos para cada equipo
Miembro Miembro
Problema 1
Problema 2
Problema 3
9. Ficha 10. Formulario de evaluación del equipo
Miembro Miembro
Nombre del
equipo
a evaluar
Guía de tareas
Puntos fuertes
Opinión
11. Formulario de autoevaluación
Miembro
Clasificación Contenidos
Mi nombre
Mi rol
Puntos fuertes