Informática

Algoritmo

Definición: Un algoritmo es una secuencia de pasos ordenados lógica y cronológicamente para la resolución de un problema.

Características de un algoritmo

Un algoritmo se define principalmente por sus pasos. Cada paso y el conjunto de estos, deben ser simples, precisos y exactos. Además deben tener un orden lógico, un inicio y un fin.

Ejemplos de algoritmos

Algunos ejemplos de algoritmos son:

¿Cómo implementar un algoritmo?

Los algoritmos se pueden expresar en:

Diagramas de flujo

Representación gráfica que muestra el flujo de un proceso paso a paso.

Pseudocódigo

Descripción textual en lenguaje natural estructurado que simula código.

Código fuente

Implementación formal en un lenguaje de programación específico.

¿Cómo implementar un algoritmo en pseudocódigo?

Antes de implementar un algoritmo en cualquier de sus formas, se debe tener un problema a resolver.

Problema 1. Cambiar lámpara:

Una lámpara se ha quemado y se posee otra lámpara como repuesto. ¿Cómo cambiar la lámpara quemada?

En lenguaje natural, responderíamos algo así como

“Quita la lámpara fundida y coloca la lámpara nueva”.

Esto mismo, implementado en pseudocódigo (de muy alto nivel) se ve así:

INCIO
 | Quitar la lámpara fundida.
 | Colocar la lámpara nueva.
FIN

Si bien es cierto que son pocos pasos, si se entienden y se logra cambiar la lámpara, entonces es correcto.

Ahora bien, supongamos que estamos tratando de entrenar a un robot para que haga la tarea; en tal caso no funcionará el algoritmo, tendremos que ser más específicos y claros tomando en cuenta las capacidades elementales del robot.

El algoritmo en pseudocódigo más detallado (de un nivel más bajo que el anterior) sería:

INICIO
 | Colocar la escalera.
 | Subir a la escalera.
 | Quitar la lámpara quemada.
 | Bajar de la escalera.
 | Tomar la lámpara de repuesto.
 | Subir a la escalera.
 | Colocar la lámpara de repuesto.
 | Bajar de la escalera.
 | Quitar la escalera.
FIN

Es probable que no todos pensamos exactamente los mismos pasos para resolver el problema de cambiar la lámpara, pero si conducen de manera efectiva a realizar la tarea entonces estará en lo correcto.

Problema 2. Cómo prepara un mate:

Escribir en pseudocódigo de muy alto nivel, el algoritmo para preparar un mate.

Solución:

Inicio
 | Obtener mate, bombilla, yerba y agua caliente.
 | Cargar yerba en el mate.
 | Formar cavidad con la yerba.
 | Insertar bombilla.
 | Servir agua caliente.
 | Tomar mate.
Fin

Problema 3. Quitar una mancha de una remera:

Escribir en pseudocódigo de muy alto nivel, el algoritmo para quitar una macha de una remera roja.

Solución:

Inicio
 | Identificar mancha.
 | Aplicar quitamanchas sobre la mancha.
 | Dejar actuar quitamanchas.
 | Lavar remera.
 | Secar remera.
Fin

Ejercitación

Problema 4. Cómo hacerse un té

Escribir un pseudocódigo (de muy alto nivel) que indique los pasos básicos para preparar un té.

Problema 5. Salir de casa en un día de lluvia

Escribir los pasos principales para prepararse y salir de casa considerando que está lloviendo. Escribirlo en pseudocódigo de muy alto nivel.

Problema 6. Cargar el celular cuando queda sin batería

Describir en pseudocódigo (de muy alto nivel) las acciones necesarias para cargar un teléfono celular que se quedó sin batería.

Nivel de abstracción del lenguaje

La cantidad de pasos depende en gran medida, del nivel de abstracción (alto o bajo) del lenguaje (o notación) que se use para implementar el algoritmo.

Si el algoritmo se implementa en un lenguaje de un nivel de abstracción alto entonces sus pasos serán menos detallados y menos precisos para que una computadora los realice, pero serán más entendibles por un humano.

Si el algoritmo se implementa en un lenguaje de un nivel de abstracción bajo entonces sus pasos serán menos entendibles por un humano, pero serán más detallados y más precisos para que una computadora los realice.