Tiza Las materias del CBC
Practicar →

Pensamiento Computacional (090) · Unidad 1 — Algoritmos y programación

Qué es un algoritmo

Un algoritmo es una receta: pasos finitos, sin ambigüedad, que a partir de ciertos datos llegan a un resultado. Programar es escribir recetas para alguien que no interpreta nada.

Practicar este tema →7 ejercicios que te corrigen paso a paso · gratis, sin cuenta

La explicación

La definición, y por qué cada palabra importa

Un algoritmo es una secuencia finita de pasos no ambiguos que, partiendo de unos datos de entrada, produce un resultado.

La computadora no completa lo que falta. Una persona que lee "calentar la leche" sabe que hay que ponerla en algo, prender el fuego, y no irse a dormir mientras tanto. La máquina no. Ese es el salto mental de toda la materia: lo que no está dicho, no pasa.

Descomponer: el paso que la gente se saltea

Antes de escribir código, hay que partir el problema en pasos chicos. Es la parte que más cuesta y la que menos se practica, porque parece que "no es programar".

Ejemplo — servir un vaso de jugo. Un primer intento sería:

1. Sacar el jugo de la heladera
2. Servirlo en el vaso

Suena bien, pero le falta todo. ¿De dónde sale el vaso? ¿El cartón está abierto? ¿Qué pasa si no hay jugo? Una versión que una máquina podría seguir:

1. Abrir la heladera
2. Si no hay cartón de jugo, terminar (no se puede servir)
3. Tomar el cartón
4. Cerrar la heladera
5. Agarrar un vaso y apoyarlo sobre la mesa
6. Si el cartón está cerrado, abrirlo
7. Inclinar el cartón sobre el vaso hasta que esté lleno hasta 2 cm del borde
8. Enderezar el cartón

Fijate qué apareció al detallar: una decisión (paso 2 y 6) y una condición de corte (paso 7, "hasta que"). Esas dos cosas son if y while, que vas a ver en la unidad 3. Los algoritmos cotidianos ya las tienen; sólo hay que reconocerlas.

Qué buscar cuando descomponés

  1. Qué datos necesito antes de empezar. (la entrada)
  2. Qué decisiones hay. Cada "si pasa tal cosa" es una bifurcación.
  3. Qué se repite. Si escribís el mismo paso varias veces, ahí hay un ciclo.
  4. Cuándo termina. Sobre todo en lo que se repite.
  5. Qué pasa si sale mal. Que no haya jugo es un caso válido, no un olvido.
Ejemplo resuelto

Escribir el algoritmo para que una máquina saque plata de un cajero, para alguien que nunca usó uno.

Primero, la entrada. ¿Qué hace falta tener antes de empezar? La tarjeta y el PIN. Si falta alguno, ni tiene sentido arrancar.

1. Si no tenés tarjeta o no sabés el PIN, terminar
2. Insertar la tarjeta
3. Ingresar el PIN
4. Si el PIN es incorrecto, volver al paso 3 (hasta 3 intentos)
5. Elegir la opción "Extracción"
6. Ingresar el monto
7. Si el monto supera el saldo, avisar y volver al paso 6
8. Retirar el dinero
9. Retirar la tarjeta

Ahora mirá qué estructuras aparecieron solas:

  • El paso 1 y el 7 son decisionesif
  • El paso 4 es una repetición con cortewhile, y el corte doble (acertó, o se acabaron los intentos) evita el ciclo infinito

El control que vale la pena hacerse siempre: ¿este algoritmo termina en todos los casos? Acá sí, porque el paso 4 tiene tope de intentos. Sin ese tope, alguien que no recuerda el PIN se queda ahí para siempre — y eso deja de ser un algoritmo.

Dónde se cae la mayoría

Hasta acá la explicación. La práctica es la otra mitad: 7 ejercicios de este tema, en cuatro niveles, que no te dicen sólo si está bien al final sino que te corrigen en cada paso y te explican por qué. Además trae una animación que muestra la idea en movimiento.

Practicar Qué es un algoritmo →

Ver todos los temas de Pensamiento Computacional