Descomposición de problemas y algoritmos
Es lunes por la mañana y Camilo tiene que alistar el morral, tomarse el tinto, coger el bus y llegar al colegio antes de las 6:30 a. m. Si intenta resolver todo de una sola vez, se enreda y se le olvida el cuaderno de Tecnología. Pero si lo divide en partes pequeñas, todo sale bien. ¿Cómo se divide un problema y cómo se escribe la solución para que cualquiera la pueda seguir, incluso un computador?
Descomponer un problema
Un problema grande asusta. Uno pequeño se resuelve. Por eso, en tecnología e informática lo primero que hacemos es descomponer el problema: partirlo en subproblemas más sencillos y resolver cada uno por separado.
Piensa en alistar el morral para el colegio. Es un problema con varias partes:
Cada cuadro de abajo es un subproblema. Si resuelves los cuatro, el problema grande queda resuelto. Además, si algo falla (por ejemplo, olvidaste el almuerzo), sabes exactamente dónde buscar el error.
Explica con tus propias palabras qué significa «descomponer un problema». Luego da un ejemplo cotidiano, como preparar un tinto o alistar el morral para el colegio, y…
Explica con tus propias palabras qué significa «descomponer un problema». Luego da un ejemplo cotidiano, como preparar un tinto o alistar el morral para el colegio, y menciona al menos tres partes o pasos en que lo dividirías.
Qué es un algoritmo
Cuando ya dividiste el problema, hay que decir en qué orden se resuelven las partes y cómo. Eso es un algoritmo.
Los computadores solo hacen lo que les dice un algoritmo. No adivinan: si falta un paso o está desordenado, fallan. Un buen algoritmo es:
-
Claro: cada paso se entiende de una sola manera.
-
Preciso: dice exactamente qué hacer, sin dejar cosas a la suerte.
-
Ordenado: los pasos van en el orden correcto.
-
Finito: termina; no se repite para siempre.
Cómo se representa
Un algoritmo se puede escribir de tres formas:
| Forma | Cómo es |
|---|---|
| Lista numerada | Pasos escritos uno debajo del otro: 1, 2, 3… |
| Pseudocódigo | Lista con palabras como «Si… entonces…» y «Repetir… veces» |
| Diagrama de flujo | Dibujo con figuras unidas por flechas |
En el diagrama de flujo, el óvalo marca el inicio y el fin, el rectángulo es una acción o proceso y el rombo es una decisión.
Un algoritmo es una secuencia ordenada de pasos para resolver un problema. Ordena correctamente los siguientes pasos para lavarse los dientes y escribe la lista…
Un algoritmo es una secuencia ordenada de pasos para resolver un problema. Ordena correctamente los siguientes pasos para lavarse los dientes y escribe la lista numerada: (a) enjuagarse la boca, (b) poner crema dental en el cepillo, (c) cepillar los dientes, (d) tomar el cepillo. Explica por qué el orden es importante.
Las tres estructuras básicas
Todo algoritmo, desde el de lavarse los dientes hasta el de un videojuego, se arma con solo tres piezas.
Puedes reconocerlas por las palabras clave:
| Estructura | Palabras clave | Ejemplo |
|---|---|---|
| Secuencia | primero, luego, después | Abrir la puerta, entrar, dejar el morral |
| Condición | si, entonces, de lo contrario | Si llueve, llevo paraguas |
| Repetición | repetir, mientras, hasta que, N veces | Dar 10 vueltas a la cancha |
Cada una existe por una razón. La secuencia da el orden. La condición permite decidir según la situación. La repetición evita escribir lo mismo muchas veces.
Sin «volver al paso 2», el algoritmo terminaría después de esperar y la persona nunca cruzaría, o cruzaría sin volver a mirar, que es peligroso.
Las estructuras básicas de un algoritmo son la secuencia, la condición y la repetición. Clasifica cada situación según la estructura que predomina y justifica…
Las estructuras básicas de un algoritmo son la secuencia, la condición y la repetición. Clasifica cada situación según la estructura que predomina y justifica brevemente:
-
«Si está lloviendo, llevo el paraguas».
-
«Doy 10 vueltas a la cancha del colegio».
-
«Abro la puerta, entro al salón y dejo el morral en mi puesto».
Observa este algoritmo para cruzar una calle en Bogotá: 1. Detenerse en el andén. 2. Mirar a la izquierda y a la derecha. 3. Si no vienen carros, cruzar caminando. 4. Si…
Observa este algoritmo para cruzar una calle en Bogotá:
-
Detenerse en el andén.
-
Mirar a la izquierda y a la derecha.
-
Si no vienen carros, cruzar caminando.
-
Si vienen carros, esperar y volver al paso 2.
Explica qué estructura de repetición o condición aparece en los pasos 3 y 4, y qué ocurriría si se eliminara la instrucción «volver al paso 2».
Escribir un algoritmo paso a paso
Ahora juntamos todo: descomponer, ordenar y usar las estructuras. Un método que funciona siempre:
-
Entiende el problema: ¿cuál es el punto de partida y cuál la meta?
-
Descompón en subproblemas.
-
Ordena los pasos.
-
Marca dónde hay decisiones (condición) y dónde se repite algo (repetición).
-
Revisa: ¿alguien que no conoce el problema podría seguirlo sin dudar?
Valentina quiere preparar arepas para el desayuno de su familia. Descompón el problema en una secuencia de al menos seis pasos, desde alistar los ingredientes hasta…
Valentina quiere preparar arepas para el desayuno de su familia. Descompón el problema en una secuencia de al menos seis pasos, desde alistar los ingredientes hasta servirlas. Indica en cuál de los pasos usarías una condición (por ejemplo, «si la arepa ya está dorada…») y escríbela como una instrucción completa.
Santiago debe barrer el salón y recoger la basura antes de que llegue el profe. Escribe un algoritmo que use una repetición para recoger todos los papeles del piso y una…
Santiago debe barrer el salón y recoger la basura antes de que llegue el profe. Escribe un algoritmo que use una repetición para recoger todos los papeles del piso y una condición para decidir si el papel va en la caneca de reciclaje o en la de residuos ordinarios. Redáctalo en pasos numerados.
Resolver un problema real y evaluar algoritmos
Con un problema del colegio vas a usar todo lo aprendido. En el colegio de Mariana se desperdicia agua porque algunas llaves de los baños quedan abiertas.
Comparar algoritmos
No todos los algoritmos son igual de buenos. Para repartir 30 cuadernos entre los grupos de sexto compara:
-
A: contar los estudiantes de cada grupo, tomar esa cantidad de cuadernos y entregarla; repetir hasta que no queden grupos.
-
B: entregar cuadernos a cada grupo hasta que alguien diga «ya».
El A es más claro y preciso: dice cuántos cuadernos entregar y cuándo termina. El B depende de que alguien hable, y no garantiza que cada estudiante reciba uno.
En el colegio de Mariana hay mucho desperdicio de agua porque algunas llaves de los baños quedan abiertas después del descanso. Propón una solución: primero descompón el…
En el colegio de Mariana hay mucho desperdicio de agua porque algunas llaves de los baños quedan abiertas después del descanso. Propón una solución: primero descompón el problema en subproblemas (por ejemplo, detectar, avisar, corregir), luego escribe un algoritmo de al menos siete pasos que combine secuencia, condición y repetición, y señala en qué paso aparece cada estructura.
Dos estudiantes escribieron algoritmos para repartir 30 cuadernos entre los grupos de sexto, de modo que cada grupo reciba uno por estudiante: Algoritmo A: contar los…
Dos estudiantes escribieron algoritmos para repartir 30 cuadernos entre los grupos de sexto, de modo que cada grupo reciba uno por estudiante:
-
Algoritmo A: contar los estudiantes de cada grupo, tomar esa cantidad de cuadernos y entregarla; repetir hasta que no queden grupos.
-
Algoritmo B: entregar cuadernos a cada grupo hasta que alguien diga «ya».
Compara los dos algoritmos. Argumenta cuál es más claro, preciso y confiable, y reescribe el que sea más débil para mejorarlo.
Vuelve al principio: Camilo resolvió su lunes dividiendo el problema en alistar el morral, tomar el tinto, coger el bus y llegar. Cada parte tiene un orden (secuencia), algunas decisiones («si el bus viene lleno, espero el siguiente») y repeticiones («revisar cada cuaderno»).