PROGRAMACIÓN
Claudia Alvarado Briones
Paul Barrezueta Ortiz
David Luzardo Quiroz
DEFINICIÓN DE ALGORITMOS
El concepto intuitivo de algoritmo,
lo tenemos prácticamente todos:
Un algoritmo es una serie fin...
RAZONES PARA ESTUDIAR LOS
ALGORITMOS
• Hoy día existe la gran necesidad de incorporar
metodologías que hagan más productiv...
• El diseño de algoritmos es una teoría
de la Investigación de operaciones.
• El diseño de un algoritmo que sea
fácil de e...
Todo Algoritmo debe
tener las siguientes
partes:
· Entrada de datos, son
los datos necesarios
que el algoritmo
necesita pa...
ANÁLISIS DE ALGORITMOS
• El análisis de algoritmos nos permite medir la
dificultad inherente de un problema y evaluar la
e...
•Para medir el
tiempo de
ejecución de un
algoritmo existen
varios métodos.
Es posible realizar el
estudio de la
complejida...
ALGORITMOS RECURSIVOS
• Un algoritmo recursivo es un algoritmo que expresa la
solución de un problema en términos de una l...
• Ventajas:
▫ Puede resolver problemas complejos.
• Desventajas:
▫ Se puede llegar a un ciclo infinito.
▫ Para la gente si...
ALGORITMOS DE ORDENAMIENTO
• En computación y matemáticas un algoritmo de
ordenamiento es un algoritmo que pone elementos ...
CLASIFICACIÓN
Los algoritmos de ordenamiento se pueden
clasificar de las siguientes maneras:
• La más común es clasificar ...
FORMAS DE REPRESENTACIÓN DE
ALGORITMOS
• Dentro de las formas de representación de
algoritmos más conocidas, sobresalen:
...
FORMULACIÓN Y RESOLUCIÓN DE
PROBLEMAS
• Los algoritmos son los procedimientos que se construyen
para la resolución de cual...
La formulación la
podemos descomponer en
tres etapas:
Definición del problema.
Supuestos: aserciones y
limitaciones sumini...
TÉCNICAS PARA LA FORMULACIÓN DE
ALGORITMOS (DIAGRAMAS DE
FLUJO Y PSEUDOCODIGO)
DIAGRAMAS
DE
FLUJO
PSEUDOCÓDIGO
• Mezcla de lenguaje de programación y español (o
inglés o cualquier otro idioma) que se emplea, dentro
de la...
CARACTERÍSTICAS DE UN ALGORITMO
1. Debe ser Preciso, porque cada uno de sus pasos debe indicar de manera
precisa e inequív...
ÁREA DE ESTUDIO DE LOS ALGORITMOS
▫ Algoritmos y Estructuras de Datos: Esta área
estudia algoritmos específicos y las estr...
JERARQUÍA DE OPERADORES (PARA LA
ELABORACIÓN DE ALGORITMOS)
• Tipos de Operadores:
▫ Aritméticos (su resultado es un númer...
Para resolver una expresión aritmética se
deben seguir las siguientes reglas:
1. Primero se resuelven las expresiones que ...
Exposicion 1. 2 b
Próxima SlideShare
Cargando en…5
×

Exposicion 1. 2 b

237 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
237
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
2
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Exposicion 1. 2 b

  1. 1. PROGRAMACIÓN Claudia Alvarado Briones Paul Barrezueta Ortiz David Luzardo Quiroz
  2. 2. DEFINICIÓN DE ALGORITMOS El concepto intuitivo de algoritmo, lo tenemos prácticamente todos: Un algoritmo es una serie finita de pasos para resolver un problema. Hay que hacer énfasis en dos aspectos para que un algoritmo exista: • El número de pasos debe ser finito. De esta manera el algoritmo debe terminar en un tiempo finito con la solución del problema, • El algoritmo debe ser capaz de determinar la solución del problema.
  3. 3. RAZONES PARA ESTUDIAR LOS ALGORITMOS • Hoy día existe la gran necesidad de incorporar metodologías que hagan más productiva la preparación del desarrollador de software. • Así como la práctica del desarrollo de software contribuye a satisfacer las necesidades educativas en muchos campos, también permite obtener mejoras en etapas básicas de capacitación en análisis y diseño, impulsando de esta manera su propio desarrollo. El trabajo con conjuntos grandes de datos en las computadoras se facilita si los datos están ordenados
  4. 4. • El diseño de algoritmos es una teoría de la Investigación de operaciones. • El diseño de un algoritmo que sea fácil de entender, codificar y depurar (Ingeniería de Software). • El diseño de un algoritmo que haga uso eficiente de los recursos de la computadora (Análisis y Diseño de algoritmos). DISEÑOS DE ALGORITMOS
  5. 5. Todo Algoritmo debe tener las siguientes partes: · Entrada de datos, son los datos necesarios que el algoritmo necesita para ser ejecutado. · Proceso, es la secuencia de pasos para ejecutar el algoritmo. · Salida de resultados, son los datos obtenidos después de la ejecución del algoritmo.
  6. 6. ANÁLISIS DE ALGORITMOS • El análisis de algoritmos nos permite medir la dificultad inherente de un problema y evaluar la eficiencia de un algoritmo. ▫ Tiempos de Ejecución Una medida que suele ser útil conocer es el tiempo de ejecución
  7. 7. •Para medir el tiempo de ejecución de un algoritmo existen varios métodos. Es posible realizar el estudio de la complejidad de un algoritmo sólo en base a un conjunto reducido de sentencias, por ejemplo, las que más influyen en el tiempo de ejecución.
  8. 8. ALGORITMOS RECURSIVOS • Un algoritmo recursivo es un algoritmo que expresa la solución de un problema en términos de una llamada a sí mismo. La llamada a sí mismo se conoce como llamada recursiva o recurrente. • Las claves para construir un subprograma recurrente son: ▫ Cada llamada recurrente se debería definir sobre un problema de menor complejidad (algo más fácil de resolver). ▫ Ha de existir al menos un caso base para evitar que la recurrencia sea infinita. ▫ Es frecuente que los algoritmos recurrentes sean más ineficientes en tiempo que los iterativos aunque suelen ser mucho más breves en espacio.
  9. 9. • Ventajas: ▫ Puede resolver problemas complejos. • Desventajas: ▫ Se puede llegar a un ciclo infinito. ▫ Para la gente sin experiencia es difícil de programar.
  10. 10. ALGORITMOS DE ORDENAMIENTO • En computación y matemáticas un algoritmo de ordenamiento es un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relación de orden, es decir, el resultado de salida ha de ser una permutación —o reordenamiento— de la entrada que satisfaga la relación de orden dada. Las relaciones de orden más usadas son el orden numérico y el orden lexicográfico. Ordenamientos eficientes son importantes para optimizar el uso de otros algoritmos (como los de búsqueda y fusión) que requieren listas ordenadas para una ejecución rápida. También es útil para poner datos en forma canónica y para generar resultados legibles por humanos.
  11. 11. CLASIFICACIÓN Los algoritmos de ordenamiento se pueden clasificar de las siguientes maneras: • La más común es clasificar según el lugar donde se realice la ordenación • Por el tiempo que tardan en realizar la ordenación, dadas entradas ya ordenadas o inversamente ordenadas • Por estabilidad
  12. 12. FORMAS DE REPRESENTACIÓN DE ALGORITMOS • Dentro de las formas de representación de algoritmos más conocidas, sobresalen:  La descripción narrativa  El Flujograma convencional  El diagrama Chapin  El pseudocódigo, o también conocido como lenguaje estructurado.
  13. 13. FORMULACIÓN Y RESOLUCIÓN DE PROBLEMAS • Los algoritmos son los procedimientos que se construyen para la resolución de cualquier problema. De este modo, cuando se refiere a la construcción de un programa, nos estamos refiriendo a la construcción de un algoritmo. • Un algoritmo puede ser caracterizado por una función lo cual asocia una salida: s= f (E) a cada entrada E. • Se dice entonces que un algoritmo calcula una función f. Entonces la entrada es una variable independiente básica en relación a la que se producen las salidas del algoritmo, y también los análisis de tiempo y espacio.
  14. 14. La formulación la podemos descomponer en tres etapas: Definición del problema. Supuestos: aserciones y limitaciones suministradas. Resultados esperados. La fase de planteamiento del problema lo que pretende un algoritmo es sintetizar de alguna forma una tarea, cálculo o mecanismo antes de ser transcrito al computador. Los pasos que hay que seguir son los siguientes: Análisis previo del problema. Primera visión del método de resolución. Descomposición en módulos. Programación estructurada. o Búsqueda de soluciones parciales. Ensamblaje de soluciones finales. La fase de resolución del problema se puede descomponer en tres etapas: Análisis de alternativas y selección de la solución. Especificación detallada del procedimiento solución. Adopción o utilización de una herramienta para su implementación, si es necesaria.
  15. 15. TÉCNICAS PARA LA FORMULACIÓN DE ALGORITMOS (DIAGRAMAS DE FLUJO Y PSEUDOCODIGO)
  16. 16. DIAGRAMAS DE FLUJO
  17. 17. PSEUDOCÓDIGO • Mezcla de lenguaje de programación y español (o inglés o cualquier otro idioma) que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa. Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. El pseudocódigo utiliza palabras que indican el proceso a realizar. Si bien es cierto, podemos sentarnos frente a la computadora y programar un algoritmo, pero lo anterior corresponde a un conjunto de buenas prácticas que debemos tomar antes de comenzar a programar.
  18. 18. CARACTERÍSTICAS DE UN ALGORITMO 1. Debe ser Preciso, porque cada uno de sus pasos debe indicar de manera precisa e inequívoca que se debe hacer. 2. Debe ser Finito, porque un algoritmo debe tener un número limitado de pasos. 3. Debe ser Definido, porque debe producir los mismos resultados para las mismas condiciones de entrada. 4. Puede tener cero o más elementos de entrada. 5. Debe producir un resultado. Los datos de salida serán los resultados de efectuar las instrucciones.
  19. 19. ÁREA DE ESTUDIO DE LOS ALGORITMOS ▫ Algoritmos y Estructuras de Datos: Esta área estudia algoritmos específicos y las estructuras de datos asociadas para solucionar problemas específicos. La parte de esto implica análisis matemático para analizar la eficacia del algoritmo en el uso de tiempo y memoria. ▫ Teoría de la Computación: En esta área se categorizan los problemas según la naturaleza de los algoritmos para resolverlos, algunos problemas tienen algoritmos rápidos, alguno solamente tienen algoritmos muy lentos (tales problemas se consideran a veces difícilmente insuperables), algunos no tienen ningún algoritmo. ▫ Lenguajes de Programación: La meta del área de lenguajes de programación es diseñar bien los lenguajes de programación mejores y mas naturales y los compiladores más rápidos y eficientes. ▫ Sistemas Operativos: Esta área implica el diseño e implementación de nuevos y mejores sistemas operativos.
  20. 20. JERARQUÍA DE OPERADORES (PARA LA ELABORACIÓN DE ALGORITMOS) • Tipos de Operadores: ▫ Aritméticos (su resultado es un número): potencia, * , / , mod, div, + , - ▫ Relacionales (su resultado es un valor de verdad): =, <, >, <=, >=, <> ▫ Lógicos o Booleanos (su resultado es un valor de verdad): not, and, or ▫ Alfanuméricos : + (concatenación) ▫ Asociativos. El único perador asociativo es el paréntesis ( ) , el cual permite indicar en qué orden deben realizarse las operaciones.
  21. 21. Para resolver una expresión aritmética se deben seguir las siguientes reglas: 1. Primero se resuelven las expresiones que se encuentran entre paréntesis. 2. Se procede aplicando la jerarquía de operadores. 3. Al evaluar una expresión, si hay dos operadores con la misma jerarquía, se procede a evaluar de izquierda a derecha. 4. Si hay expresiones relacionales, se resuelven primero paréntesis, luego se encuentran los valores de verdad de las expresiones relacionales y por último se aplica jerarquía de operadores lógicos. En caso de haber iguales, proceder de izquierda a derecha.

×