CONCEPTO DE ALGORITMO:
Es un conjunto de pasos secuenciales y ordenados que permiten lograr un objetivo. Que sean pasos secuenciales significa que deben ser ejecutados uno después de otro y que sean pasos ordenados quiere decir que deben llevar un orden casi obligatorio (u obligatorio en la mayoría de los casos). Como puede notar el algoritmo permite lograr un objetivo. O sea que la clave para hacer buenos algoritmos y llegar a la solución de un problema es tener claro el objetivo y no perderlo nunca de vista.

Debe ser independiente de la sintaxis de un lenguaje de programación puesto que es la concreción de un plan y un medio para comunicar ideas entre personas. Lo que sí es importante notar, es que de un algoritmo sale el código en un lenguaje de programación. Por cada línea del algoritmo se corresponden una o varias líneas de código en un lenguaje de programación.
METODOLOGÍA A SEGUIR:
- Establecer el problema.
- Analizar el problema. Para ello nos hacemos las siguientes preguntas:
- ¿Qué información tenemos?
- ¿Qué necesitamos conocer?
- ¿Qué queremos obtener?
- Diseñar el algoritmo para su solución.
- Codificar.
CARACTERÍSTICAS QUE DEBEN DE CUMPLIR LOS ALGORITMOS OBLIGATORIAMENTE:
● Un algoritmo debe resolver el problema para el que fue formulado.
Lógicamente no sirve un algoritmo que no resuelve ese problema. En el caso de los programadores, a veces crean algoritmos que resuelven problemas diferentes al planteado. Los algoritmos deben mostrar claramente cuáles son los datos iniciales y cuáles son los resultados.
● Los algoritmos son independientes del computador. Los algoritmos se escriben para poder ser utilizados en cualquier máquina.
● Los algoritmos deben de ser precisos. Los resultados de los cálculos deben de ser exactos, de manera rigurosa. No es válido un algoritmo que sólo aproxime la solución. Debe constar de pasos claros, precisos y no ambiguos.
● Los algoritmos deben de ser finitos. Deben alcanzar la solución correcta en un tiempo finito. No es un algoritmo válido aquel que produce situaciones en las que el algoritmo no termina.
● Los algoritmos deben de poder repetirse. Deben de permitir su ejecución las veces que sea necesario. No son válidos los que tras ejecutarse una vez, ya no pueden volver a hacerlo por la razón que sea. Debe tener la capacidad de resolver el problema aun cuando cambiemos los datos de entrada.
Representación de algoritmos.
Los comentarios en un algoritmo se usan como una referencia para explicar la lógica del mismo. Es una forma de documentar el proceso, estos no tienen efecto en el código del programa (el computador los ignora), sino que sirven para que el programador comprenda mejor lo que se está representando en el algoritmo. Los comentarios se pueden representar ya sea en una sola línea o en varias líneas.
Para representar comentarios en una sola línea, se utilizan dos barras:
//Este es un comentario.
Para representar un comentario en varias líneas se utiliza la siguiente simbología:
/* Este
es un
comentario
en varias
Líneas */


1.- Es una secuencia de pasos o procesos lógicamente relacionados entre sí a fin de obtener la solución a un problema planteado.
2.- Es una lista de instrucciones para efectuar paso a paso un proceso.
3.- Conjunto «FINITO» de pasos o instrucciones, seguidas en un orden lógico, los cuales nos llevan a la solución de un problema específico.
4.- Una serie de instrucciones colocadas en cierta secuencia, necesarias para la descripción de las operaciones que llevan a la solución de un problema.
5.- Es un procedimiento completo para resolver un problema específico en un número «FINITO» de pasos.
6.- Es un método para resolver un problema mediante una serie de datos precisos, definidos y finitos.
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.
Las características fundamentales que debe cumplir todo algoritmo son:
CARACTERÍSTICAS DE ALGORITMOS
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.
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.
Descripción de un algoritmo en forma gráfica:
Cuando una secuencia de actividades que definen un problema es muy simple en su naturaleza, es decir que sólo implique seguir una serie de pasos, uno después de otro, y que no tenga decisiones lógicas ni alternativas a tomar, es muy fácil describirlo en palabras. Pero si esta secuencia de actividades se hace más compleja será no sólo difícil describirlo en palabras sino también retener todas las alternativas.
Para ilustrar lo anterior, analicemos la secuencia de eventos que tienen lugar todas las mañanas para un estudiante de Universidad que tiene clase los lunes y los miércoles a las 08:00 am y los martes y jueves a las 09:00 am.
Una vez que el estudiante se despierta mira el reloj y si no son aún las 06:30 am, continúa durmiendo. Los lunes y los miércoles, procura levantarse entre las 06:30 am y las 07:30 am. Si llegara a despertarse después de la hora como frecuentemente ocurre, pensará nuevamente en la falta que le hace el reloj despertador, pero toma la decisión de no ir a clases en esa mañana, sin embargo, después de esta decisión, se baña, se desayuna y se dedica a estudiar.
Si se despierta entre las 06:30 am y las 07:30 am, los lunes o los miércoles se baña, se desayuna y se dedica a leer el periódico hasta que sean más de las 07:30 am, luego toma el bus y llega a la Universidad. Entra a clase solamente si han transcurrido menos de 15 minutos desde su comienzo, de otra manera, no entra a clase y se dedica a leer las carteleras y a esperar la próxima clase.
Los martes y los jueves, procura levantarse entre las 07:30 am y las 08:30 am; si se despierta después de las 08:30 am realizará las mismas actividades que tendrían lugar si se levantara los lunes o los miércoles después de las 07:30 am. De otra forma se baña, se desayuna y lee el periódico hasta que sean más de las 08:30 am, luego realiza las mismas actividades que tienen lugar los lunes o lo miércoles cuando sale de su casa.
Los demás días de la semana, procura dormir hasta las 08:30 am, después de esta hora se baña, se desayuna y se dedica a estudiar.
Es dudoso que quien lea por primera vez lo anterior esté en capacidad de seguir y mantener fielmente en su memoria la cantidad de actividades, secuencias, decisiones y alternativas que tiene el ejemplo. Su respuesta obvia para remediar lo anterior será dibujar un gráfico, y aun sin conocer todas las técnicas de los diagramas de flujo será mucho más fácil para una persona seguir las actividades a través de un gráfico.
Algoritmos computacionales
Es importante el estudio y conocimiento de lo que hoy conocemos como Algoritmos Computacionales, que desde su aparición hasta nuestros días es, y seguirá siendo; vital para el desarrollo de aplicaciones para computadoras y el manejo y dominio de la lógica de programación para resolver problemas.