Algoritmo

Un algoritmo consiste en una lista ordenada de operaciones que tienen el propósito de buscar la solución a un problema en matemática, informática y disciplinas afines.

Para las ciencias de la matemática y de la computación, un algoritmo es una lista que, dado un estado inicial y una entrada, propone pasos sucesivos para arribar a un estado final obteniendo una solución. Sin embargo, el algoritmo no es excluyente de las ciencias duras o matemáticas. También en la vida cotidiana se emplean este tipo de operatorias casi sin notarlo: por ejemplo, en los instructivos o manuales de usuario que incluyen ejemplos de resolución de problemas técnicos.

El empleo de algoritmos no es exclusivamente propio de operaciones complejas o ligadas al ámbito de la investigación científica. Al desarrollar un programa de computación, por citar un ejemplo, a menudo estamos desarrollando o implementando un método para resolver algún problema. En definitiva, se trata de una relación problema-solución que tiene lugar a través de la informática. Un algoritmo típico tiene carácter finito, es preciso, tiene tanto una entrada como una salida y es eficaz en la resolución de un problema.

**PASOS PARA PLANTEAR LA SOLUCIÓN A UN PROBLEMA**:

1.- Análisis del problema.

2.- Identificar las entradas, procesos y salidas del problema, declaración de variables.

3.- Diseño del Algoritmo: Describe la secuencia ordenada de los pasos, sin ambigüedad, es decir, siendo preciso y veraz en la búsqueda de la solución al problema.

4.- Codificación del Algoritmo: Es la expresión en un lenguaje de programación de los pasos definidos en el algoritmo.

5.- Ejecución y validación del programa por el computador.

**CARACTERÍSTICAS DE ALGORITMOS:**

Las características fundamentales que debe cumplir todo algoritmo son:

1.- Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.

2.- Un algoritmo debe estar bien definido, es decir, si se sigue la ejecución dos veces del mismo se debe obtener la misma secuencia lógica. El algoritmo debe definirse de forma precisa para cada paso, es decir, hay que evitar toda ambigüedad al definir cada paso. Puesto que el lenguaje humano es impreciso, los algoritmos se expresan mediante un lenguaje formal, ya sea matemático o de programación para un computador.

3.- Un algoritmo debe ser "FINITO", Si se sigue un algoritmo se debe terminar en algún momento; o sea, debe tener un numero finito de pasos.

4.- **Entrada**: El algoritmo tendrá cero o más entradas, es decir, cantidades dadas antes de empezar el algoritmo. Estas cantidades pertenecen además a conjuntos especificados de objetos. Por ejemplo, pueden ser cadenas de caracteres, enteros, naturales, fraccionarios, etc. Se trata siempre de cantidades representativas del mundo real expresadas de tal forma que sean aptas para su interpretación por el computador.

5.- **Salida**: El algoritmo tiene una o más salidas, en relación con las entradas.

**CLASIFICACIÓN DE LOS ALGORITMOS:**

**Directos**: Son aquellos que permiten encontrar la solución al problema de manera instántanea o directa, en un número determinado de pasos.

Ejemplo: 23 = 2\*2\*2 = 8

**Indirecto**:

* a) Se ignora el número de pasos.
* b) Son aquellos donde se desconocen el número de pasos para lograr la solución de un problema.

Estos a su vez, se clasifican en:

**Finito**: El número de pasos a realizar son conocidos así como la factibilidad de solución al problema planteado, o sea, que va a ver una respuesta al proceso.

Ejemplo:

Medir distancia

Es factible que algún día pueda saber la distancia entre la Sede antigua del IUTEPAL (Av. Constitución) y la Sede Nueva del IUTEPAL (Urb. Caña de Azúcar).

**Infinito**:

Se desconoce el número de pasos a realizar, así como la imposibilidad de encontrar la solución al problema planteado.

Cuando realmente es imposible lograr la solución, por más vueltas que le demos al problema.

Ejemplo:

**Ejemplos de Algoritmos**:

Podemos idear un algoritmo para un determinado proceso, así como también hacerlo en diferentes formas.

Por ejemplo: Cómo podríamos encontrar el promedio de un conjunto de números?.

Una posible solución sería:

1.- Sumar los números dados.

2.- Contar dichos números.

3.- Dividir el resultado obtenido en el punto 1 entre el resultado obtenido en el punto 2.

Otra clase de ejemplo de Algoritmos, sería el de una llamada telefónica, o el proceso para efectuar un viaje en el Metro de Caracas, o la obtención de la licencia para conducir o el cambio de un caucho que esté bajo de aire, etc; en fin, hay muchas formas de aplicar los algoritmos en cuestiones cotidianas descomponiendo la acción en pasos lógicos, como es el caso de una llamada desde una cabina de un teléfono público:

1.- Inicio

2.- Descolgar el teléfono

3.- Esperar la señal digital.

4.- Preguntamos si está dañado. Si lo está: Vamos al paso 5.

Si no lo está: Vamos al paso 8.

5.- Vociferar una palabra de mal gusto y fruncir el ceño.

6.- Colgar.

7.- Fin.

8.- Digitar los números.

9.- Verificamos si suena ocupado. Si suena ocupado: Vamos al paso 11.

Si no lo está: Vamos al paso 13.

10.-Insistir digitando los números.

11.- Ir al paso 8.

12.- Verificamos si contestan. Si contestan: Vamos al paso 14

Si no contestan: Vamos al paso 21.

13.- Preguntamos si se encuentra la persona.

Si se encuentra: Vamos al paso 14.

Si no se encuentra: Vamos al paso 17.

14.- Hablar lo deseado.

15.- Colgar.

16.- Fin.

17.- Pensar algo malo.

18.- Tomar un café y tranquilizarse.

19.- Ir al paso 15.

A continuación, presentamos un ejemplo de algoritmo para el proceso de cambiar un caucho que está bajo de aire.

1.- Levantar el carro con el gato hidraúlico.

2.- Quitar los tornillos del rin.

3.- Quitar el caucho dañado.

4.- Poner el caucho de repuesto.

5.- Apretar los tornillos.

6.- Bajar el carro con el gato.

A los anteriores pasos, podríamos agregar muchos más detalles como por ejemplo, abrir la maleta, aflojar tornillos antes de levantar el carro, etc. Presentamos a continuación, dos versiones mas amplias del algoritmo anterior:

**Versión Nº 1**

1.- Sacar el caucho de repuesto y herramientas de la maletera.

2.- Verificamos si está dañado el caucho de repuesto.

Si lo está vamos al punto 3.

Si no lo está vamos al punto 4.

3.- Vociferamos ruidosamente algo.

Nos vamos caminando a buscar ayuda ó telefoneamos alguien para que ayude.

Vamos al punto 14.

4.- Verificamos si el caucho bajo de aire es el caucho delantero. Si lo es:

4.1.- Quitamos la tapa del centro de la rueda delantera.

4.2.- Aflojamos los tornillos.

4.3.- Levantamos el carro por delante, junto al caucho dañado.

4.4.- Vamos al punto 5.

**Si no lo es**:

4.1.- Quitamos la tapa del centro de la rueda trasera.

4.2.- Aflojamos los tornillos.

4.3.- Levantamos el carro por detrás, junto al caucho dañado.

5.- Quitamos los tornillos.

6.- Quitamos el caucho dañado.

7.- Ponemos el caucho de repuesto.

8.- Colocamos los tornillos y las tapas.

9.- Bajamos el carro con el gato hidraúlico.

10.- Guardamos el caucho dañado, el gato y las herramientas en la maletera.

11.- Nos limpiamos con estopa las manos.

12.- Encendemos el vehículo.

13.- Continuamos manejando.

14.- Fin.

**Versión Nº 2**

1.- Observamos si el caucho de repuesto está vacío.

Si lo está vamos al punto 2.

Si no lo está vamos al punto 3.

2.- Llamamos a un taller.

Vamos al punto 12.

3.- Levantamos el carro con el gato hidráulico.

4.- Quitamos un tornillo.

5.- Observamos si hemos quitado todos los tornillos.

Si lo hemos quitado vamos al punto 6.

Si no lo hemos quitado vamos al punto 4.

6.- Quitamos el caucho dañado.

7.- Ponemos el caucho de repuesto.

8.- Apretamos un tornillo.

9.- Verificamos si se han apretado todos los tornillos.

10.- Si lo hemos apretado, vamos al punto 11.

Si no lo hemos apretado vamos al punto 8.

11.- Bajamos el carro con el gato hidráulico.

12.- Fin.