You are on page 1of 26

Análisis y Diseño de Algoritmos

Conceptos básicos

ISC. Fabián López Rivera.

Definición de Algoritmos
• La resolución de un problema exige el diseño de un algoritmo que resuelva el problema propuesto.

• Una secuencia finita de instrucciones realizables. no ambiguas.Definición. cuya ejecución conduce a la resolución de un problema. • Una serie de pasos organizados que describe el proceso que se debe seguir para dar solución a un problema especifico.• Conjunto de Pasos que nos permite obtener la solución a un problema. .

(780-850) • Junto con Euclides el gran matemático griego que invento un método para encontrar el máx. . Común de dos números Se les considera los padres de los algoritmos.Historia • La palabra algoritmo se deriva del nombre en latín del matemático árabe: Mohamed Al Kow Rizmi.

definido y finito. • En la realización del algoritmo debe aplicar sus tres características: preciso.Escritura de Algoritmos • Se emplea un lenguaje natural describiendo paso a paso el algoritmo en cuestión. .

.Características de Algoritmos Preciso.• Todas las operaciones que el algoritmo realizara deben ser lo suficientemente claras. es decir hay que evitar toda ambigüedad al definir cada paso. de modo que puedan ser llevadas a cabo en forma exacta y en un tiempo finito por una persona.

es decir si se sigue dos veces.Características de Algoritmos Definido. .• El algoritmo debe definirse de forma precisa para cada paso. se debe obtener el mismo resultado cada vez.

• El algoritmo debe acabar tras un numero finito de pasos. Es casi fundamental que sea un numero razonable de pasos. .Características de Algoritmos Finito.

2.Partes del Algoritmo.Proceso 3...Salida .En la definición de un algoritmo se deben determinar tres partes: 1..Entrada.

Partes del Algoritmo. Estas cantidades pertenecen además a conjuntos especificados de objetos. Por Ej. enteros.Entrada El algoritmo tendrá cero o mas entradas. es decir cantidades dadas antes de empezar. fraccionarios. un carácter etc. . Se trata siempre de cantidades representativas del mundo real expresadas de tal forma que sean aptas para su interpretación por la computadora.1. Pueden ser cadena de caracteres..

Proceso Descripción de las operaciones que se llevaran a cabo con las entradas como datos para obtener la salida de acuerdo con la tarea para la cual fue diseñado. asignaciones. Formulas.. .Partes del Algoritmo.2. condiciones.

en relación con las entradas. Impresiones en pantalla o papel..Partes del Algoritmo.Salida Un algoritmo tiene una o mas salidas. .3.

Funcionalidad Nunca se debe olvidar que la característica mas simple e importante de un algoritmo es que funcione.Factores de Calidad 1. de tal modo que siempre lleve al resultado correcto. .Corrección Un algoritmo debe estar bien planteado.. 2..

. nunca se deben desperdiciar recursos si no tratar de desarrollar algoritmos mas eficientes.Factores de Calidad 3.Eficiencia La Eficiencia de un algoritmo se mide por los recursos que este consume.. En particular se habla de la memoria y el tiempo de ejecución.

.Factores de Calidad 4. .Documentacion El algoritmo debe estar bien documentado. La documentación ayuda a comprender el funcionamiento de los algoritmos. Ciertos detalles o algunas partes especiales de los mismos pueden olvidarse fácilmente o quedar oscuros si no están adecuadamente documentados.

• Con la ayuda de los algoritmos podemos crear cualquier cosa. .Información y Terminología Relevante. incluso la Música. • Algoritmia: Ciencia que trata del estudio de los algoritmos.• En la vida cotidiana empleamos algoritmos en multitud de ocasiones para resolver diversos problemas.

Acción que implica una condicional leída como pregunta. • Constante. generalmente la impresión de resultados. Objeto que durante la ejecución del algoritmo su contenido es cambiante. .Terminología Relevante. • Imprimir. Acción de generar una salida. acción que indica una entrada de datos. Contraposición de Variable. • SI.• Variables. • Leer.

• No Grafica: Describiendo las operaciones que llevara a cabo. .• Los Algoritmos se pueden expresar de dos formas: • Grafica: Con símbolos utilizando diagramas de Flujos.Representación. utilizando un conjunto de pasos enumerados lógicamente o seudocódigo.

6. 2.Representación gráfica de los algoritmos Los métodos usuales para representar un algoritmo son: 1... inglés. 3.Lenguaje español. Diagramas UML ..Diagrama de flujo. 4.Diagrama N-S (Nassi-Schneiderman)..Fórmulas..Lenguaje de especificación de algoritmos: pseudocódigo. 5.

Diagrama de flujo • Un diagrama que utiliza los símbolos (cajas) estándar mostrados en la tabla 1 y que tiene los pasos de un algoritmo escritos en esas cajas unidas por flechas. denominadas líneas de flujo. . que indican la secuencia en que se debe ejecutar .

• Verificación. • Compilación y ejecución.Fase en la resolución de problemas • Las fases de resolución computadora son: • Análisis del problema. • Depuración. de un problema con . • Diseño del algoritmo. • Mantenimiento. • Codificación. • Documentación.

y que las personas llevan a cabo sin darse cuenta de que están siguiendo una metodología para resolverlos.Algoritmos cotidianos • Se refiere a los algoritmos que ayudan a resolver problemas diarios. & Algoritmos Computacionales .

Lenguajes de programación • Sirven para escribir programas que permitan la comunicación usuario/máquina. . Unos programas especiales llamados traductores (compiladores o intérpretes) convierten las instrucciones escritas en lenguajes de programación en instrucciones escritas en lenguajes máquina (0 y 1. bits) que ésta pueda entender.

pero su éxito y popularidad está especialmente relacionado con el sistema operativo UNIX (fue desarrollado como lenguaje de programación de sistemas. Los sistemas operativos son los programas que gestionan (administran) los recursos de la computadora. programas. un lenguaje de programación para escribir sistemas operativos y utilidades. del sistema). es decir. .Introducción al Lenguaje C++ • C es un lenguaje de propósito general que se puede utilizar para escribir cualquier tipo de programa.

un programa contendrá una serie de directivas #include que permitirían incluir en el mismo. Así mismo.Estructura general de un programa en C++ • Un programa en C++ se compone de una o más funciones. Una función en C++ es un grupo de instrucciones que realizan una o más acciones. archivos de cabecera que a su vez constarán de funciones y datos predefinidos en ellos. Una de las funciones debe ser obligatoriamente main. .

while) Selectivas o selección(switch-case) Programación espagueti Goto.Tipos de Programación • Estructurada • • • • • Condicionales(if) Ciclicas(for.do while.etiquetas • No Estructurada • POO • Top down • Modular Difieren en sus Técnicas de Programación .