Algoritmos Computacionales
Enviado por Shannon29 • 12 de Septiembre de 2013 • 9.280 Palabras (38 Páginas) • 379 Visitas
Algoritmos computacionales
Índice
1. Introducción
2.Marco Histórico
3.Generalidades
4. Análisis De Algoritmos
5. Técnica de diseño de algoritmos
6. Algoritmos de búsqueda y ordenación
7. Verificación y derivación de programas
8 .Análisis Foda
9. Conclusión
10. Bibliografía
1. Introducción
En el siguiente trabajo pretendemos presentar una serie de concepto y definiciones propios del estudio de los
Algoritmos, su análisis y diseño.
En el mismo podremos encontrar los conceptos de algoritmo y algunos de sus componentes, análisis y diseño.
También veremos los diferentes tipos de formas y tamaños o medidas en que se pueden almacenar y
representar los datos y estructuras en un algoritmo o programa. En ese mismo orden encontraremos las
diferentes técnicas para diseñarlos como son el método de la fuerza bruta, el voraz, divide y vencerás,
programación dinámica, de vuelta atrás, entre otros.
De igual forma podremos ver las definiciones y algunas características, reglas, normas, tipos de algoritmos de
búsqueda y ordenación así como sus aplicaciones.
Finalmente veremos los que es la verificación y derivación de programas, donde daremos los conceptos
básicos de semántica y sus tipos haciendo mayor énfasis en la semántica axiomática, la recursividad e
iteración, los diseños de estos últimos, así como los típicos ciclos utilizados en algoritmos y programas y los
paso a tener en cuenta al momento de desarrollar un algoritmo iterativo o recursivo.
Justificación
Es importante el estudio y conocimiento de lo que hoy conocemos como Algoritmos Computacionales, que
desde su aparición hasta nuestros días es, y seguirá siendo; vital para el desarrollo de aplicaciones para
computadoras y el manejo y dominio de la lógica de programación para resolver problemas.
Motivación
1
Como estudiantes de la Facultad de Ciencias y Tecnología Escuela de Informática y Computación de la
Universidad Dominicana Organización y Métodos O&M con aspiraciones de iniciarnos como Ingeniero en
Sistemas y Computación. Con el objetivo inmediato de aprobar con los mejores meritos la asignatura de
Algoritmos Computacionales.
Objetivos
General :
Posibilitar la estudiante alcanzar una visión sistemática de lo que conocemos sobre Los Algoritmos
Computacionales.
Específicos :
Introducir los conceptos propios sobre Algoritmo, su importancia en el mundo de las aplicaciones para
computadoras y el manejo de lógica de programación.
ð Proporcionar una idea de su uso.
ð Visualizar sus ventajas e importancia.
ð Definir sus tipos y variantes.
ð Proporcionar conceptos sobre su análisis y diseño.
ð Proporcionar concepto sobre las técnicas de diseño.
ð Desglosar sus variantes (ordenación, búsqueda, etc. ).
2. Marco Histórico
Un algoritmo es un conjunto de operaciones y procedimientos que deben seguirse para resolver un problema.
La palabra algoritmo se deriva del nombre latinizado del gran Matemático Árabe Mohamed Ibn Al Kow
Rizmi, el cual escribió sobre los años 800 y 825 su obra Quitad Al Mugabala, donde se recogía el sistema de
numeración hindú y el concepto del cero. Fue Fibinacci, el que tradujo la obra al latín y el inicio con la
palabra: Algoritmi Dicit.
El lenguaje algorítmico es aquel por medio al cual se realiza un análisis previo del problema a resolver y
encontrar un método que permita resolverlo. El conjunto de todas las operaciones a realizar y e orden en que
se deben efectuarse, se le denomina algoritmo.
Es un método para resolver un problema mediante una serie de datos precisos, definidos y finitos.
3. Generalidades
El programador de computadoras es ante que nada una persona que resuelve problemas, por lo que para llegar
a ser un programador eficaz se necesita aprender a resolver problemas de un modo riguroso y sistemático. A
la metodología necesaria para resolver problemas mediante programas se denomina Metodología de la
Programación. El eje central de esta metodología es el concepto, ya tratado, de algoritmo.
Un algoritmo es un método para resolver un problema. Aunque la popularización del término ha llegado con
el advenimiento de la era informática, algoritmo proviene de Mohammed al−Khowarizmi, matemático persa
2
que vivió durante el siglo IX y alcanzo gran reputación por el enunciado de las reglas para sumar, restar,
multiplicar y dividir números decimales; La traducción al latín del apellido de la palabra algorismus derivo
posteriormente en algoritmo. Euclides, el gran matemático griego (del siglo IV antes de Cristo) que invento un
método para encontrar el máximo común divisor de dos números, se considera con Al−Khowarizmi el otro
gran padre de la algoritmia (ciencia que trata de los algoritmos).
El profesor Niklaus Wirth, inventor de Pascal, Modula−2 y Oberon, titulo uno de sus más famosos libros,
Algoritmos + Estructuras de Datos = Programas, significándonos que solo se puede llegar a realizar un buen
programa con el diseño de un algoritmo y una correcta estructura de datos. Esta ecuación será de una de las
hipótesis fundamentales consideradas en esta obra.
La resolución de un problema exige el diseño de un algoritmo que resuelva el problema propuesto.
Los pasos para la resolución de un problema son:
Diseño de algoritmo, que describe la secuencia ordenada de pasos que conducen a la solución de un
problema dado. (Análisis del problema y desarrollo del algoritmo).
·
· Expresar el algoritmo como un programa de lenguaje de programación adecuado. (Fase de codificación.)
· Ejecución y validación del programa por la computadora.
Para llegar a la realización de un programa es necesario el diseño previo de algoritmo, de modo que sin
algoritmo no puede existir un programa.
Los algoritmos son independientes tanto del lenguaje de programación en que se expresan como de la
computadora que lo ejecuta. En cada problema el algoritmo se puede expresar en un lenguaje diferente de
programación y ejecutarse en una computadora distinta; sin embargo, el algoritmo será siempre el mismo. Así,
por ejemplo, en una analogía con la vida diaria, una receta de un plato de cocina se puede expresar en español,
ingles
...