Buscar

jueves, 1 de octubre de 2015

Conceptos de Algoritmos



Podemos encontrar muchas definiciones de algoritmo en los textos de programación, todas ellas muy similares:


Secuencia finita de instrucciones, reglas o pasos que describen de forma precisa las operaciones que un ordenador debe realizar para llevar a cabo un tarea en un tiempo mas finito. Descripción de un esquema de comportamiento expresado mediante un repertorio finito de acciones y de informaciones elementales, identificadas, bien comprendidas y realizables a priori. Este repertorio se denomica lexico 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.

En un aspecto más general:

Conjunto ordenado y finito de pasos que permite hallar la solución de un problema.
•Una secuencia de pasos que conducen a la realización de una tarea.
•Descripción exacta de la secuencia en que se ha de realizar un conjunto de actividades tendientes a resolver un determinado tipo de problema o procedimiento.
•Conjunto de sentencias / instrucciones en lenguaje nativo, los cuales expresan la lógica de un programa.

Características de un Algoritmo:

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 formapara 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

La definición de un algoritmo debe describir tres partes : Entrada, Proceso y Salida.



Ejemplo:
Diseñar un algoritmo para cambiar una llanta a un coche.
Inicio.
Traer una gata.
Levantar el coche con la gata.
Aflojar tornillos de las llantas.
Sacar los tornillos de las llantas.
Quitar la llanta.
Poner la llanta de repuesto.
Poner los tornillos.
Apretar los tornillos.
Bajar la gata.
Fin.

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 elementos naturales del problema mismo, abstraídos de alguna manera. [Niklaus Wirth, Creador del Lenguaje Pascal]



Algoritmos Cotidianos

Son todos aquellos algoritmos que nos ayudan a resolver problemas diarios y que hacemos casi sin darnos cuenta que estamos siguiendo una metodología para resolverlos. 



Algunos ejemplos son:

Un cliente ejecuta un pedido a una fábrica. La fábrica examina en su banco de datos la ficha del cliente, si el cliente es solvente entonces la empresa acepta el pedido, en caso contrario rechazar el pedido.



Pasos del algoritmo:

Inicio.
Leer el pedido.
Examinar ficha del cliente.
Si el cliente es solvente aceptar pedido, en caso contrario rechazar pedido.
Fin.

Lenguajes Algorítmicos

•Los algoritmos pueden describirse utilizando diversos lenguajes. Cada uno de estos lenguajes permiten describir los pasos con mayor o menor detalle.


La clasificación de los lenguajes para algoritmos puede enunciarse de la siguiente manera :
Lenguaje Natural.
Lenguaje de Diagrama de Flujo.
Lenguaje Natural de Programación.
Lenguaje de Programación de Algoritmos. 


Lenguaje Natural.

Es aquél que describe en español, para nuestro caso, los pasos a seguir utilizando un vocabulario cotidiano. Se le conoce como lenguaje jerga cuando se utilizan términos especializados de una determinada ciencia,profesión o grupo.



Lenguaje de Diagrama de Flujo.

Es aquél que se vale de diversos símbolos para representar las ideas o acciones a desarrollar. Es útil para organizar las acciones o pasos de un algoritmo pero requiere de etapas posteriores para implementarse en un sistema de cómputo.



Lenguaje Natural de Programación.

Son aquéllos que están orientados a la solución de problemas que se definen de una manera precisa.
Generalmente son aplicados para la elaboración de fórmulas o métodos científicos.
El lenguaje natural tiene las siguientes características :
Evita la ambigüedad (algo confuso que se puede interpretar de varias maneras).
Son precisos y bien definidos.
Utilizan términos familiares al sentido común.
Elimina instrucciones innecesarias.



Lenguaje de Programación de Algoritmos.

Es aquél que se utiliza para introducir en la computadora un algoritmo específico. Se les conoce también como "Lenguaje de Programación".



Lenguaje de Programación :

Es un conjunto de palabras, símbolos y reglas sintácticas mediante los cuales puede indicarse a la computadora los pasos a seguir para resolver un problema.
Los lenguajes de programación pueden clasificarse por diversos criterios, siendo el más común su nivel de semejanza con el lenguaje natural, y su capacidad de manejo de niveles internos de la máquina.



Técnicas de programación:

Las técnicas de programación constituyen parte fundamental en el proceso de desarrollo e Ingeniería del Software dentro del ámbito informático.
Cada técnica tiene sus propias características, y distintos métodos de resolución de problemas, así como la implementación de estándares de ciertas compañías o instituciones, y es de gran importancia aprender a implementarlas a la hora de adentrarse en la evolución de cualquier proyecto de desarrollo de software.



Las Técnicas de Programación son:


Programación Modular.
Programación Estructurada.
Programación Orientada a Objetos.
Programación basada en modelos matemáticos.






No hay comentarios:

Publicar un comentario

Síguenos en Facebook