You are on page 1of 6

QU ES UN ALGORITMO?

El diccionario de la Real Academia Espaola define problema como un conjunto de hechos o


. Proposicin dirigida a averiguar el modo de
circunstancias que dificultan la consecucin de algn fin.
obtener un resultado cuando ciertos datos son conocidos.
Un algoritmo es un conjunto finito de instrucciones o pasos que sirven para ejecutar una tarea
o resolver un problema. La palabra algoritmo deriva del nombre del matemtico rabe Al-Khwarizmi,
que vivi entre los siglos VII y VIII.
Generalmente los algoritmos se presentan a diario con las diversas vivencias de las personas,
todo lo que nos rodea es siempre una secuencia de pasos que nos llevan a realizar nuestras labores
en ocasiones ordenadamente. En la vida cotidiana empleamos algoritmos en multitud de ocasiones
para resolver diversos problemas, como por ejemplo para hacer funcionar una lavadora (conjunto de
instrucciones pegadas en la tapa de la mquina), para tocar msica (partituras), para construir un
aeroplano a escala (expresados en las instrucciones), para hacer trucos de magia (pasos para hacer
el truco) o, incluso, para hacer recetas de cocina (pasos de la receta). Otros ejemplos, como el algoritmo
de la divisin para calcular el cociente de dos nmeros o el algoritmo de Euclides para calcular el
mximo comn divisor de dos enteros positivos pertenecen al mbito de las matemticas.
De un modo ms formal, un algoritmo es una secuencia finita de instrucciones realizables,
no ambiguas, cuya ejecucin conduce a una resolucin de un problema.
El algoritmo nos da la solucin genrica a un problema y lo podremos emplear todas las veces
que se nos presente ese mismo problema, por ejemplo: el algoritmo de la divisin es genrico e
independiente de los nmeros que tengamos que dividir.
Una vez descubierto un algoritmo para efectuar una tarea, la realizacin de sta ya no requiere
entender los principios en que se basa dicho algoritmo, pues el proceso se reduce a seguir las
instrucciones del mismo. Por ejemplo, podemos hacer una divisin siguiendo el algoritmo sin entender
por qu funciona el algoritmo. La inteligencia requerida para llevar a cabo la tarea est codificada en el
algoritmo
Un algoritmo puede ser escrito en lenguaje natural; pero esta descripcin puede ser ambigua,
por lo que se utilizan diferentes mtodos de representacin, que permiten evitar dicha ambigedad y al
mismo tiempo que sean fcilmente codificables. Los mtodos ms usuales para la representacin de
algoritmos son:
Descripcin narrada
Diagrama de flujo
Pseudocdigo
DESCRIPCIN NARRADA
Es la forma ms sencilla de describir o expresar un algoritmo. Consiste en hacer un relato de la
solucin en lenguaje natural. Por ejemplo:
Algoritmo (en descripcin narrada) para calcular la suma de 2 nmeros:
1. Obtener los 2 nmeros a sumar.
2. Sumar los nmeros.
3. Mostrar el resultado.
El uso del lenguaje natural provoca frecuentemente que la descripcin sea imprecisa y poco
confiable, por lo que este tipo de representacin no es recomendable.

DIAGRAMA DE FLUJO
Es la representacin grfica de un algoritmo. Utiliza smbolos normalizados, con los pasos del
algoritmo escritos en el smbolo adecuado y los smbolos unidos por flechas, denominadas lneas de
flujo, que indican el orden en que los pasos deben ser ejecutados.
PSEUDOCDIGO
El pseudocdigo en un lenguaje de especificacin de algoritmos que utiliza palabras reservadas
y exige la indentacin, o sea, sangra en el margen izquierdo de algunas lneas. Se concibi para
superar las dos principales desventajas de los diagramas de flujo lento de crear y difcil de modificar
sin un nuevo proceso de redibujo. Es una herramienta muy efectiva para el seguimiento de la lgica de
un algoritmo y para transformar con facilidad los algoritmos a programas.
En el mbito de las computadoras, los algoritmos se expresan como programas. Los programas
son algoritmos codificados con un lenguaje no ambiguo cuya sintaxis y semntica "entiende" la
computadora.
As pues, si queremos que una computadora efecte una tarea, primero debemos descubrir un
algoritmo para llevarla a cabo; programar el algoritmo en la mquina consiste en representar ese
algoritmo de modo que se pueda comunicar a una mquina. En otras palabras, debemos transformar
el algoritmo conceptual en un conjunto de instrucciones y representar estas ltimas en un lenguaje sin
ambigedad
Gracias a la capacidad para comunicar nuestros pensamientos mediante algoritmos, podemos
construir mquinas cuyo comportamiento simula, en alguna medida, la inteligencia. El nivel de
inteligencia que simula la mquina est limitado por la inteligencia que podamos comunicarle por medio
de algoritmos. Las mquinas slo pueden realizar tareas algortmicas. Si encontramos un algoritmo
para dirigir la ejecucin de una tarea, podemos construir una mquina para llevarla a cabo siempre que
la tecnologa haya avanzado lo suficiente. Si no encontramos un algoritmo, es posible que la ejecucin
est fuera de las capacidades de las mquinas.
CARACTERSTICAS DE LOS ALGORITMOS:
Las caractersticas fundamentales que debe cumplir todo algoritmo son:
Un algoritmo debe ser preciso e indicar el orden de realizacin de cada paso.
Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo
resultado cada vez.
Un algoritmo debe ser finito. Si se sigue un algoritmo se debe terminar en algn momento o sea,
debe tener un nmero finito de pasos.
La estructura de un algoritmo debe estar integrada por tres partes: Entrada, Proceso y Salida.

La entrada se refiere a algo que existe y es utilizado por el algoritmo para transformarlo en los
resultados que uno planifica.

METODOLOGA DE SOLUCIN DE PROBLEMAS


Antes de hablar de metodologas de solucin de problemas debes tener muy claro el concepto
de mtodo, que a lo largo de la historia ha llamado la atencin de gran cantidad de filsofos y cientficos.
El Diccionario Larousse define el trmino mtodo como el conjunto de operaciones ordenadas con
que se pretende obtener un resultado. La metodologa es la ciencia que aplica este mtodo. Existen
muchos tipos de metodologas, como la metodologa de investigacin, metodologa de enseanza
aprendizaje, etc., as como la metodologa de solucin de problemas, que aplicamos constantemente
en la vida diaria. Pero en este caso hablaremos especficamente de la solucin de problemas que
podemos resolver mediante el uso de la computadora.
La resolucin de los problemas consta de 5 etapas que garantizan la llegada correcta a la
solucin: identificacin del problema, planteamiento de alternativas de solucin, eleccin de una
alternativa de solucin, eleccin de una alternativa, desarrollo de la solucin y evaluacin de sta.
IDENTIFICACIN DEL PROBLEMA
La identificacin del problema es una fase muy importante en la metodologa, pues de ella
depende el desarrollo posterior en busca de la solucin. Un problema bien delimitado es una gran ayuda
para que el proceso general avance bien; un problema mal definido provocar desvos conceptuales
que sern difciles de remediar posteriormente. En esta etapa es fundamental el anlisis de la
informacin inicial (entrada) con el fin de distinguir los datos pertinentes de los que no lo son, de manera
que se pueda elegir la configuracin ms conveniente respecto a las soluciones posibles. Tambin
deben definirse los datos de salida que garanticen la continuidad del proceso para que sea ms fcil
eliminar las expectativas negativas.
PLANTEAMIENTO DE ALTERNATIVAS DE SOLUCIN
Despus de la definicin del problema y del anlisis de los datos de entrada, el proceso contina
con el anlisis de las alternativas de solucin. Por lo general, la solucin de un problema puede
alcanzarse por distintas vas. Es til tratar de plantear la mayor cantidad de alternativas posibles de
solucin, pues de esta forma las probabilidades aumentan a favor de encontrar la va correcta. Se debe
destacar que no es conveniente extender demasiado el nmero de alternativas, pues si el nmero de
stas es demasiado alto, se presentar una mayor dificultad para elegir la mejor de todas, que es en
definitiva el objetivo del proceso.
ELECCIN DE UNA ALTERNATIVA
Despus de tener todo el repertorio de alternativas, es necesario pasar a otra etapa: la eleccin
de la mejor entre todas las posibilidades. Esta fase es muy importante porque de la eleccin realizada
depende el avance final hasta la solucin. La orientacin hacia delante supone la irreversibilidad si la
decisin es acertada o una reversibilidad costosa, pues si la decisin no es acertada, es necesario
retroceder, lo que afecta la optimidad del proceso.
Por tanto, es necesario que cada alternativa sea bien analizada para que la toma de decisiones
sea bien justificada. Deber elegir la alternativa que sea la ms adecuada para la solucin de
problemas, tomando en cuenta las caractersticas del problema y las caractersticas que deber tener
la solucin, as como los elementos, datos o informacin con la que cuentas.
DESARROLLO DE SOLUCIN
Despus de decidir cul es la mejor alternativa de todas, se llega a la etapa de la solucin. En
esta fase, a partir de los datos relacionados con la alternativa seleccionada, se aplican las operaciones
necesarias para solucionar el problema. La seleccin de los procesos tambin debe ser determinada
en funcin de la optimidad, es decir, las operaciones deben llegar a la solucin por el camino ms corto
para garantizar la mayor eficiencia en el funcionamiento. Si la alternativa es la ptima, llevar a la
solucin deseada que fue prevista en la identificacin del problema.

EVALUACIN DE LA SOLUCIN
Luego de haber desarrollado la solucin queda an una etapa, que es la evaluacin. En los procesos
industriales a este procedimiento se le llama control de la calidad y consiste en determinar que la
solucin obtenida es lo que esperaba conseguir comprobando que el resultado sea correcto. En esta
fase se deben pulir los procesos ya realizados y tratar de llevarlos a un grado mayor de optimidad,
pues el algoritmo ms eficiente en la solucin de un problema es el que llega a su objetivo final con la
mayor economa de procedimientos que sea posible

DIAGRAMAS DE FLUJO
Es la representacin grfica de flujo de un algoritmo o de secuencia rutinarias Se basan en la utilizacin
de diversos smbolos para representar operaciones especficas. Se les llama diagramas de flujo porque
los smbolos utilizados se conectan por medio de flechas para indicar la secuencia de la operacin.
Los smbolos que se utilizan para diseo se someten a una normalizacin, es decir, se hicieron
smbolos casi universales, ya que, en un principio cada usuario podra tener sus propios smbolos para
representar sus procesos en forma de Diagrama de flujo. Esto trajo como consecuencia que slo aquel
que conoca sus smbolos, los poda interpretar.
La simbologa utilizada para la elaboracin de diagramas de flujo es variable y debe ajustarse a las
normas preestablecidas universalmente para dichos smbolos o datos. Los siguientes smbolos son los
principales:

DESCRIPCIN DE LOS SMBOLOS


Flujo de datos: Indica la secuencia (flujo) de operacin del diagrama, que a su vez indican el
sentido y trayectoria.
Inicio o fin: Se utiliza para sealar el comienzo as como el final de un diagrama.
Tradicionalmente se colocan las palabras "INICIO" o "FIN" dentro de la figura para hacerlo ms
explcito.
Proceso: Es el smbolo ms comnmente utilizado. Se usa para representar un evento o
proceso determinado que es controlado dentro del diagrama de flujo en que se encuentra, sumar, restar
y cualquier operacin aritmtica es un proceso.
Decisin. Se utiliza para representar una pregunta o interrogante que tiene al menos dos
respuestas posibles, para cada una de las cuales hay un camino de continuacin del proceso. Lo
anterior hace que a partir de ste el proceso tenga dos o ms caminos posibles.
Conector: Representa un punto de conexin entre procesos. Se utiliza cuando es necesario
dividir un diagrama de flujo en varias partes o procesos dentro de la misma hoja, por razones de espacio
o simplicidad. Se usa para conectar procesos contenidos dentro de la misma hoja. La mayora de las
veces se utilizan nmeros en los crculos para hacer la referencia.
Entrada de datos: Representa una operacin de entrada. En este smbolo se indican los
valores iniciales que deber recibir el proceso. Esto se hace asignndoles letras o nombres de variables
para cada uno de los valores y anotando estas letras en el interior de la figura.

Despliegue de resultados: Este smbolo se utiliza para mostrar un resultado, el cual puede
representar la solucin al problema que se pretende resolver y que fue conseguida a travs del resto
del diagrama. Dentro de su interior se anotar la variable con el resultado final o el mensaje que
represente el resultado del algoritmo.
CARACTERSTICAS QUE DEBE CUMPLIR UN DIAGRAMA DE FLUJO
Existe siempre un camino que permite llegar a una solucin (finalizacin del algoritmo).
Existe un nico inicio del proceso.
Existe un nico punto de fin para el proceso de flujo (salvo del rombo que indica una
comparacin con dos caminos posibles).
DESARROLLO DEL DIAGRAMA DE FLUJO
Las siguientes son acciones previas a la realizacin del diagrama de flujo:
Identificar las ideas principales a ser incluidas en el diagrama de flujo.
Definir qu se espera obtener del diagrama de flujo.
Identificar quin lo emplear y cmo.
Establecer el nivel de detalle requerido.
Determinar los lmites del proceso a describir.
Los pasos a seguir para construir el diagrama de flujo son:
Establecer el alcance del proceso a describir. De esta manera quedar fijado el comienzo y el
final del diagrama. Frecuentemente el comienzo es la salida del proceso previo y el final la
entrada al proceso siguiente.
Identificar y listar las principales actividades/subprocesos que estn incluidos en el proceso a
describir y su orden cronolgico.
Si el nivel de detalle definido incluye actividades menores, listarlas tambin.
Identificar y listar los puntos de decisin.
Construir el diagrama respetando la secuencia cronolgica y asignando los correspondientes
smbolos.
Asignar un ttulo al diagrama y verificar que est completo y describa con exactitud
VENTAJAS DE LOS DIAGRAMA DE FLUJO
Favorecen la comprensin del proceso a travs de mostrarlo como un dibujo. El cerebro humano
reconoce fcilmente los dibujos. Un buen diagrama de flujo reemplaza varias pginas de texto.
Permiten identificar los problemas y las oportunidades de mejora del proceso. Se identifican los
pasos redundantes, los flujos de los re-procesos, los conflictos de autoridad, las
responsabilidades, los cuellos de botella, y los puntos de decisin.
Muestran las interfaces cliente-proveedor y las transacciones que en ellas se realizan,
facilitando a los empleados el anlisis de las mismas.
Son una excelente herramienta para capacitar a los nuevos empleados y tambin a los que
desarrollan la tarea, cuando se realizan mejoras en el proceso.
ESTRUCTURAS ALGORTMICAS
Las estructuras de operacin de programas son un grupo de formas de trabajo, que permiten,
mediante la manipulacin de variables, realizar ciertos procesos especficos que nos lleven a la solucin
de problemas. Estas estructuras se clasifican de acuerdo con su complejidad en:

Secuenciales: Para dar solucin a ste tipo de problemas, se emplea una serie de acciones
ejecutadas repetidamente en un solo orden secuencial.
Condicionales: Para dar solucin a ste tipo de problemas, se emplean acciones en las que la
ejecucin de alguna depender que se cumplan una o varias condiciones.
Cclicas: Son aquellas que para dar una solucin, es necesario utilizar el mismo conjunto de
acciones que puedan ejecutarse ms de una vez.

PSEUDOCDIGO
Mucho se habla del pseudocdigo en las carreras de Analistas de sistemas y Programacin. Pero no
existe mucha bibliografa al respecto. Digamos que el pseudocdigo es una forma de diagramar un
algoritmo para resolver un determinado problema, sin atenerse a ningn lenguaje de programacin en
especial.
En vez de escribir el programa directamente en un lenguaje de programacin determinado (C, Basic,
etc.), crearemos un borrador entendible para todos, para luego de tener bien en claro lo que se debe
hacer, pasar a la programacin propiamente dicha. No hay que confundirlo con un diagrama de flujo.
En el diagrama de flujo se representa el transcurso del programa, el momento donde se obtienen los
datos, cuando se procesan y el momento de presentar los resultados. Si bien son dos herramientas
que se utilizan en conjunto, cada una representa dos partes distintas en el diseo de un sistema.
El pseudocdigo se refiere a crear un cdigo para orientar a los programadores, pero sin la
sintaxis ni la estructura propia de ningn lenguaje. El pseudocdigo es la mezcla de lenguaje de
programacin y espaol(o ingls, o cualquier otro idioma) que se emplea, dentro de la programacin
estructurada, para realizar el diseo de un programa.
En esencial, el Pseudocdigo se puede definir como un lenguaje de especificaciones de algoritmos. El
Pseudocdigo utiliza palabras que indican el proceso a realizar.
Ventajas de utilizar un Pseudocdigo a un Diagrama de Flujo
1.
2.
3.
4.

Ocupan mucho menos espacio en el desarrollo del problema.


Permite representar de forma fcil operaciones repetitivas complejas.
Es ms sencilla la tarea de pasar pseudocdigos a un lenguaje de programacin formal.
Si se siguen las reglas de identacin se puede observar claramente los niveles en la
estructura del programa.
5. En los procesos de aprendizaje de los alumnos de programacin, estos estn mar cerca del
paso siguiente (codificacin en un lenguaje determinado, que los que se inician en esto con
la modalidad Diagramas de Flujo).
6. Mejora la claridad de la solucin de un problema.

You might also like