You are on page 1of 4

Diagramas de flujo

El diagrama de flujo es una de las tcnicas de representacin de algoritmos ms antigua y tambin ms


utilizada, al menos entre principiantes y para algoritmos sencillos.
Un diagrama de flujo o flowchart es un grfico en el que se utilizan smbolos (o cajas) para representar
los pasos del algoritmo. Las cajas estn unidas entre s mediante flechas, llamadas lneas de flujo, que
indican el orden en el que se deben ejecutar para alcanzar la solucin.
Los smbolos de las cajas estn estandarizados y son muy variados. En la tabla siguiente aparecen los ms
sencillos de usar.




Consideremos el ejemplo anterior: la representacin del algoritmo que calcula el rea y el permetro de un
rectngulo mediante un diagrama de flujo. Antes, tengamos en cuenta que:
los valores de base y altura los introducir el usuario del programa a travs del teclado; as, el
programa servir para cualquier rectngulo
despus se realizarn los clculos necesarios
los resultados, rea y permetro, deben mostrarse en un dispositivo de salida (por defecto, la
pantalla) para que el usuario del programa vea cul es la solucin
Esta estructura en 3 pasos es muy tpica de todos los algoritmos: primero hay una entrada de datos, luego
se hacen clculos con esos datos, y por ltimo se sacan los resultados.


Pseudocdigo
El pseudocdigo es un lenguaje simplificado de descripcin de algoritmos. El paso desde el pseudocdigo
hasta el lenguaje de programacin real (por ejemplo, C), es relativamente fcil. Adems, la descripcin de
algoritmos en pseudocdigo ocupa mucho menos espacio que su equivalente con un diagrama de flujo,
por lo que lo preferiremos a la hora de disear algoritmos complejos.
El pseudocdigo es bastante parecido a la mayora de los lenguajes de programacin reales, pero no tiene
unas reglas tan estrictas, por lo que el programador puede trabajar en la estructura del algoritmo sin
preocuparse de las limitaciones del lenguaje final
El pseudocdigo utiliza ciertas palabras reservadas para representar las acciones del programa. Estas
palabras originalmente estn en ingls (y se parecen mucho a las que luego emplean los lenguajes de
programacin
algoritmo rectngulo
inicio
leer (base)
leer (altura)
rea = base * altura
permetro = 2 * base + 2 * altura
escribir (rea)
escribir (permetro)
fin



ALGORITMO

El trmino algoritmo proviene del matemtico Persa Muhammad ibn Musa al-Khwarizmi, que vivi
aproximadamente entre los aos 780 y 850 d.C.
En matemticas, ciencias de la computacin y disciplinas relacionadas, un algoritmo (del latn, dixit
algorithmus
[
es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que
permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien lo ejecute. Dados
un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una
solucin.
En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver problemas. Algunos
ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones
que recibe un trabajador por parte de su patrn. Algunos ejemplos en matemticas son el algoritmo de la
divisin para calcular el cociente de dos nmeros, el algoritmo de Euclides para obtener el mximo
comn divisor de dos enteros positivos, o el mtodo de Gauss para resolver un sistema lineal de
ecuaciones.


Caractersticas principales y definicin formal


En general, no existe ningn consenso definitivo en cuanto a la definicin formal de algoritmo. Muchos
autores los sealan como listas de instrucciones para resolver un problema abstracto, es decir, que un
nmero finito de pasos convierten los datos de un problema (entrada) en una solucin (salida). Sin
embargo cabe notar que algunos algoritmos no necesariamente tienen que terminar o resolver un
problema en particular.
En resumen, un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso se pueda describir
sin ambigedad y sin hacer referencia a una computadora en particular, y adems tiene un lmite fijo en
cuanto a la cantidad de datos que se pueden leer/escribir en un solo paso.
Un algoritmo debe cumplir estas condiciones:


Finitud: el algoritmo debe acabar tras un nmero finito de pasos. Es ms, es casi
fundamental que sea en un nmero razonable de pasos
Definibilidad: el algoritmo debe definirse de forma precisa para cada paso, es decir, hay que
evitar toda ambigedad al definir cada paso. Puesto que el lenguaje humano es impreciso,
los algoritmos se expresan mediante un lenguaje formal, ya sea matemtico o de
programacin para un computador.
Entrada: el algoritmo tendr cero o ms entradas, es decir, cantidades dadas antes de
empezar el algoritmo. Estas cantidades pertenecen adems 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 interpretacin por el computador.
Salida: el algoritmo tiene una o ms salidas, en relacin con las entradas.
Efectividad: se entiende por esto que una persona sea capaz de realizar el algoritmo de
modo exacto y sin ayuda de una mquina en un lapso de tiempo finito.
Un algoritmo tiene tres propiedades


Tiempo secuencial. Un algoritmo funciona en tiempo discretizado paso a paso, definiendo as
una secuencia de estados "computacionales" por cada entrada vlida (la entrada son los datos
que se le suministran al algoritmo antes de comenzar).
Estado abstracto. Cada estado computacional puede ser descrito formalmente utilizando una
estructura de primer orden y cada algoritmo es independiente de su implementacin (los
algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer orden
son invariantes bajo isomorfismo.
Exploracin acotada. La transicin de un estado al siguiente queda completamente determinada
por una descripcin fija y finita; es decir, entre cada estado y el siguiente solamente se puede
tomar en cuenta una cantidad fija y limitada de trminos del estado actual.



Implementacin de algoritmos


En programacin, los algoritmos se implementan en forma de sentencias en algn lenguaje de
programacin. De esta manera, la forma de escribir los algoritmos depende del lenguaje de programacin,
y del paradigma usado.
Los algoritmos tambin pueden representarse grficamente empleando diagramas de flujo o formas
similares. De esta manera, son fcilmente comprensibles, especialmente para personas que no son
programadores. Tambin, de esta manera, los algoritmos son ms "universales", pues no dependen de un
lenguaje de programacin especfico.

Los algoritmos tambin pueden escribirse en pseudocdigo, lo que tambin los hace fciles de entender.
Se hacen intentos para que las computadoras interpreten y ejecuten los diagramas de flujo y los
pseudocdigos, pero no logran la flexibilidad, potencia y velocidad de los algoritmos puramente escritos
en un lenguaje de programacin especfico.
Un algoritmo tambin puede expresarse en lenguaje natural, aunque esto puede traer ambigedades e
interpretaciones errneas (la ambigedad es propia del lenguaje humano).





Algoritmos en programacin

Un programa de computadora es un algoritmo que le dice a la computadora los pasos especficos para
llevar acabo una tarea. Los algoritmos son rigurosamente definidos para que la computadora pueda
interpretarlos. El orden en que se ejecuta cada uno de los pasos que constituyen un algoritmo es
fundamental. El orden ms bsico es de arriba hacia abajo, ejecutndose una instruccin tras otra de un
cdigo. Pero un algoritmo puede variar en su flujo u orden de ejecucin de pasos dependiendo de los
valores de inicio o que entran durante su ejecucin. El flujo es manejado por las estructuras de control.

You might also like