Sunteți pe pagina 1din 16

Historia de la algoritmia

Algoritmo, según la Real Academia, es un conjunto ordenado y finito de operaciones que


permite encontrar la solución a un problema cualquiera. Ejemplos sencillos de algoritmos son
una receta de cocina o las instrucciones para armar una bicicleta. Los primeros algoritmos
registrados datan de Babilonia, originados en las matemáticas como un método para resolver
un problema usando una secuencia de cálculos más simples. Esta palabra tiene su origen en el
nombre de un famoso matemático y erudito árabe del siglo IX, Al-Khorezmi, a quien también le
debemos las palabras guarismo y álgebra (ver anexo). Actualmente algoritmo se usa para
denominar a la secuencia de pasos a seguir para resolver un problema usando un computador
(ordenador). Por esta razón, la algoritmia o ciencia de los algoritmos, es uno de los pilares de la
informática (ciencia de la computación en inglés). En este artículo veremos distintos tipos de
algoritmos y distintas técnicas para resolver problemas a través de varios ejemplos, muchos de
ellos no computacionales. Todos los ejemplos resuelven variantes de un problema genérico: la
búsqueda de información, un dilema que tenemos a diario. El objetivo final será encontrar el
algoritmo que utilice menos operaciones o gaste menos recursos, dependiendo del caso.

Los algoritmos fueron creados con la necesidad de resolver problemas matemáticos, sus inicios
se dan con la creación de las reglas de sumar, multiplicar y dividir números decimales
(Mohammed al-Khowarizmimatemático persa), de ahí nace el nombre de la “Algoritmo”, Su
apellido fue traducido al latín como Algorismus y posteriormente paso al español como
Algoritmo; más adelante Euclides, gran matemático griego utilizo algoritmos cuando invento el
método para encontrar el máximo común divisor de dos números; y por último se puede decir
que el gran padre de la algoritmia es Niklaus Wirth el cual tuvo el gran invento de Pascal. Los
algoritmos fueron creados con el fin de utilizarlos para resolver problemas, para luego llevarlos
a un computador mediante un lenguaje FAVA - Formación en Ambientes Virtuales de
Aprendizaje Introducción a la Algoritmia SENA - Servicio Nacional de Aprendizaje 4 de
programación; para realizar un algoritmo se debe establecer una metodología de desarrollo,
una de estas es la llamada resolución de problemas, la cual permite realizar un diseño
organizado del algoritmo.
Diagrama de flujo

Los diagramas de flujo (o flujogramas) son diagramas que emplean símbolos gráficos para
representar los pasos o etapas de un proceso. También permiten describir la secuencia de los
distintos pasos o etapas y su interacción. Las personas que no están directamente involucradas
en los procesos de realización del producto o servicio, tienen imágenes idealizadas de los
mismos, que pocas veces coinciden con la realidad. La creación del diagrama de flujo es una
actividad que agrega valor, pues el proceso que representa está ahora disponible para ser
analizado, no sólo por quienes lo llevan a cabo, sino también por todas las partes interesadas
que aportarán nuevas ideas para cambiarlo y mejorarlo.

Ventajas de los Diagramas de Flujo

Favorecen la comprensión del proceso a través de mostrarlo como un dibujo. El cerebro


humano reconoce fácilmente los dibujos. Un buen diagrama de flujo reemplaza varias páginas
de texto. Permiten identificar los problemas y las oportunidades de mejora del proceso. Se
identifican los pasos redundantes, los flujos de los reprocesos , los conflictos de autoridad, las
responsabilidades, los cuellos de botella, y los puntos de decisión. Muestran las interfases
cliente-proveedor y las transacciones que en ellas se realizan, facilitando a los empleados el
análisis de las mismas. Son una excelente herramienta para capacitar a los nuevos empleados y
también a los que desarrollan la tarea, cuando se realizan mejoras en el proceso.

¿Qué Símbolos se Emplean en los Diagramas de Flujo?

Los símbolos tienen significados específicos y se conectan por medio de flechas que indican el
flujo entre los distintos pasos o etapas. Los símbolos más comunes son :

Desarrollo del Diagrama de Flujo

Las siguientes son acciones previas a la realización del diagrama de flujo : Identificar a los
participantes de la reunión donde se desarrollará el diagrama de flujo. Deben estar presentes
el dueño o responsable del proceso, los dueños o responsables del proceso anterior y
posterior y de otros procesos interrelacionados, otras partes interesadas. Definir que se espera
obtener del diagrama de flujo. Identificar quién lo empleará y cómo. Establecer el nivel de
detalle requerido. Determinar los límites 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 están incluidos en el proceso a describir y su orden
cronológico. Si el nivel de destalle definido incluye actividades menores, listarlas también.
Identificar y listar los puntos de decisión. Construir el diagrama respetando la secuencia
cronológica y asignando los correspondientes símbolos. Asignar un título al diagrama y
verificar que esté completo y describa con exactitud el proceso elegido.

Los diagramas de flujo se utilizan en el diseño y documentación de procesos complejos o


programas. Como otros tipos de diagrama, ayudan a visualizar lo que está pasando y de esa
manera ayudan al espectador a entender un proceso, y tal vez también ha encontrar defectos,
cuellos de botella, y otros problemas. Hay muchos  tipos diferentes de diagramas de flujo, y
cada tipo tiene su propio repertorio de cajas y convenciones de notación.

Los dos tipos más comunes de cajas en un diagrama de flujo son:


 A un paso de procesamiento, generalmente se le llama actividad, y se denota como
una caja rectangular.

 A una decisión, se le denota generalmente como un diamante.

Un diagrama de flujo es descrito


como"multifuncional" cuando la página se divide en diferentes "carriles"  que describen el
control de las diferentes unidades organizativas. Un símbolo que aparece en un "carril" está
bajo el control de esa unidad organizativa. Esta técnica permite al autor localizar la
responsabilidad de realizar una acción o de tomar una decisión correcta, mostrando la
responsabilidad de cada unidad organizacional para diferentes partes de un mismo proceso.

Los Diagramas de flujo representan ciertos aspectos de los procesos y por lo general se
complementan con otros tipos de diagrama. Por ejemplo, Kaoru Ishikawa definió el diagrama
de flujo como una de las siete herramientas básicas de control de calidad, al lado del
histograma, diagrama de Pareto, hoja de verificación, gráfico de control, diagrama de causa y
efecto, y el diagrama de dispersión. De manera similar, en UML, un lenguaje estándar de
modelado que se utiliza en el desarrollo de software, el diagrama de actividad (que es un tipo
de diagrama de flujo)  es sólo uno de los muchos tipos de diagramas diferentes.

Historia

El primer método estructurado para documentar el flujo de un proceso, el "diagrama de flujo


del proceso", fue presentado por Frank Gilbreth a los miembros de la Sociedad Americana de
Ingenieros Mecánicos (ASME) en 1921 en la exposición  “Process Charts - First Steps in Finding
the One Best Way”.

Las Herramientas de Gilbreth rápidamente encontron su aplicación en los programas de


ingeniería industrial. A principios de 1930, un ingeniero industrial, Allan H. Mogensen comenzó
la formación de personas de negocios en el uso de algunas de las herramientas de la ingeniería
industrial en sus "Work Simplification Conferences en Lake Placid, New York.

Douglas Hartree explica que Herman Goldstine y John von Neumann elaboró un diagrama de
flujo (originalmente, el diagrama) para planificar los programas de ordenador. Su versión
contemporánea está respaldado por los ingenieros de IBM y por colecciones personales de
Goldstine. Los diagramas de flujo de programación originales de Goldstine y von Neumann se
puede ver en su informe no publicado, "Planificación y codificación de problemas para un
instrumento de computación electrónica, Parte II, Volumen 1" (1947), que se reproduce en las
obras completas de von Neumann. 

Los diagramas de flujo solía ser un medio popular para describir algoritmos computacionales y
todavía se utilizan para este fin. Técnicas modernas tales comodiagramas de actividad de
UML puede ser considerado como extensiones del diagrama de flujo. En la década de 1970 la
popularidad de los diagramas de flujo como método propio disminuyó cuando las terminales
de ordenador y lenguajes de programación de tercera generación se convirtieron en
herramientas comunes, ya que los algoritmos se pueden expresar de manera mucho más
concisa como código fuente de un lenguaje, y también porque era más probable que el diseño
de algoritmos usando diagramas de flujo resulte en código-espagueti, debido a la necesidad de
los "gotos" para describir saltos arbitrarios en el control flujo del programa.

Bloques de Construcción de Diagramas de Flujo

Símbolos

Un diagrama de flujo típico de los antiguos libros de texto básicos de informática puede tener
los siguientes tipos de símbolos:

Símbolos Inicio y Fin


Representado como círculos, óvalos o
rectángulos redondeados, que normalmente contiene la palabra "Inicio" o "Fin", u otra frase
que marca el inicio o el final de un proceso, como "enviar consulta" o "recibir producto".

Flechas

Muestran el  "control de flujo". Una flecha que viene de un símbolo y termina en otro símbolo
indica que el control pasa al símbolo que la flecha apunta. La línea de la flecha puede ser
continua o discontinua. El significado de la flecha con línea de trazos puede diferir de un
diagrama de flujo a otro y puede ser definido en la leyenda.

Pasos genéricos de procesamiento

Son Representados como rectángulos. Ejemplos: "Añadir 1 a X", "reemplazar parte


identificada", "guardar cambios", etc.

Subrutinas

Son representados como rectángulos con doble borde vertical, los cuales se utilizan para
mostrar los pasos de procesamiento complejos que pueden ser detallados en un diagrama de
flujo separado.

Entrada / Salida

Representado como un paralelogramo. Ejemplos: Obtener X por parte del usuario, mostrar en
pantalla X.

Condicional o decisión
Representado como un diamante (rombo) mostrando donde una decisión se debe tomar,
comúnmente se realiza una pregunta que debe tener un tipo de respuesta Sí/No. El símbolo
condicional tiene la peculiaridad de que tiene dos flechas que salen de él, correspondiente al
Sí o Verdadero, y  No o falso. (Las flechas siempre deben ser etiquetadas.) Se pueden utilizar
más de dos flechas, pero esto es normalmente un claro indicador de que una decisión
compleja está siendo tomada, en cuyo caso es posible que tenga que ser descompuesto aún
más.

Conectores con etiqueta

Son Representado por una etiqueta en el interior de un círculo, se emplean en los diagramas
complejos o multi-hoja para sustituir a las flechas. Para cada etiqueta, el conector de "flujo de
salida" siempre debe ser único, pero puede haber cualquier cantidad de conectores de "flujo
entrada". En este caso, un punto de unión en el flujo de control está implícita.

Símbolo de concurrencia

Representada por una doble línea transversal con cualquier número de flechas de entrada y
salida. Estos símbolos se utilizan cada vez que dos o más flujos de control deben funcionar
simultáneamente. Los flujos de salida se activan simultáneamente cuando todos los flujos de
entrada han alcanzado el símbolo de concurrencia.

Es importante recordar que debe mantener estas conexiones lógicas en orden. Todos los
procesos deben fluir de arriba hacia abajo y de izquierda a derecha.

Tipos de diagrama de flujo

Sterneckert (2003) sugirió que los diagramas de flujo pueden ser modelados desde la
perspectiva de diferentes grupos de usuarios (por ejemplo, administradores, analistas de
sistemas y empleados) y que hay cuatro tipos generales: 

 Diagramas de flujo de documentos, mostrando los controles sobre el flujo de un


documento a través de un sistema.

 Diagramas de flujo de datos, mostrando los controles sobre un flujo de datos de un


sistema.

 Diagramas de flujo de sistemas  que muestran los controles a nivel físico o de recursos.

 Diagrama de flujo de programa, que muestra los controles en un programa dentro de


un sistema.

Observe que cada tipo de diagrama de flujo que se centra en algún tipo de control, en lugar de
en el propio flujo particular.
Software

Cualquier programa de dibujo puede ser usado para crear diagramas de flujo, pero éstos no
tienen un modelo de datos subyacente para compartir datos con bases de datos u otros
programas, como los sistemas de gestión de proyectos y hojas de cálculo.

Algunas herramientas ofrecen un apoyo especial para dibujar diagramas de flujo. Muchos
paquetes de software existentes que pueden crear diagramas de flujo de forma automática, ya
sea directamente desde el código fuente, o de un lenguaje de descripción de diagrama de
flujo.

Programas para simular (ejecutar) diagramas de flujo:


FreeDFD 1.1 es una aplicación que permite crear diagramas de flujo de datos, que se pueden
utilizar para representar gráficamente una amplia gama de algoritmos, ejecutarlos y
depurarlos si se encuentran errores.

PSeInt es una herramienta para aprender la lógica de programación. Mediante la utilización de


un simple y limitado pseudo-lenguaje, intuitivo y en español, permite comenzar a comprender
conceptos básicos y fundamentales de un algoritmo computacional.
 

Seudocódigo

¿Que es el Pseudocódigo?

 El pseudocódigo (falso lenguaje) es una descripción de alto nivel de un algoritmo queemplea
una mezcla de lenguaje natural con algunas convenciones sintácticas propias delenguajes de
programación, como asignaciones, ciclos y condicionales. Es utilizado paradescribir algoritmos
en libros y publicaciones científicas, y como producto intermediodurante el desarrollo de un
algoritmo.El pseudocódigo está pensado para facilitar a las personas el entendimiento de
unalgoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en
unaimplementación. Programadores diferentes suelen utilizar convenciones distintas,
quepueden estar basadas en la sintaxis de lenguajes de programación concretos. Sinembargo,
el pseudocódigo en general es comprensible sin necesidad de conocer outilizar un entorno de
programación específico, y es a la vez suficientementeestructurado para que su
implementación se pueda hacer directamente a partir de él.
¿Para que sirve el Pseudocódigo?

Sirve para escribir programas de computadora en lenguaje natural de tal manera que sefacilite
la comprensión, prueba y posterior codificación en un lenguaje de programaciónespecífico.

El pseudocodigo  sirve para guiar al programador en el desarrollo de un programa, pero sin


las sintaxis ni la estructura de un lenguaje determinado. Siendo un pocos mas básico es el
plano con el cual el desarrollador se guiara para llevar acabo el programa, para ejemplificarlo
mas un plano dice que va una puerta, pero no explica de que color o material que ira.

Determina los pasos a seguir, es decir primero validación o que paso ira antes que otro. Deben
poseer un inicio y fin del proceso. 

El rol de que realiza el pseudocodigo  generalmente es en analista, esto es entendible ya que


dentro de su rol se comunica con el cliente y define lo que el programa debería hacer, no en
todos los casos de usos debería poseerpseudocodigo si se quiere, pero
esto ayudaría al desarrollador a entender mas que es lo
especificado. También muchos desarrolladores lo utilizan como herramienta en casos
complejos.

Es entendible que el pseudocodigo siempre se haga antes que el programa ya que demostrara


la estructura del mismo, datos de entrada, datos de salida, etc. De esta manera estaremos
definiendo el algoritmo y/o proceso.

Pseudocodigo - Características

Las características del pseudocodigo son:

 Ser definido: Sin ambigüedad, cada paso del algoritmo debe indicar la acción a realizar
sin criterios de interpretación.

 Ser finito: Un número específico y numerable de pasos debe componer al algoritmo, el


cual deberá finalizar al completarlos.

 Tener cero o más entradas: Datos son proporcionados a un algoritmo como insumo (o
estos son generados de alguna forma) para llevar a cabo las operaciones que
comprende.

 Tener una o más salidas: Debe siempre devolver un resultado; de nada sirve un
algoritmo que hace algo y nunca sabemos que fue. El devolver un resultado no debe
ser considerado como únicamente “verlos” en forma impresa o en pantalla, como
ocurre con las computadoras. Existen muchos otros mecanismos susceptibles de
programación que no cuentan con una salida de resultados de esta forma. Por salida
de resultados debe entenderse todo medio o canal por el cual es posible apreciar los
efectos de las acciones del algoritmo.
 Efectividad: El tiempo y esfuerzo por cada paso realizado debe ser preciso, no usando
nada más ni nada menos que aquello que se requiera para y en su ejecución.

Pseudocodigo - ¿Para que sirve el Pseudocodigo?

Esto ya lo explicamos arriba pero dejemos lo claro, el pseudocodigo sirve para describir lo que


debe hacer el programa, pero sin sintaxis o estructura de un lenguaje
de programación especifico.

Un ejemplo

EJECUTAR:

 Para realizar una operación o calculo.

Variable:

En programación, una variable es un espacio de memoria reservado para almacenarun valor


que corresponde a un tipo de dato soportado por el lenguaje de programación. Unavariable es
representada y usada a través de una etiqueta (un nombre) que le asigna unprogramador o
que ya viene predefinida.

Diagrama:

Un diagrama de flujo es una representación gráfica de un algoritmo o proceso. Seutiliza en


disciplinas como la programación, la economía, los procesos industriales y lapsicología
cognitiva. Estos diagramas utilizan símbolos con significados bien definidos querepresentan los
pasos del algoritmo, y representan el flujo de ejecución mediante flechas queconectan los
puntos de inicio y de término.
EJEMPLOS

1.

 Diseñar un algoritmo en donde se pida la edad de una persona; si es mayor de edad


debeaparecer un mensaje indicándolo.

Pseudocódigo:

1)ESCRIBIR: “Digita tu edad:”

2) LEER: edad

3)  SI edad > 18

ESCRIBIR:”Eres mayor de edad”

  SINO

ESCRIBIR:”Eres menoR de edad”

Fin si

Algoritmos

ALGORITMO

Un algoritmo es una serie de operaciones detalladas y no ambiguas. En otraspalabras

un algoritmo es un conjunto de reglas para resolver una cierta clase de problemas

.Un algoritmo es el
medio

 por el que se explica cómo puede resolverse un problena, medianteaproximaciones paso a


paso. Se puede formular de muchas formas con el cuidado de que noexista ambigüedadAl
conjunto formado por la representación de datos utilizada y el algoritmo mismo sellama

 programa

CARACTERISTICAS DE LOS ALGORITMOS

 Las principales características de los algoritmos son:1.

El algoritmo debe ser sencillo e indicar el orden de realización de cada paso.2.

Un algoritmo debe estar definido.3.

El algoritmo de ser finito.La palabra algoritmo se deriva de la traducción al latín de la


palabraárabe

alkhowarizmi

, nombre de un matemático y astrónomo árabe que escribió un tratadosobre manipulación de


números y ecuaciones en el siglo IX.4.

Un algoritmo es una serie de pasos organizados que describe el proceso que se


debe seguir,para dar solución a un problema específico.5.

TIPOS DE ALGORITMOSExisten dos tipos y son llamados así por su naturaleza:

Cualitativos

: Son aquellos en los que se describen los pasos utilizando palabras.

Cuantitativos

: Son aquellos en los que se utilizan cálculos numéricos para definir lospasos del proceso.

Lenguajes Algorítmicos
 Un Lenguaje algorítmico es una serie de símbolos y reglas que se utilizan para describir
demanera explícita un proceso.

Tipos de Lenguajes Algorítmicos

Gráficos: Es la representación gráfica de las operaciones que realiza un algoritmo (diagrama


deflujo).

No Gráficos: Representa en forma descriptiva las operaciones que debe realizar


un algoritmo(pseudocodigo).INICIOEdad: EnteroESCRIBA

“cual es tu edad?”

 Lea EdadSI Edad >=18 entoncesESCRIBA

“Eres mayor de Edad”

 FINSI

Qué es un algoritmo?

 
 

Un Algoritmo es una serie ordenada de instrucciones, pasos o procesos que llevan a la


soluciónde un determinado problema. Los hay tan sencillos y cotidianos como seguir la receta
delmédico, abrir una puerta, lavarse las manos, etc; hasta los que conducen a la solución
deproblemas muy complejos.Los Algoritmos permiten describir claramente una serie de
instrucciones que debe realizar elcomputador para lograr un resultado previsible. Vale la pena
recordar que un procedimientode computador consiste de una serie de instrucciones muy
precisas y escritas en un lenguajede programación que el computador entienda, en este curso
utilizaremos el entorno dedesarrollo de Scratch para programar nuestros algoritmos.En la
naturaleza hay muchos procesos que puedes considerar como Algoritmos ya que
tienenprocedimientos y reglas. Incluso, muchas veces no somos conscientes de ellos.Por
ejemplo, el proceso digestivo es un concepto de algoritmo con el que convivimos a diariosin
que nos haga falta una definición precisa de este proceso. El hecho de que conozcamoscómo
funciona el sistema digestivo, no implica que los alimentos que consumimos nosalimenten más
o menos. La familiaridad de lo que sucede día a día nos impide ver muchosalgoritmos que
pasan a nuestro alrededor. Procesos naturales como la gestación, lasestaciones, la circulación
sanguínea, los ciclos planetarios, etc, son algoritmos naturales quegeneralmente
pasan desapercibidos.

Ejemplo:
 Lavarnos los dientes es un procedimiento que realizamos varias veces al día. Veamos la
formade expresar este procedimiento como un Algoritmo:1. Tomar la crema dental2. Destapar
la crema dental3. Tomar el cepillo de dientes4. Aplicar crema dental al cepillo5. Tapar la crema
dental6. Abrir la llave del lavamanos7. Remojar el cepillo con la crema dental8. Cerrar la llave
del lavamanos9. Frotar los dientes con el cepillo10. Abrir la llave del lavamanos11. Enjuagarse
la boca12. Enjuagar el cepillo13. Cerrar la llave del lavamanos14. Secarse la cara y las manos
con una toalla

Otro ejemplo:

 Veamos que algo tan común como los pasos para cambiar una bombilla (foco) sepueden
expresar en forma de Algoritmo:

1.

Ubicar una escalera o un banco debajo dela bombilla a cambiar2.

Tomar una bombilla nueva3.

Subir por la escalera o al banco4.

Sujetar y girar la bombilla a cambiar haciala izquierda hasta retirarla del plafón.5.

Enroscar la bombilla nueva hacia laderecha en el plafón hasta apretarla.6.

Bajar de la escalera o del banco7.

Fin

S-ar putea să vă placă și