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
fácil.
Aun así, incluso con la ayuda de este libro visual, cuando empiecen a aprender con RUR-PLE,
esperen sorprenderse con el comportamiento del robot: la forma en que hace exactamente lo que le
indicas y no lo que quisiste decirle. Un estudiante que usa RUR-PLE le dijo a su maestro: “¡Es tan
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á
Andre Roberge es un físico cuyo pasatiempo es la programación. Después de
obtener su doctorado, desarrolló varios programas de computadora (incluido RUR-
PLE) mientras trabajaba como profesor en tres universidades, como la Universite
Sainte-Anne en Canadá, de la que ha sido presidente durante los últimos 10 años.
En 2002, recibió el premio Queen Elizabeth Jubilee, y actualmente enseña Física e
Hidráulica en la Universite Sainte-Anne. Al mismo tiempo, es padre de dos niños
que también estudian Hidráulica.
Cómo usar el material
La “Bienvenido al mundo Rurple” está formado por 12 contenidos de aprendizaje e incluye una tarea
composición práctica llamada “Práctica de manipulación de robots” que te ayudará a entender. Como tareas que el
estudiante puede vincular con los contenidos de aprendizaje, se incluye la “Capacitación para controlar
de este libro
robots” (con un nivel de dificultad de 1 a 4) y la “Solicitud de despacho de robots” (con un nivel de
dificultad de 3 a 5). La composición del libro es la siguiente:
Nota
La guía del método de instalación de
RUR-PLE y Python
Contenido de aprendizaje
Aprender el concepto de la programación
mediante RUR-PLE
Información adicional y
explicación de conceptos
Práctica de manipulación de
robots Práctica simple asociada
con el “Contenido de aprendizaje”
Concepto de programa
+ Práctica de
manipulación de robots
NIVEL 3a5 Solicitud de despacho
de robots
El manual cuenta con un total de 20 lecciones; para las lecciones 1 a 12, los contenidos de aprendizaje
presentados en el libro y en las tareas de la misión (Capacitación para controlar robots y Solicitud de despacho de
robots) se realizan en conjunto en la clase, y para las lecciones 13 a 16, la clase se realizará en un entorno en el
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
lecciones anteriores. (Consulte el Método de enseñanza y aprendizaje para maestros de cada lección).
Presentación de personajes/Prólogo
1 Comienzo de la programación
Contenidos
de 2 Aspectos básicos de RUR-PLE
3 Visitar la tienda
robots
4 Reparar el centro comercial
5 Verificar el semáforo
6 Ir a un concierto en la ribera
7 Entrada en calor
8 Jugar al béisbol
9 Limpiar el parque de diversiones
10 Construir un helipuerto
Proyecto Plantilla
Entender RUR-PLE
Mapa de la misión d
Podrás instalar el programa RUR-PLE y
usar las funciones básicas.
Podrás realizar una manipulación sencilla
mediante las funciones básicas de RUR-PLE. 02 Función definida por el usuario FIN
Podrás definir y ejecutar las
Contenidos de
LISTO funciones definidas por el usuario.
aprendizaje | 1, 2, 3
Podrás resolver los problemas mediante las
funciones.
Contenidos de aprendizaje | 3
Función del sensor y operador lógico
Capacitación para controlar robots | 1, 2
Solicitud de despacho de robots | 1, 2
Podrás comprender la función del sensor de LISTO
RUR-PLE y ejecutarlo según las condiciones.
Comprenderás los conceptos de enunciados
condicionales y operadores lógicos.
Variable
Podrás resolver problemas mediante
enunciados condicionales y operadores
Podrás comprender el concepto de
lógicos.
variable y escribir un programa que
distinga variables locales y globales.
Contenidos de aprendizaje | 4, 5
Podrás resolver los problemas
Capacitación para controlar robots | 3, 4
LISTO mediante las variables.
Contenidos de aprendizaje | 5
Capacitación para controlar robots | 5, 6 LISTO
Función del sensor y operador lógico
Contenidos de aprendizaje | 11
Contenidos de aprendizaje | Solicitud
Capacitación para controlar robots | 7, 8 LISTO
de despacho de robots 7, 8 | 3 LISTO
Mapa de la misión del mundo Uso del enunciado de control II Contenidos de aprendizaje | 11
Solicitud de despacho de robots | 11,
RUR-PLE Podrás resolver los problemas 12
LISTO
mediante el enunciado de control.
Debes colocar el adhesivo de misión completa
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
I
Cuando resuelvas situaciones
problemáticas de otros amigos, podrás
Implementación de problemas I
compararlas con tu problema.
Proyecto | 2
LISTO
Implementación de problemas II
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
robots sin experiencia para que sean buenos y mantengan la paz del Mundo Rurple al completar varias misiones
con robots bien entrenados.
Por esto, tienes que elegir entre Red-bot, Blue-bot y Green-bot, y aprender la programación básica, como
“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
a programar un robot.
Cuando termines la capacitación, comenzarás el nivel “Solicitud de despacho de robots”. La misión de
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
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.
1-3
Puedo salir a jugar
después de limpiar
este lugar, ¿verdad?
Entreguemos este
periódico a la casa
de mi abuelo.
5-1 9-1
¿Alguien pidió
una pizza?
PERSONAJES
Compañeros de aventura
Red-bot
El robot rojo es saludable y fuerte. Suele cometer errores, ya que actúa
sin pensar, pero a la hora de enfrentarse a una crisis es el mejor.
Green-bot
El robot verde es muy entrometido. Siempre tiene mucha curiosidad y
desea conocer más sobre Python en particular. A veces, hace muchas
preguntas y sus amigos se agotan.
Blue-bot
Old-bot
Robot viejo y sabio que es respetado por todos los robots. Lo
consideran un robot legendario porque tiene mucha experiencia
ayudando a las personas mediante el Servicio de despacho de robots.
Princesa
Una princesa hermosa y elegante del Mundo Rurple. A veces, se mete
en problemas porque se escapa en secreto. El Servicio de despacho
de robots la ha salvado muchas veces.
Soy “Old-bot” y me he encargado del
Hola. Bienvenido
Servicio de despacho de robots para
al Mundo Rurple.
ayudar a las personas
con robots en el Mundo Rurple.
Por lo tanto, voy a jubilarme del Sin embargo, como los robots no tienen
Me encargo del servicio de despacho y se lo experiencia aún, necesitamos a alguien
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.
Primero, te
El “RUR” de “RUR-PLE” significa
contaré
un poco sobre Rossum's Universal Robots, una
Es por eso que te elijo obra de Karel Capek, a quien se
RUR-PLE para que
como mi sucesor. puedas capacitar le ocurrió el concepto de
a los robots. “robot” por primera vez.
¡Hola!
¡Voilá!
¡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
Es posible ejecutar RUR-PLE sin instalar Python. La programación básica que se puede
realizar en Python también se puede realizar en RUR-PLE, por lo que no es necesario que
instales Python.
Iniciar Python
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.
De esta forma, podrás ejecutar el programa sin la inconveniencia de ingresarlo
cada vez que lo necesites porque el programa estará guardado.
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.
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
escasos. Su velocidad de cálculo es mucho más rápida que la de un ser humano. En realidad, la
cantidad limitada de acciones a una velocidad rápida) tenga una capacidad ilimitada. Sin embargo,
ingresar comandos en una computadora debe ser más exacto, lógico y amable que darle órdenes a
Sin embargo, cuando programas para que la computadora entienda, podrás experimentar el proceso de
pensamiento lógico y sistemático que experimentaron los filósofos griegos o el rey de Inglaterra. Dicha
experiencia mejorará tu capacidad de pensar y resolver problemas poco a poco. En general, lo atractivo
de la programación es la diversión.
Entonces, ¿aprendemos la magia que les da una capacidad ilimitada a las computadoras?
* Un grupo de instrucciones que puede ejecutar una computadora se denomina programa; escribir un método para
resolver problemas con regularidad se denomina algoritmo; y el proceso de escribir un algoritmo en un programa
mediante un lenguaje de programación se denomina programar.
2 Cómo iniciar Python
Python expresa elementos complicados de forma más sencilla para las personas que aprenden un
lenguaje de programación por primera vez. Las características principales son “un método para expresar
el final de un enunciado” y una forma de “expresar la estructura de un bloque”.
Para las personas que aprenden programación por primera vez, el método de usar un punto y coma
podría causar un error de sintaxis.
En “Python”, para escribir un programa de forma más sencilla, el final del enunciado se expresa
con un salto de línea.
¡Atención!
Si expresas las 3 instrucciones previas en una línea con un espaciado como el que se
muestra a continuación, ocurrirá un error de sintaxis en Python. Cuando se termina un
enunciado, debes usar un salto de línea. a=10 b=20 print a+10 (X)
while(1) ← Nombre del bloque (significado: repetir por siempre los enunciados del bloque)
scanf("%d",&a);
- enunciados unidos como bloque
printf("%d",a);
Este método no es un método que usan las personas al escribir, por lo que podría ser otro error de sintaxis. Por
lo tanto, en Python, las llaves no se usan como método para expresar una estructura de bloques. En cambio,
se usan sangrías mediante los dos puntos(:) y la tecla Tab. Esto se debe a que los dos puntos se suelen usar
para empezar una explicación.
Lista de tareas para hoy:
Hacer la tarea
Organizar un plan para el fin de
semana con tus amigos
Escribir en un diario.
Como en el ejemplo, las oraciones con sangría en la misma posición son fáciles de detectar porque están
en una lista y el título “Lista de tareas para hoy” está antes de los dos puntos. Sin embargo, la última
oración sin sangría se reconoce como elemento separado del título, “Lista de tareas para hoy”. La
gramática de Python que expresa la unión de elementos que se refieren al mismo sujeto (suite) con
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>
En Python, el bloque también se denomina “suite”. En el caso del ejemplo anterior, la suite de “if(X<0)” es
“print(“X era negativo”) y X=-X. La sangría ha cambiado para el último “print(“X era positivo)”, por lo que ya
no es la suite de “if(X<0)”.
Como Python no usa marcas especiales para designar el final de un bloque, las personas que aprenden
un lenguaje de programación por primera vez no tienen errores de sintaxis, como una “}” faltante. Además,
los enunciados en bloques expresados con sangrías del mismo tamaño funcionan como método de
expresión para que las personas entiendan con mayor facilidad. Esto se debe a que usamos el mismo
método de expresión para escribir a fin de mostrar los componentes del sujeto en una lista.
Además, en Python, no existen procesos para declarar variables, lo cual también causa errores de sintaxis
que los principiantes suelen cometer. Las reglas gramaticales de Python son fáciles de aprender y están
diseñadas para comprender las estructuras fácilmente.
* Nota: si escribes un comentario en coreano en RUR-PLE, ocurre un error y el programa no puede guardar.
Cuando diseñaron “ABC”, Robert Dewar, Peter King, Jack Swartz y Lambert desarrollaron
su propia gramática y tuvieron un debate al comparar cuál era mejor. Como no podían
llegar a un acuerdo, Robert Dewar le preguntó a su esposa qué opinaba. En este proceso,
descubrieron elementos que las personas consideran elementos gramaticales complicados
y confusos cuando se les presenta la programación por computadora. Y cuando se
eliminaron estos elementos, aprendieron que podían escribir un programa fácil de aprender,
reducir los errores de los desarrolladores y hacerlo más fácil de entender estructuralmente.
1 Composición de la pantalla
RUR-PLE
Existen cuatro pestañas generales en RUR-PLE.
Desde estas pestañas, podrás aprender a programar
el robot en la pestaña
.
En la parte superior del programa RUR-PLE, existen botones en el menú para varias
funciones.
Abre o guarda el
archivo RUR-PLE. Controla la
velocidad de Le da un beeper (zumbador) al robot.
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.
front_is_clear( ) right_is_clear( )
Esta función verifica si existe un muro frente al Esta función verifica si existe un muro a la
robot. Muestra “Verdadero” si no hay un muro y izquierda del robot. Muestra “Verdadero” si no
“Falso” si hay uno. hay un muro a la derecha y “Falso” si hay uno.
left_is_clear( ) on_beeper( )
Esta función verifica si existe un muro a la Esta función verifica si existe un beeper donde se
izquierda del robot. Muestra “Verdadero” si no encuentra el robot. Muestra “Verdadero” si hay un
hay un muro a la izquierda y “Falso” si hay uno. beeper donde se encuentra el robot y “Falso” si
no hay un beeper.
carries_beepers()
Esta función verifica si existe el robot
tiene un beeper. Muestra “Verdadero”
si el robot tiene un beeper y “Falso” si
el robot muestra “Falso”.
El mundo es el lugar que explora el robot que controlamos. El robot se puede mover libremente
en el mundo según el programa que ingresas, pero no puede ir más allá de los muros.
Si generas un mundo, el tamaño predeterminado se fija
en 10x10. Mediante el menú, puedes expandir desde el
mínimo de 5x5 al máximo de 30x30.
El beeper desaparece si
presionas el 0 después de
presionar el botón derecho del
ratón en el beeper colocado en el
mundo.
0
1
2
También puedes hacer que el robot recoja el beeper colocado en el mundo al escribir un
programa, o puedes hacer que el robot suelte el beeper en el mundo.
Contenidos de aprendizaje 03 Funciones para realizar acciones
Una función es como una instrucción. Como una acción que corresponde al
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
ingresar la función en el área del código de RUR-PLE.
Las funciones incorporadas típicas de RUR-PLE son move(), turn_left() y turn_off(), etc.
move () es una función que hace que el robot dé un paso hacia la dirección a la que se dirige.
turn_off() es una función que apaga el suministro de energía del robot. Esta función también debe estar
al final del programa.
r turn_left() es una función que sirve para giar el robot 90 grados a la izquierda.
pick_beeper() es una función que hace que el robot recoja el beeper colocado en el mundo.
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:
Gira a la
Usar una función
izquierda,
por favor.
incorporada
turn_left()
SÍ
Práctica de
manipulación
de robots
01 Primer paso de la manipulación del robot
Movamos el robot de la forma que prefieras mediante las funciones incorporadas.
move()
move()
turn_left()
move()
move()
turn_off()
Práctica de
manipulación
de robots
02 Habilidades para manipular el robot
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.
move()
pick_beeper()
move()
put_beeper()
move()
pick_beeper()
move()
put_beeper()
turn_off()
Definir las funciones no es suficiente para ejecutar sus contenidos. Para ejecutar una función definida,
tendrás que nombrar la función mediante “function name()”.
definició
def f(): nombre f()
n de la
move() de la
función
función
move()
move()
move()
turn_left()
Práctica de
manipulación 03 Cómo hacer que el robot avance
de robots
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.
def turn_right():
turn_left()
turn_left()
turn_left()
turn_left()
move()
turn_right()
move()
move()
turn_right()
move()
turn_left()
turn_off()
1 Enunciado condicional
expresión condicional if 1:
ejecución de instrucción 1 // cuando la expresión
else: condicional 1 es verdadera
else:
turn_left()
move() 3
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
Enunciado condicional si
mple
if on_beeper(): 1
turn_left() 1
turn_left() ¿Hay un beeper?
turn_left()
else:
2
turn_left()
move() 3
Girar a la izquierda 3
veces
(girar a la derecha)
3 ¡Hacia
adelante! Girar a la
izquierda
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
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():
turn_off()
move()
repeat(f,5)
2 Enunciado if anidado
expresión condicional if 1:
ejecución de instrucción 1 // cuando la expresión condicional 1 es verdadera
expresión condicional if 2:
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
Enunciado if anidado
if front_is_clear():
if on_beeper():
pick_beeper()
move()
else:
turn_left()
¿No hay un muro adelante?
¿Hay un beeper?
Levanta el beeper
¡Hacia
adelante!
Girar a la
izquierda
Práctica de
manipulación
de robots
05 Aspiradora robótica
Hagamos que el robot recoja todos los beepers del suelo a medida que se mueve hacia
el muro derecho.
El programa para que el robot recoja todos los beepers en la línea 1 (Street: 1) y se dirija hacia el
muro se puede escribir de la siguiente manera. Si el beeper está en la línea 1 (Street:1), funciona
sin importar donde se encuentra. Pero solo un beeper se coloca en un solo lugar.
def f():
if on_beeper():
pick_beeper()
if front_is_clear():
move()
else:
turn_off()
repeat(f,5)
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
control del enunciado elif, y si la condición del enunciado elif tampoco es verdadera, ejecuta
el enunciado else. En este momento, el enunciado if se puede usar varias veces según la
condición, pero la expresión condicional debe estar escrita.
expresión condicional if 1:
ejecución de instrucción 1 // cuando el enunciado condicional 1 es verdadero
expresión condicional if 2:
instrucción de ejecución 2 // cuando el enunciado condicional 1 es falso y el enunciado condicional 2 es verdadero
else:
instrucción de ejecución 3 // cuando el enunciado condicional 1 y el enunciado condicional 2 son falsos
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()
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?
1 Negación (NOT)
Notas para resolver problemas
La negación es un operador lógico que muestra falso si la condición actual es verdadera
y muestra verdadero si la condición actual es falsa.
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.
Práctica de
manipulación
de robots
06 Completar el blanco con el robot
Hagamos que el robot coloque el beeper en el lugar sin el beeper a medida que
se mueve a la derecha.
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.
def f():
if not on_beeper():
put_beeper()
move()
repeat(f,4)
turn_off()
5 5
4 4
Street
Street
3 3
2 2
1 1
1 2 3 4 5 1 2 3 4 5
Avenue Avenue
La variable, un recipiente para gu
Contenidos de aprendizaje 06
1 Definición de variable
¡Muy bien! Le
Restar 2 de a. Cómo cambiar la restaré 2 a a.
variable
a = 10
a = a-2
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.
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.
1) Variable local
Como variable declarada en una función, la variable local es una variable temporal que existe solo
en el transcurso de la función nombrada y desaparece cuando la función se acaba. Si ejecutas el
programa de la siguiente manera, la n declarada en la función f() se muestra en la función, pero la
variable desaparece del espacio de la memoria después de que la ejecución de la función finalice,
por lo tanto, ocurrirá un error si intentas mostrarla con la función print.
Bien, avancemos Código del ¿Perdón? No existe
según la cantidad una variable a.
indicada en el valor programa
guardado en a def f():
a = 10
while(a):
move()
a = a-1
while(a):
move()
a = a-1
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.
Práctica de
manipulación 07 Jugar con la variable
de robots
n=3
def f():
global n
n=n+1
print n
f()
n=n+1
print n
turn_off()
División de
Significado Suma Resta Multiplicación números reales
Ejemplo
División de números
Significado enteros
Potenciación Resto
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
>>>
Práctica
de 09 Operaciones matemáticas para expertos
manipulación
de robots
Averigüemos el área del triángulo mediante la entrada de la base y la altura.
Crearemos un programa para averiguar el área del triángulo después de ingresar la longitud de la base y
la altura de un triángulo.
13 19.5
3
Los tipos de información se clasifican en dos tipos. Existen dos tipos de información: los
números enteros y el string . Pero, ¿por qué se clasifica la información?
La computadora puede calcular que 1+1 es 2 rápidamente, pero no sabe qué hacer con
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.
i=0
c = ‘a’
Ejemplo de
1+2j
uso
Práctica
de 10 Combinar operadores aritméticos
manipulación
de robots
Averigüemos el área del círculo al ingresar del radio.
Crearemos un programa para averiguar el área el círculo mediante el radio (r). (PI se calcula como 3,14).
5 78.5
¿Por qué Y es 1 y no 2
cuando es la segunda
letra?
No olvides que el
espacio en blanco
también se considera
una letra.
Índice
CCaarra
acctteerr
Práctica
de 11 Crucigrama
manipulación
de robots
Mostremos parte de un string de caracteres.
0 1 2 3 4 5 6 7 8 9 10 11 12
s e c r e t g a r d e n
Str[5:9] # se refiere a una serie de letras desde el primer índice hasta (el segundo índice -1). (9-5=4 letras)
Str[3:] # se refiere a una serie de letras desde el tercer índice hasta el final.
Str[:7] # se refiere a una serie de letras desde el primer índice hasta el 6to (7-1) índice.
La lista es una forma de información que contiene cierta cantidad de información. Si usas la lista, es
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
puede mostrar si el número de índice de la información correspondiente se coloca dentro del corchete [ ].
) En la lista, se puede colocar la lista misma y la información individual. Tener otra lista dentro de la lista
a veces se denomina “lista bidimensional”. Cuando existe una lista dentro de la lista, la información se
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]]).
>>> 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
>>>
1) Operador de lista y modificación
>>> x=[1,2,3]
>>> y=[4,5,6]
>>> x[0]+x[2] 4
>>> x[0]+y[1] 6
>>> a=['a','b','c']
>>> a[0]
'a'
>>> a[0]=4
>>> a
[4, 'b', 'c']
Cuando tienes cierta instrucción que se repite en alguna condición, puedes usar
la instrucción llamada “enunciado de repetición”. Si usas el enunciado de
repetición cuando tienes que repetir el mismo trabajo varias veces, es
conveniente que escribas un programa, ya que la parte que se superpone se
puede escribir una sola vez.
¿Hay un Ir adelante
muro? Código del programa
¡Estoy tan
if front_is_clear(): ocupado!
¿Hay un
muro?
move()
if front_is_clear():
Ir adelante move()
if front_is_clear():
move() ¡Estoy tan
if front_is_clear(): ocupado!
move()
if front_is_clear():
move()
¡Estoy tan
ocupado!
Continúa moviéndose
hacia adelante si no
hay un muro.
Los enunciados for pueden reducir el largo del código ya que se puede usar el valor inicial, y el incremento y
decremento del operador, que se describe individualmente en el enunciado while una sola vez.
1 Enunciado de bucle básico
Como una estructura con un enunciado de repetición, un enunciado de bucle básico se refiere a la forma
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.
Cuando creas estructuras de enunciados de repetición básicas para for, puedes usar la función range() o lista.
Para variables en range(valor inicial, valor final, valor de incremento y decremento): la instrucción
i=0
while i<10: # conditional expression
# instruction
i=i+1 # increment and decrement operator
Si lo escribes como se indica anteriormente, i comienza desde 0 y aumenta en 1 cada vez que se ejecute
la orden. Si el valor de i llega a 10 al repetir la orden de esta manera, el enunciado de repetición finalizará.
Cuando domines Python, podrás escribir el código de la siguiente manera para expresar operadores de
incremento y decremento de forma más simple.
Es conveniente si usas el enunciado for para crear estructuras de repetición mediante la lista o la
función range().
Función range()
La función range( ) fija el rango del valor dentro de la lista de una vez.
*El valor inicial y el valor de incremento y decremento se pueden omitir. (al omitir un valor, el valor inicial es 0,
el valor de incremento y decremento es 1 y se ejecuta hasta (final value-1))
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> list(range(0, 30, 5))
[0, 5, 10, 15, 20, 25]
>>> list(range(0, 10, 3))
[0, 3, 6, 9]
>>> list(range(0, -10, -1))
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> list(range(0)) []
>>> list(range(1, 0)) []
2 Enunciado de bucle anidado
i=2 2*1=2
while i<=9: 2*2=4
Tabla de
j=1 2*3=6
multiplicaciones while j<=9: 2*4=8
utilizando bucle print i,"*",j,"=",i*j 2 * 5 = 10
while 2 * 6 = 12
j=j+1
2 * 7 = 14
i=i+1 2 * 8 = 16
turn_off() 2 * 9 = 18
3*1=3
for i in range(2,10): 3*2=6
Tabla de 3*3=9
multiplicaciones for j in range(1,10):
utilizando 3 * 4 = 12
bucle for print i,"*",j,"=",i*j 3 * 5. = 15
turn_off()
.
Práctica de
manipulación
de robots
13 La lotería
Buscaremos un valor al azar según la condición.
Para utilizar la función aleatoria (radint( )), deberás utilizar el módulo aleatorio.
Para agregar un valor a la lista, la lista debe estar declarada como list=[ ] para crear una lista vacía.
import random
list=[ ]
for i in range(1,11):
list.append(random.randint(1,10))
print list
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.
Resultado
de la [1, 1, 2, 4, 6, 6, 7, 8, 9, 10]
ejecución
list.sort()
print list
list.sort()
print list
list.reverse()
print list
La función pop( ) implementará el proceso de retirar los valores almacenados en la pila, que
es una unidad de almacenamiento de datos, como una función. Al explicar la estructura de la
pila, podrás utilizar la función pop( ). La función pop( ) retira el último valor de la lista.
Contenidos de aprendizaje 11 Comparar y evaluar
Los operadores que comparan el tamaño de dos valores, como mayor que (>),
menor que (<) o igual que (>=), menor o igual que (<=), igual que (==), y distinto
de (!=) se conocen como operadores de comparación. Al utilizar un operador de
comparación, se compara el valor real o el valor que el nombre indica y muestra
el resultado como verdadero (true) o falso (false).
Igual
Distinto de
Menor que
Menor o igual
Mayor que
Práctica de
manipulación 14 Robot inteligente
de robots
i=0 n=1
while n<=2:
move()
while on_beeper():
pick_beeper()
i=i+1
n=n+1
move()
while carries_beepers():
put_beeper()
move()
turn_off()
Contenidos de aprendizaje 12 Crear un clon de robot
La coordenada X donde se La dirección a la que apuntará el clon de robot El nombre del clon de robot que deseas
ubicará el clon de robot que (N/n, E/e, O/o, S/s, W/w, el valor predeterminado es “e”) crear (no deben repetirse)
deseas crear (coordenada
avenue)
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
deseas crear (coordenada street)
deseas crear blue/purple/green)
* Para el clon de robot no se pueden utilizar las funciones del sensor left_is_clear() y right_is_clear().
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)
R3=UsedRobot(3,1,'S',colour='green')
R4=UsedRobot(5,colour='yellow')
R5=UsedRobot(avenues=1,streets=2,orient_key='E',beepers=10,colour='blue')
n=0
while R5.carries_beepers():
R5.put_beeper()
n=n+1
R5.move()
print n
turn_off()
Antes de ejecutar el programa Después de ejecutar el programa
4
Street
1 2 3 4 5
Avenue
Crearemos un programa en el que cuatro robots reciban un valor al azar entre números
enteros del 0 al 10 y se muevan según ese valor.
import random 5
RB=UsedRobot(1,2,colour='blue')
4
RG=UsedRobot(1,3,colour='green')
Street
RY=UsedRobot(1,4,colour='yellow') 3
d=random.randrange(10)
2
b=random.randrange(10)
g=random.randrange(10) 1
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):
RB.move() 5
for k in range(g):
RG.move() 4
for l in range(y):
Street
3
RY.move()
turn_off() 2
RB.turn_off() 1
RG.turn_off()
1 2 3 4 5 6 7 8 9 10
RY.turn_off() Avenue
* 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-1 1-2
¡AY!
¡Puedo subir
fácilmente la
colina!
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
1-3
Me pregunto si estarán
realizando bien las entregas
.
Llevemos el periódico a la
casa del abuelo!
LISTO COMPLETADO
5 5
4 4
3 3
2 2
1 2 3 4 5 6 7 1 2 3 4 5 6 7
LISTO COMP
LETA
5 5 DO
4 4
3 3
2 2
1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
3--
o!
1
Debería regresa
r por hoy.
Me duelen las piernas hoy, creo que no podré saltar el muro. ¿Podrías crear un pr
ograma
para regresar si me topo con un muro?
LISTO COMPLETADO
5 5
4 4
3 3
2 2
1 2 3 4 5 1 2 3 4 5
¡SÍ!
3-2
¡Ji, ji! Ir de
compras es
divertido.
¿Tiene buenos
productos?
5 5 5
4 4 4
3 3 3
2 2 2
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
Amigos, marquemos
los muros
colapsados.
¿Qué es esto? Algunos muros han colapsado alrededor del centro comercial y son muy peli
grosos. Si los muros colapsados con un beeper, el personal de mantenimiento los arreglará.
marcamos
Crea un programa para recoger el beeper si el beeper está en el suelo mientras doy vueltas
alrededor del centro comercial y para marcar el muro con un orificio al dejar caer el beeper.
LISTO COMPLETADO
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 1 1 2 3 4 5 6 7 8 9 1
0 0
5-1
LISTO COMPLETADO
LISTO COMPLETADO
6-2
Fue un concierto muy divertido, ¿no? Pero las personas dejaron demasiada basura.
Necesito recoger toda la basura (beepers) y luego reunirla en un solo lugar.
¿Podrías crear un programa con estas instrucciones?
LISTO COMPLETADO
5 5
4 4
Street
Street
3 3
2 2
1 2 3 4 5 6 7 1 2 3 4 5 6 7
Avenue Avenue
Asume que la basura (beeper) siempre queda en el suelo en un lugar y que únicamente está en
la posición de la línea 1 (Street:1).
¿Qué tipos de movimientos repetitivos existen?
¿Qué deberíamos hacer para desechar la cantidad de basura recolectada en un solo lugar?
1
¿verdad?
5 5 5
4 4 4
3 3 3
2 2 2
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
7-2
Creo que necesito entrar en calor antes de jugar al béisbol. Si fijas el número del beeper
a (Avenue:1, Street:1), correré hasta el muro. Sabes que ahora debes
crear un programa con todo esto, ¿verdad?
LISTO CO COMP
ME LETAD
5 5 NZ 5O
AR
4 4 4
Street
Street
Street
3 3 3
2 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-1
¡GUAU!
¡GUA Debo correr
U!
aasegunda
segunda base
base
¡Viva! Llegó el momento que tanto esperé, ¡hora de jugar al béisbol! Batearé un jonrón.
Crea un programa para ir a la primera, segunda y tercera base y regresar a la base
del bateador por adelantado, ya que estoy seguro de que batearé un jonrón.
LISTO COMP
LETA
DO
5 5
4 4
3 3
2 2
1 2 3 4 5 1 2 3 4 5
¡Bam!
¡Oh! ¡Bateó
la pelota!
8-1
¡Ok! Comencemos con el juego. Crea un programa para hacerme avanzar según
el bateo
Si el tipo de bateo está fijado con un beeper en (Avenue:2, Street: 1). Luego de
avanzar, necesito mirar hacia el frente para el siguiente bateo, ¿no?
LISTO COMPLETADO
5 5
4 4
Street
Street
3 3
2 2
1 2 3 4 5 1 2 3 4 5
Avenue Avenue
LISTO COMPLETADO
5 5
4 4
4 Street
Street
3 3
3
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
¿Qué debería hacer para recoger una cantidad de beepers? (usar bucle while)
¿Cómo encontraré la basura?
¿Qué haré para encontrar la basura hasta toparme contra un muro? (usar bucle while)
Lo es. 9-2
Ya terminé de limpiar esta área. Ya que estoy limpiando, ¿qué tal si limpio
todo el parque de diversiones? Se puede hacer rápido si utilizo el enunciado
de repetición. Puedes crear un programa con todo esto, ¿verdad? No olvides
que el basurero está en (Avenue:1, Street:2).
LISTO COMPLETADO
5 5
4 Street 4
Street
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
¿Qué debería hacer para recoger una cantidad de beepers? (usar bucle while)
¿Cómo encontraré la basura?
¿Qué haré para encontrar la basura hasta toparme contra un muro? (usar bucle while)
LISTO COMPLETADO
7 7
6 6
5 5
Street
Street
4 4
3 3
2 2
1 2 3 4 5 6 7 1 2 3 4 5 6 7
Avenue Avenue
PASO 2
81
¡Los robots
son
geniales!
¡Uf! ¿Cuándo es
Soy la esfinge. Dibuja el
la fecha límite?
triángulo necesario para
construir una pirámide.
¡No sean Si no lo haces, ¡te comeré!
holgazanes y
apresúrense!
¡Vamos a
Debería irme luego limpiar de
de limpiar toda la inmediato!
basura.
2-1
Solicitud 1 Solicitud 2
Solicitud
· 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.
· Provee suficientes beepers para el robot.
LISTO COMPLETADO
7 7
6 6
5 5
Street
Street
4 4
3 3
2 2
1 2 3 4 5 6 7 1 2 3 4 5 6 7
Avenue Avenue
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
¡Oh! ¡Escucho
la música!
3-1
¡GUAU!
¡Uf! ¿Cuánto más
van a seguirme?
Solicitud 3
Dibujar un espiral
3. Dibujar un espiral Nivel
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.
· Provee suficientes beepers para el robot.
LISTO COMPLETADO
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 1 2 3 4 5 6 7 8 9
Por favor,
¡crezcan
rápido!
¡Plantaremos
semillas en
intervalos regulares!
4-1
¿Está seguro de
Oh. ¿Qué es que pidió pizza?
este agujero?
5-1
¡Voy en
camino!
¿Alguien
pidió pizza?
Solicitud 4 Solicitud 5
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.
Solicitud
LISTO COMPLETADO
6 6
5 5
4 4
3 3
2 2
1 2 3 4 5 6 1 2 3 4 5 6
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
¡Oh, no!
Estoy
atrapado
¡Uf! ¿Es un
escorpión esta vez? 8-1 ¿Dónde estoy?
¡Sálvenme, por favor!
7-1
Puedes contar Resiste un
conmigo. minuto, Princesa.
Solicitud
LISTO COMPLETADO
5 5
4 4
Street
Street
3 3
2 2
1 2 3 4 5 1 2 3 4 5
Avenue Avenue
Solicitud
· Ahuyenta al escorpión gigante al resolver el problema de suma con dos números de dos dígitos.
· Al sumar un número de dos dígitos (por ej., 29) que aparece en (Avenue:3, Street:3). y (Avenue:4, Street:3
y otro número de dos dígitos (por ej., 96) que aparece en (Avenue:3, Street:2) y (Avenue:4, Street:2).
muestra el resultado con un beeper.
· Coloca el beeper para mostrar el lugar de las centenas en (Avenue:2, Street:1), las decenas
en (Avenue:3, Street:1) y las unidades en (Avenue:4, Street:1) para que los números
sean visibles.
LISTO COMPLETADO
5 5
4 4
Street
Street
3 3
2 2
1 2 3 4 5 1 2 3 4 5
Avenue Avenue
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)
22 move()
23 repeat (put_beeper ,carry)
24 4
25 def compute():
26 repeat(pick,2)
27 repeat(turn_left,2)
28 repeat(move,2)
29 result_put()
30
31 repeat(move,3)
32 turn_left()
33 compute()
3). 34 repeat(turn_left,3)
35 sum += carry
36 compute
37 move()
38 turn_off()
LISTO COMPLETADO
7 7
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
El programa de ejemplo anterior es un método para salir del laberinto con
la regla de la mano derecha. Escribiremos un programa utilizando la regla
de la mano derecha.
1
2
3
4
5
6
7
8
Crea un programa para salir de un laberinto por ti mismo. (El tamaño del mundo deberá ser mayor
que 10x10).
Notas para resolver problemas
ETAPA E
¡Qué bien
huelen las flores!
Quiero averiguar
La habitación de el tamaño de esta
la princesa está aquí. habitación.
¡Mi corazón
palpita!
No hay
problema.
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
9. Cuidar el jardín de flores de la princesa Nivel
Solicitud
LISTO COMPLETADO
8 8
7 7
6 6
Street
Street
5 5
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
En esta misión debemos resolver problemas según una variedad de condiciones. ¿Cuáles son las
instrucciones necesarias? ¿Cómo podemos conocer la cantidad de beepers que hay en el suelo?
¿Cómo debería moverse el robot?
¿Cómo deberías declarar las variables?
La princesa ha enviado una nueva solicitud. Esta vez, es una solicitud para medir el
perímetro de la habitación. Es un nuevo tipo de solicitud, pero tú puedes hacerlo, ¿verdad?
Solicitud
· Haz que el robot calcule cuántos muros rodean a la habitación y muestre el resultado.
· Haz que el robot comience con un beeper para marcar la posición de inicio.
· Es una solicitud para contar la cantidad de muros, no la cantidad de beepers. Necesitas
comprender la función facing_north()※.
LISTO COMPLETADO
7 7
6 6
5 5
4 4
3 3
2 2
1 2 3 4 5 6 7 1 2 3 4 5 6 7
※ 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.
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
22
23 elif front_is_clear(): Pantalla
24 move()
25 1 i=
26 else: 2 count =
27 turn_left() 3 i=
28 count = 4 4 count =
29 5 i=
30 while not on_beeper(): 6 count =
31 count += travel_wall() 7 i=
32 if left_is_clear(): 8 count =
33 turn_left() 9 i=
34 move() 10 count =
35 elif not right_is_clear(): 11 i=
36 turn_around() 12 count =
37 count += 2 13 i=
38 else: 14 count =
39 turn_right() 15 i=
40 count += 1 16 count =
41 17 i=
print "count = ", count 2
18 count =
42
43 19 perimeter wall count =
44 pick_beeper()
45
46 while not facing_north():
47 turn_left()
48 count += 1
49
50 turn_right()
51 print "perimeter wall count = ", count 3
turn_off()
11-1
¡Vamos a limpiar la
Torre del cielo! ¡Anímense!
Colocaremos la Colocaremos
basura la basura
en el basurero en el basurero
Solicitud 9 Solicitud 10
La princesa debe estar satisfecha con el resultado de la solicitud. Recibí una solicitud de
un ángel por recomendación de la princesa. Lee la solicitud atentamente y crea un programa.
Solicitud
· Limpia todas las plumas (beepers) del suelo de la Torre del cielo.
· Haz que cada robot limpie la mitad de la torre utilizando la función UsedRobot() para una
limpieza más rápida,
LISTO COMPLETADO
6 6
5 5
Street
4 4
Street
3 3
2 2
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
Avenue Avenue
avenue la coordenada X donde se ubicará el clon de robot que deseas crear (coordenada avenida)
streets la coordenada Y donde se ubicará el clon de robot que deseas crear (coordenada calle)
orient_key la dirección a la que apuntará el clon de robot (N/n, E/e, O/o, S/s, W/w, el valor predeterminado es e)
beepers el número de “zumbadores” que tendrá el clon de robot que deseas crear
name el nombre del robot que deseas crear (no deben repetirse)
colour el color del clon de robot que deseas crear (grey [valor predeterminado]/yellow/blue/light blue/purple/green)
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
107
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
SOLICITUD
SOLICITUD
Guía de tareas
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.
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 proye
presentación y presentar los contenidos. El tiempo dado para la presentación es de 5 minutos par
ecto en forma de
ra cada equipo
7. Plan de ejecución de proyecto en equipo
Miembro
Tiempo Plan
8. Hoja de sinopsis de la actividad
Miembro
Problema Sinopsis
Problema 1
Problema 2
Problema 3
9. Ficha
Miembro
Guía de tareas
Miembro
Clasificación Contenidos
Nombre del
equipo
a evaluar
Puntos fuertes
Puntos para
mejorar
Opinión
11. Formulario de autoevaluación
Miembro
Clasificación Contenidos
Mi nombre
Mi rol
Puntos fuertes