¿Qué es un algoritmo y para qué sirve?

manueldemeza 30/10/2024

Ruta de aprendizaje: Programación en C

Hola, STEAMdiantes.

Cuando hablamos de programar, muchos piensan inmediatamente en escribir líneas de código extrañas en una pantalla negra. Pero el código es solo el ladrillo; el algoritmo es el plano arquitectónico.

Antes de que puedas construir un puente (o un software), necesitas saber exactamente qué vas a hacer. En este artículo definiremos qué es un algoritmo y por qué es la habilidad más importante que desarrollarás como ingeniero.

¿Qué es un algoritmo?

Más allá de las definiciones complejas de libros de texto, en ingeniería definimos un algoritmo de forma práctica:

Un algoritmo es una secuencia ordenada, finita y no ambigua de instrucciones para resolver un problema específico.

La palabra proviene del matemático persa Al-Juarismi (latinizado como Algorismus), quien en el siglo IX estableció las bases para resolver ecuaciones paso a paso.

No es magia. Es una receta. Si sigues la receta de un pastel al pie de la letra, obtendrás el mismo pastel. Si sigues un algoritmo informático, obtendrás el resultado esperado.

Las 3 leyes de un buen algoritmo

Para que una lista de pasos sea considerada un algoritmo computacional válido (y programable en C), debe cumplir estrictamente con tres características:

Precisión (sin ambigüedades)

Cada paso debe ser claro y exacto. Una computadora no “supone” ni “interpreta”.

  • Mal: “Ponle una pizca de sal”. (¿Cuánto es una pizca? ¿1 gramo? ¿1 kilo?).
  • Bien (Algorítmico): “Agrega 5.0 gramos de sal”.

Determinismo (definido)

Si ejecutas el algoritmo varias veces con los mismos datos de entrada, siempre debes obtener el mismo resultado. No puede haber “azar” ni comportamientos inesperados. 

  • Si 2+2 hoy da 4, mañana debe dar 4. Si da 5, tu algoritmo está roto.

Finitud

Todo algoritmo debe tener un inicio y, crucialmente, un fin. Debe resolver el problema en un número finito de pasos. Un algoritmo que se ejecuta eternamente sin arrojar un resultado (ciclo infinito no deseado) es un error de diseño.

Entrada, Proceso y Salida

Todo algoritmo que diseñemos en C seguirá este flujo lógico. Es la “caja negra” de la ingeniería:

  • Entrada (Input): Los ingredientes o datos iniciales (ej. temperatura actual, radio del círculo).
  • Proceso: La secuencia de pasos lógicos y matemáticos que transforman esos datos.
  • Salida (Output): El resultado final o la solución entregada (ej. activar ventilador, área calculada).

Ejemplo práctico

Retomemos un ejemplo cotidiano: “Ir al trabajo”. Pero esta vez, vamos a estructurarlo no como una lista de tareas, sino como un flujo lógico capaz de tomar decisiones.

Objetivo: Llegar al trabajo a las 8:00 AM.

  1. Inicio
  2. Levantarse (Entrada del día).
  3. Mirar por la ventana (Adquisición de datos).
  4. ¿Está lloviendo? (Condicional if)
    • SÍ: Buscar paraguas y pedir taxi.
    • NO: Caminar a la parada del autobús.
  5. Trasladarse.
  6. Checar tarjeta de entrada.
  7. Fin (Objetivo cumplido).

Fíjate en el paso 4. Eso es lo que diferencia a un algoritmo inteligente de una lista simple. Los algoritmos toman decisiones basándose en las condiciones del entorno.

¿Para qué sirve esto?

Entender los algoritmos es vital porque los lenguajes de programación son, en esencia, “tontos”. C, Java o Python no saben resolver problemas; solo saben seguir tus instrucciones.

  • El algoritmo es tu solución mental al problema.
  • La programación es el acto de traducir ese algoritmo a un lenguaje (como C, Go o JavaScript) que la máquina entienda.

Si tu algoritmo es malo (impreciso o infinito), tu código fallará, sin importar qué lenguaje uses o qué tan bien domines su sintaxis. Por eso, antes de tocar el teclado, el buen ingeniero siempre diseña su algoritmo.

Siguiente lección: ¿Qué es un lenguaje de programación?
Lección anterior: ¿Qué es la programación? El lenguaje que controla tu mundo

Gracias por leernos.
Si te gusto este artículo, únete a nuestra comunidad en Facebook o WhatsApp para más…
¡Hasta la próxima!

¿Te gustó este artículo? ¡Compártelo!

Comentarios

0 0 votes
Valora este artículo
Suscribirse
Notificarme de
guest
0 Comentarios
Oldest
Newest Most Voted
Inline Feedbacks
View all comments