jueves, 7 de abril de 2016

DEFINICIÓN DE ALGORITMO

En matemáticas, lógica, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus y éste a su vez del matemático persa Al-Juarismi1 ) es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad.2 Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.1

En la vida cotidiana, se emplean algoritmos frecuentemente 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 patrón. Algunos ejemplos en matemática son el algoritmo de multiplicación, para calcular el producto, el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para obtener el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un sistema de ecuaciones lineales.


             DEFINICIÓN FORMAL DEL ALGORITMO 


En general, no existe ningún consenso definitivo en cuanto a la definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un cálculo o un problema abstracto, es decir, que un número finito de pasos convierten los datos de un problema (entrada) en una solución (salida).1 2 3 4 5 6 Sin embargo cabe notar que algunos algoritmos no necesariamente tienen que terminar o resolver un problema en particular. Por ejemplo, una versión modificada de la criba de Eratóstenes que nunca termine de calcular números primos no deja de ser un algoritmo.7
A lo largo de la historia varios autores han tratado de definir formalmente a los algoritmos utilizando modelos matemáticos. Esto fue realizado por Alonzo Church en 1936 con el concepto de "calculabilidad efectiva" basada en su cálculo lambda y por Alan Turing basándose en la máquina de Turing. Los dos enfoques son equivalentes, en el sentido en que se pueden resolver exactamente los mismos problemas con ambos enfoques.8 9 Sin embargo, estos modelos están sujetos a un tipo particular de datos como son números, símbolos o gráficas mientras que, en general, los algoritmos funcionan sobre una vasta cantidad de estructuras de datos.3 1 En general, la parte común en todas las definiciones se puede resumir en las siguientes tres propiedades siempre y cuando no consideremos algoritmos paralelos.




°Tiempo secuencial. Un algoritmo funciona en tiempo discretizado –paso a paso–, definiendo así una secuencia de estados "computacionales" por cada entrada válida (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 ordeny cada algoritmo es independiente de su implementación (los algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer orden son invariantes bajo isomorfismo.




°Exploración acotada. La transición de un estado al siguiente queda completamente determinada por una descripción fija y finita; es decir, entre cada estado y el siguiente solamente se puede tomar en cuenta una cantidad fija y limitada de términos del estado actual.



   REGLAS DE LA CONSTRUCCIÓN DE ALGORITMOS 



1. Un algoritmo es un conjunto de instrucciones donde llevas un orden para llegar a la solución del problema, son independientes de los lenguajes de programación, en cada problema el algoritmo puede escribirse y luego ejecutarse en un lenguaje.

2. Características para la construcción del algoritmo  Debe ser Preciso, porque cada uno de sus pasos debe indicar de manera precisa e inequívoca que se debe hacer.  Debe tener un limite, porque un algoritmo debe tener un número limitado de pasos.  Debe ser Definido, porque debe producir los mismos resultados para las mismas condiciones de entrada.  Puede tener cero o más elementos de entrada.  Debe producir un resultado. Los datos de salida serán los resultados de efectuar las instrucciones.

3. Características para la construcción del diagrama de flujo en un algoritmo  El diagrama debe tener un inicio y un fin y se representa con un ovalo  Las líneas utilizadas para indicar la dirección del diagrama deben ser rectas, verticales y horizontales y no deben ser inclinadas ni cruzadas.  Todas las líneas utilizadas para indicar la dirección del diagrama deben estar conectadas.

4.  El diagrama de flujo debe ser construido de arriba hacia abajo y de izquierda a derecha  Si el diagrama de flujo requiriera mas de una hoja para su construcción, debemos utilizar los conectores adecuados y enumerar las paginas convenientemente.  No puede llevar mas de una línea a un símbolo.

5. EJEMPLOS DE ALGORITMOS Calcular el área de un rectángulo  Inicio  Variable x,y,z  Pedir base  Leer x  Pedir altura  Leer y  Calcular la área z=(x)(y)  Imprimir el área en pantalla  Fin Inicio X,Y, Z Pedir base Pedir altura Z=(X)(Y) Z Fin

6. Receta del cereal  Inicio  Variable (L, P, CE, CU)  Escoger el cereal  Sacar la leche del refrigerador  Agarrar un plato de la cocina  Agarrar una cuchara de la cocina  Servir la leche y el cereal en el plato  Mezclar  Fin Inicio L,P,CE,CU Escoger el cereal Sacar la leche del refrigerador Agarrar un plato de la cocina Mezclar Fin Agarrar una cuchara de la cocina Servir la leche y el cereal en el plato

7. Calcular la suma de dos números  Inicio  Variable A, B, R  Leer A y B  Calcular la suma R=A + B  Imprimir el Resultado en pantalla  Fin Inicio A,B,R Leer A y B R=A+B R Fin






                         HERRAMIENTAS PARA CREAR UN ALGORITMO 

Para representar un algoritmo se debe utilizar algún método que permita independizar dicho algoritmo del lenguaje de programación elegido. Ello permitirá que un algoritmo pueda ser codificado indistintamente en cualquier lenguaje . Para conseguir este objetivo se precisa que el algoritmo sea representado gráfica o numéricamente , de modo que las sucesivas acciones no dependan de la sintaxis de ningún lenguaje de programación , sino que la descripción pueda servir fácilmente para su transformación en un programa , es decir ,su codificación.
Los métodos usuales para representar un algoritmo son:
  • Diagramas de FLUJO
  • PseudoCódigo
  • Diagrama N-S
Un diagrama de flujo (flowchart) es una de las técnicas de representación de algoritmo más antigua y a la vez más utilizada , aunque se empleo ha disminuido considerablemente , sobre todo desde la aparición de lenguajes de programación estructurados. Un diagrama de flujo es un diagrama que utiliza los símbolos (cajas) estándar mostrados en la figura y que tiene los pasos del algoritmo escritos en esas cajas unidas por flechas , denominadas líneas de flujo, que indican la secuencia en que se deben ejecutar.

FIGURA 1:
 



























La figura 2 es un diagrama de flujo básico.
FIGURA 2:
El diagrama anterior representa la resolución de un programa que deduce el salario neto de un trabajador a partir de la lectura del nombre, horas trabajadas, precio de la hora , y sabiendo que los impuestos aplicados son el 25 por 100 sobre el salario bruto.
Los símbolos estándar normalizados por ANSI (abreviatura de America National Standard Institute) son muy variados .


                  

            REGLAS PARA EL CURSO DE ALGORITMOS


El Diagrama de dibuja de arriba hacia abajo, las figuras se conectan con flechas, en caso de faltar espacio en el papel, se usan conectores para saber donde continua el diagrama.

En un Símbolo de Entrada/Salida debe especificarse si se esta usando para entrada o salida en el encabezado del símbolo

El Símbolo de entrada puede representar la entrada de varias variables a la vez pero deben estar separadas por comas
 
El símbolo de salida puede representar la salida de varias variables a la vez pero deben estar separadas por comas





El Proceso Puede incluir hasta 3 procesos separados por línea



Todo diagrama debe tener un terminal de INICIO y uno de FINAL
Los Rombos de Decisión solo pueden tener una flecha de llegada, pero deben tener 2 salidas obligatorias y el participante debe indicar con un SI el flujo en caso el TEST sea verdadero y con un NO el flujo a seguir en caso el TEST sea Falso.

4 comentarios: