Resolviendo acertijos
Clase 31 de 47 • Curso Básico de Algoritmos y Pensamiento Lógico
Contenido del curso
Tipos de datos y operadores lógicos
- 6

¿Qué son variables y constantes?
04:45 min - 7

¿Qué son Bits y Bytes?
01:14 min - 8

Identifica las variables según los requerimientos de negocio
00:46 min - 9

Strings (texto) y concatenación
02:44 min - 10

Números y operaciones matemáticas básicas
03:29 min - 11

Operaciones matemáticas compuestas: paréntesis y orden de evaluación
03:11 min - 12

True y false: booleanos y tablas de la verdad
07:48 min - 13

Arrays y funciones sobre arrays
04:10 min - 14

¿Cómo diseñar algoritmos con diagramas de flujo?
07:11 min - 15

Define el tipo de dato según los requerimientos de negocio
01:02 min
Estructuras de control
- 16

If y Else: condicionales y comparaciones para proteger tus algoritmos
04:11 min - 17

Switch y Case: condicionales en forma de casos
03:46 min - 18

Excepciones y errores: Throw y Try Catch
05:00 min - 19

¿Qué es un ciclo? While, For y Do While
05:34 min - 20

Diagrama de flujo con condicionales
03:53 min - 21

Diagrama de flujo con ciclos
04:40 min - 22

Tutorial de algoritmos de programación
07:05 min - 23

Diseña algoritmos para resolver problemas de tu vida diaria
01:02 min
Encapsula tu código en funciones
- 24

¿Cómo desarrollar tu lógica de programación?
01:44 min - 25

¿Qué es una función?
07:43 min - 26

Modularización de código
04:09 min - 27

Flujo de funciones para encapsular algoritmos
01:34 min - 28

Nomenclaturas de programación: camelCase, PascalCase, snake_case
01:02 min - 29

¿Qué es recursividad? Funciones que se llaman a sí mismas
01:58 min - 30

Convierte algoritmos con ciclos a funciones recursivas
00:33 min - 31

Resolviendo acertijos
Viendo ahora
Traduce tus algoritmos a lenguajes de programación
- 32

Diferencias entre lenguajes de programación
05:10 min - 33

Cómo escribir código en cualquier lenguaje de programación
03:08 min - 34

Cómo programar en JavaScript, Python y PHP
05:15 min - 35

Introducción al ejercicio en JavaScript
03:00 min - 36

Programando en JavaScript
09:33 min - 37

Introducción al ejercicio en Python
00:51 min - 38

Programando en Python
04:54 min - 39

Introducción al ejercicio en PHP
00:47 min - 40

Programando en PHP
12:27 min - 41

Cómo programar en Java y Lenguaje C
02:02 min - 42

Introducción al ejercicio en Java
00:38 min - 43

Programando en Java
06:31 min - 44

Introducción al ejercicio en C
00:32 min - 45

Programando en Lenguaje C
04:22 min - 46

Traduce diagramas de flujo a código en lenguajes de programación
00:33 min
Conclusiones
Tu lógica de programación también se puede entrenar con acertijos, así que te dejaré cinco acertijos clásicos para que pienses un poco en ellos y te diviertas resolviéndolos antes de pasar a la siguiente clase donde verás cómo traducir tus algoritmos a diferentes lenguajes de programación.
¡No olvides resolver cada acertijo antes de ver su solución!
Acertijos
1. El camino del monje
Un monje parte al amanecer de su monasterio hasta la cima de una montaña, donde llega tras un camino de varias horas. Se queda a descansar, dormir y sale por la mañana de la montaña a la misma hora para regresar a su monasterio.
Es posible que no tardara lo mismo en ir que en volver y da igual que su velocidad no fuera constante o cuándo/cuántas veces pare a descansar: el monje pasó por algún punto del camino exactamente a la misma hora, pero con un día de diferencia. ¿Por qué?
2. La sucesión más difícil
¿Qué número sigue en esta sucesión numérica: 1 - 2 - 4 - 5 - 8 - 1000…
3. La puerta infernal
Estás encerrada o encerrado en una habitación con dos puertas vigiladas por dos centinelas. Una lleva a la libertad, pero la otra a la muerte segura. Puedes elegir una puerta y antes puedes hacer una pregunta a uno de los centinelas. Hay un problema: uno de ellos siempre dice la verdad, pero el otro siempre miente. ¿Qué pregunta harías para salvar tu vida?
4. Los sombreros
En una mesa hay tres sombreros negros y dos blancos. Tres personas se ponen un sombrero al azar sin mirar el color y se colocan en fila india (es una fiesta un poco rara). El tercero ve el color de los dos que tiene delante y se le pregunta si sabría decir cuál es el color de su sombrero. Contesta que no. El segundo solo puede ver el sombrero del primero. Se le hace la misma pregunta y contesta que no. El primero no ve ningún sombrero, pero sabe perfectamente de qué color es el suyo. ¿Qué lógica siguió?
5. Las manzanas
Tienes una frutería y te han repartido tres cajas: una tiene solo manzanas; otra solo naranjas; la tercera, manzanas y naranjas. Cada caja tiene una etiqueta: “manzanas”, “naranjas” y “manzanas y naranjas”. Ninguna de las cajas tiene la etiqueta que le corresponde. ¿Cómo puedes saber la fruta que contiene cada una de las cajas sacando una sola pieza de una sola de ellas?
Soluciones
1. El camino del monje
Imaginemos que se trata de dos monjes que salen a la misma hora de puntos opuestos: si siguen el mismo camino, en algún momento se tendrán que cruzar.
2. La sucesión más difícil
--> 1001 <-- Es el siguiente número que en castellano se escribe sin e.
3. La puerta infernal
“¿Qué diría el otro centinela si le pregunto cuál es la puerta segura?”.
Si mi centinela miente y el otro dice la verdad, mi centinela me dirá cuál es la puerta que lleva a la muerte. Si mi centinela dice la verdad y el otro miente, también me dirá cuál es esa puerta, ya que es la que el otro me diría. Solo hay que escoger la opuesta a la que me contesten.
4. Los sombreros
Si el último no sabe de qué color es su sombrero, eso significa que los otros dos no son blancos, porque si no, sabría que el suyo es negro. Así que hay uno blanco o los dos son negros.
El segundo ha deducido esto mismo al oír lo que dice el primero, así que si no sabe de qué color es su sombrero es porque el primero es negro. Si el del primero fuera blanco, sabría que el suyo es negro porque los dos no pueden ser blancos.
Por tanto, el primero sabe que su sombrero es negro.
5. Las manzanas
Has de coger una pieza de la caja que dice “manzanas y naranjas”. Como todas están mal etiquetadas, incluida esta, no necesitas saber más.
Si es una manzana, esta es la caja de las manzanas. Las naranjas están en la etiquetada como “manzanas” y la caja que queda, la de “naranjas”, contiene naranjas y manzanas.
Si es una naranja, tienes la caja de las naranjas. La etiquetada como “naranjas” contiene manzanas. Y la que tiene la etiqueta “manzanas” guarda naranjas y manzanas.
¿Resolviste los acertijos? ¿Qué te parecieron?
Espero que los hayas resuelto tú mismo y que no buscaras las soluciones en internet. Comparte tus soluciones en los comentarios y compárala con las de los demás estudiantes. :D