Información de interes...

Este BLOG tiene como finalidad divulgar, orientar y generar un espacio virtual de participación relacionado con la algorítmica y la programación. Diseñadores: Participantes (comunidad educativa) de la Sección I03-031 adscritos al Programa Nacional de Formación en Informática del Colegio Universitario Francisco de Miranda. Nota de los diseñadores: Toda la información recabada y suministrada en este blog es de carácter académico; en tal sentido, la que no es de autoria propia de los diseñadores refleja o indica la fuente de origen a fin de reconocer y agradecer por este medio los aportes teóricos y prácticos que nos han suministrados todas esas personas que de alguna u otra manera son colaboradores anónimos.

miércoles, 23 de febrero de 2011

Aspectos generales de la Algoritmíca

Unidad Curricular
ALGORÍTMICA Y PROGRAMACIÓN
Módulo
Trayecto
Trimestre
Código
Créditos
ALGORÍTMICA Y PROGRAMACIÓN
1
1
PIAP114
4

Algunos enlaces para consultar  (pulsar Ctrl + click para activar el vinculo)
·      Wikilibros alberga un libro o manual sobre Algoritmia.
·      Wikcionario tiene definiciones para algoritmo.
·      Portal de algoritmia
·      Tema 2 Algoritmos
·      Algoritmos

Actualizado al 12FEB2011

Algoritmos y Programas

Algoritmo: Disponible en: http://es.wikipedia.org/wiki/Algoritmo

A modo introductorio:
En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del latín, dixit algorithmus y éste a su vez del matemático persa al-Jwarizmi) es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema. En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos problemas. Algunos ejemplos se encuentran en los instructivos (manuales de usuario), los cuales muestran algoritmos para usar el aparato en cuestión o inclusive en las instrucciones que recibe un trabajador por parte de su patrón. También existen ejemplos de índole matemáticos, como el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para calcular el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un Sistema lineal de ecuaciones.

Concepto:
Un algoritmo permite mostrar la manera de llevar a cabo procesos y resolver mecánicamente problemas matemáticos o de otro tipo. Al igual que las funciones matemáticas, los algoritmos reciben una entrada y la transforman en una salida, comportándose como una caja negra. Sin embargo, no toda caja negra que convierta una entrada en una salida se puede considerar un algoritmo: como una secuencia ordenada, finita y definida (formalización de su comportamiento) de instrucciones. De este modo se puede seguir y predecir su comportamiento, a partir del seguimiento de esa secuencia de instrucciones, que como es ordenada y definida, no da lugar a ambigüedades.

Consideraciones:
El concepto de algoritmo, aunque similar y obviamente relacionado, no debe confundirse con el concepto de programa. Mientras el primero es la especificación de un conjunto de pasos (operaciones, instrucciones, órdenes,...) orientados a la resolución de un problema (método); en el  segundo, ese conjunto de operaciones son especificadas en un determinado lenguaje de programación y para un computador concreto, susceptible de ser ejecutado (o compilado o interpretado).

Características de los algoritmos:  (Según, Donald Knuth)
·      Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de pasos".
·      Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
·      Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".
·      Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".
·      Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel".

Medios de expresión de un algoritmo:
Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros.
Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.
La descripción de un algoritmo usualmente se hace en tres niveles:
·      Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
·      Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
·      Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.

Diagrama de flujo:
Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO.

Cuadro 1: Ejemplo de Diagrama De Flujo
Diagrama de flujo que expresa un algoritmo para calcular la raíz cuadrada de un número x









Pseudocódigo:
Pseudocódigo es la descripción de un algoritmo que asemeja a un lenguaje de programación pero con algunas convenciones del lenguaje natural. Tiene varias ventajas con respecto a los diagramas de flujo, entre las que se destaca el poco espacio que se requiere para representar instrucciones complejas. El pseudocódigo no está regido por ningún estándar. pseudo viene de falso y por ende es un código al que aunque es entendible no se aplica al proceso que debe realizar la maquina.

Cuadro 2: Ejemplo de pseudocódigo
Algoritmo Encontrar el máximo de un conjunto
función
//C es un conjunto no vacío de números//
// | C | es el número de elementos de C//
para hasta hacer
si entonces
devolver

Implementación.
 Muchos algoritmos son ideados para implementarse en un programa. Sin embargo, los algoritmos pueden ser implementados en otros medios, como una red neuronal, un circuito eléctrico o un aparato mecánico. Algunos algoritmos inclusive se diseñan especialmente para implementarse usando lápiz y papel.

Análisis de algoritmos.
Como medida de la eficiencia de un algoritmo, se suelen estudiar los recursos (memoria y tiempo) que consume el algoritmo. El análisis de algoritmos se ha desarrollado para obtener valores que de alguna forma indiquen (o especifiquen) la evolución del gasto de tiempo y memoria en función del tamaño de los valores de entrada.
El análisis y estudio de los algoritmos es una disciplina de las ciencias de la computación y, en la mayoría de los casos, su estudio es completamente abstracto sin usar ningún tipo de lenguaje de programación ni cualquier otra implementación; por eso, en ese sentido, comparte las características de las disciplinas matemáticas. Así, el análisis de los algoritmos se centra en los principios básicos del algoritmo, no en los de la implementación particular.

1 comentario:

  1. dafabet - Thauberbet.com
    dafabet, betting on dafabet horse racing and football worldwide. Dafabet betting 10cric guide and tips, horse racing betting tips, and latest betting odds for all 메리트 카지노 쿠폰 major

    ResponderEliminar