domingo, 4 de noviembre de 2012

La base de los programas, El Algoritmo...





Tratemos de diferentes aunque sea un de la semana... Bienvenidos


¿Qué es un algoritmo?


Nuestra herramienta mental más importante para competir con la complejidad es la abstracción. Por tanto, un problema no deberá considerarse inmediatamente en términos de instrucciones de un lenguaje, sino de naturales del problema mismo, abstraídos de alguna manera. [Niklaus Wirth, Creador del Lenguaje Pascal]

Algunas definiciones de fácil entender:
*Conjunto ordenado y finito de pasos que permite hallar la solución de un problema.
*Conjunto de sentencias / instrucciones en lenguaje nativo, los cuales expresan la lógica de un programa.
*Conjunto de instrucciones concretas y detalladas mediante el cual se consigue una acción determinada.

Deficiones conceptuales:
*Secuencia finita de instrucciones, reglas o pasos que describen de forma precisa las operaciones de un ordenador debe realizar para llevar a cabo un tarea en un tiempo mas finito. [Donald E. Knuth, 1968]
*Descripcion de un esquema de comportamiento expresado mediante un reportorio finito de acciones y de informaciones elementales, identificadas, bien comprendidas y realizables a priori. Este repertorio se denomica lexico [Pierre Scholl, 1988]
*Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solución o indicar la falta de esta a un problema en un tiempo determinado. [Rodolfo Quispe-Otazu, 2004]

Caracteristicas:
Las características fundamentales que debe cumplir todo algoritmo 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.


Elementos que constituyen un algoritmo:
*Datos: Son elementos de entrada. Hay veces que la palabra informacion y dato son sinónimos. Puesto que la información obtenida de un proceso, termina siendo dato en otra acción y desencadena otro resultado.
TIPOS:
-Númericos: puden ser tanto como enteros o reales.
-Alfanúmericos o Caracter: Son tantos las letras más los números y los simbólos. Cabe destacar que sí es un ´numero y esta definido como alfanúmerico no se podra utilizar parahacer operaciones aritmeticas.
-Lógicas: Es una variable que puede adquirir solamente los valores de verdad. Verdadero o falso.
-Conjunto: Permite crear un grupo de datos que necesitaremos. Por ej: Conjunto de vocales: {"a";"e";"i";"o";"u"}
-Puntero: Son direcciones de memorias que nos facilita el acceso a la información.

Cabe destacar que los distintos tipos puden ser denóminadas como constantes (aquellos datos que dentro del algoritmo no tengo permiso de camiar) o variables (son datos que pueden tomar diferentes valores durante la ejecución del programa).

*Estado: Observación de una accion en un momento determinado para saber como se comporta cada Acción. Interesa observar el estado inicial y final, pero son también importantes los estados intermedios porque estos van a determinar los problemas, si hay. Al obsevar estos, presenciamos como un dato se transforma en una información.

Después de aclarar estos conceptos, podemos decir que el algoritmo esta dividido en 2 partes, "ambiente" y "algoritmo".

En el ambiente se aclaran los elementos que utilizaremos (datos) y en el algoritmo nuestroos pasos.

Acá les dejo una imagen del algoritmo de una suma:

No hay comentarios.:

Publicar un comentario