Introducción A La Programación

1,943 views

Published on

Introducción a la programación

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,943
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
31
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Introducción A La Programación

  1. 1. Introducción a la Programación
  2. 2. Objetivos de esta Clase <ul><li>Ver las distintas etapas del desarrollo de programas </li></ul><ul><ul><li>Análisis y especificación del problema </li></ul></ul><ul><ul><li>Diseño del algoritmo </li></ul></ul><ul><ul><li>Codificación </li></ul></ul><ul><ul><li>Verificación y Validación </li></ul></ul><ul><ul><li>Mantenimiento </li></ul></ul>
  3. 3. Objetivos de esta Clase <ul><li>Ver las distintas etapas del desarrollo de programas </li></ul><ul><ul><li>Análisis y especificación del problema </li></ul></ul><ul><ul><li>Diseño del Algoritmo </li></ul></ul><ul><ul><li>Codificación </li></ul></ul><ul><ul><li>Verificación y Validación </li></ul></ul><ul><ul><li>Mantenimiento </li></ul></ul>
  4. 4. Análisis y especificación del problema(1 de 4) <ul><li>Tenemos un problema de la vida real, que queremos resolver. </li></ul><ul><li>Debemos ESPECIFICAR el problema usando: </li></ul><ul><li>Abstracción: </li></ul><ul><li>Contexto </li></ul>
  5. 5. Análisis y especificación del problema(2 de 4) <ul><li>Abstracción: proceso de análisis del mundo real para interpretar los aspectos esenciales de un problema y expresarlo en términos precisos. </li></ul><ul><li>Contexto: marco de circunstancias en las que se sitúa un hecho. </li></ul>
  6. 6. Análisis y especificación del problema(3 de 4) <ul><li>Realizar Análisis: </li></ul><ul><li>Analizar el problema en su contexto del mundo real. </li></ul><ul><li>Obtener los requerimientos del usuario. </li></ul><ul><li>Obtener, como resultado del análisis, un modelo. </li></ul>
  7. 7. Análisis y especificación del problema(4 de 4) <ul><li>Modelización: </li></ul><ul><li>Abstraer un problema del mundo real simplificar su expresión, tratando de encontrar los aspectos principales que se pueden resolver (requerimientos), los datos que se han de procesar y el contexto del problema. </li></ul>
  8. 8. Objetivos de esta Clase <ul><li>Ver las distintas etapas del desarrollo de programas </li></ul><ul><ul><li>Análisis y especificación del problema </li></ul></ul><ul><ul><li>Diseño del Algoritmo </li></ul></ul><ul><ul><li>Codificación </li></ul></ul><ul><ul><li>Verificación y Validación </li></ul></ul><ul><ul><li>Mantenimiento </li></ul></ul>
  9. 9. Diseño del algoritmo <ul><li>Hasta ahora determinamos que debe hacer el programa, en esta etapa cómo va a hacer el programa la tarea requerida. </li></ul><ul><li>Decidir formato de los datos de entrada y salida. </li></ul><ul><li>Seleccionar estructuras para organizar y almacenar los datos durante las operaciones intermedias del programa. </li></ul><ul><li>Decidir modularización. </li></ul><ul><li>Desarrollar procedimientos para procesar los datos. </li></ul>
  10. 10. Conceptos Básicos <ul><li>Algoritmo: Especificación rigurosa de la secuencia de pasos (instrucciones) a realizar sobre un autómata para alcanzar un resultado deseado en un tiempo finito. </li></ul><ul><li>Descomposición del problema o modularización : </li></ul><ul><li>Descomponer el problema en partes que tendrán una función bien definida y datos propios. Esta técnica es conocida como modularización o diseño Top Down. </li></ul>
  11. 11. Diseño del algoritmo <ul><li>Herramientas de diseño: </li></ul><ul><li>Permiten realizar modelos del algoritmo. Estos modelos son transformables en código, y el código es transformable en modelo. </li></ul><ul><li>Son: </li></ul><ul><li>Diagramas de flujo (flowchart) </li></ul><ul><li>Pseudocódigo </li></ul>
  12. 12. Herramientas <ul><li>Diagramas de flujo: Es una representación gráfica de un algoritmo; Utiliza símbolos estandarizados (ANSI). </li></ul><ul><li>Pseudocódigo: Es una herramienta de programación en la que las instrucciones se escriben en palabras similares al lenguaje español. </li></ul>
  13. 13. Objetivos de esta Clase <ul><li>Ver las distintas etapas del desarrollo de programas </li></ul><ul><ul><li>Análisis y especificación del problema </li></ul></ul><ul><ul><li>Diseño del algoritmo </li></ul></ul><ul><ul><li>Codificación </li></ul></ul><ul><ul><li>Verificación y Validación </li></ul></ul><ul><ul><li>Mantenimiento </li></ul></ul>
  14. 14. Codificación <ul><li>En esta etapa, se pasa del diseño obtenido en la etapa anterior a una descripción escrita en un lenguaje de programación. Esta última descripción es el programa. </li></ul><ul><li>O sea, la codificación es el proceso de implementar en algún lenguaje de programación las estructuras usadas para almacenar los datos y los algoritmos para resolver el problema. </li></ul><ul><li>En síntesis: El algoritmo que analizamos en etapas anteriores, lo pasamos a un programa escrito en un lenguaje de programación, para que luego la computadora lo pueda ejecutar. </li></ul>
  15. 15. Codificación <ul><li>Programa: una secuencia ordenada de sentencias, es decir, el orden en el cual se realizan las acciones es importante y debe estar explícito en el lenguaje de representación del algoritmo. Debe contar con una representación adecuada de los datos que necesite manipular (estructura de datos) </li></ul>
  16. 16. Codificación <ul><li>Lenguaje de Programación: </li></ul><ul><ul><li>Un lenguaje de programación es una herramienta para producir software. </li></ul></ul><ul><ul><li>Se compone de un conjunto de reglas, símbolos y signos. </li></ul></ul>
  17. 17. Programación Modular Programa Principal Módulo 1 Módulo 2 Módulo 3
  18. 18. Programación Estructurada <ul><li>Reglas de Diseño: </li></ul><ul><li>El programa tiene un diseño modular </li></ul><ul><li>Los módulos son diseñados de modo descendente </li></ul><ul><li>Cada módulo se codifica utilizando las tres estructuras de control básica: </li></ul><ul><ul><li>Secuencia </li></ul></ul><ul><ul><li>Selección </li></ul></ul><ul><ul><li>Repetición </li></ul></ul><ul><li>Principal Autor: Edsgar Dijkstra </li></ul>
  19. 19. Teorema de la programación Estructurada <ul><li>Böhm y Jacopini (1966) </li></ul><ul><li>Un programa propio puede ser escrito utilizando únicamente tres tipos de estructuras: </li></ul><ul><ul><li>Secuencia </li></ul></ul><ul><ul><li>Selección </li></ul></ul><ul><ul><li>Repetición </li></ul></ul>
  20. 20. Objetivos de esta Clase <ul><li>Ver las distintas etapas del desarrollo de programas </li></ul><ul><ul><li>Análisis y especificación del problema </li></ul></ul><ul><ul><li>Diseño del algoritmo </li></ul></ul><ul><ul><li>Codificación </li></ul></ul><ul><ul><li>Verificación y Validación </li></ul></ul><ul><ul><li>Mantenimiento </li></ul></ul>
  21. 21. Verificación y validación <ul><li>Se pueden producir errores en cualquiera de las fases del proceso de desarrollo de un programa. Para corregirlos se utilizan las siguientes técnicas: </li></ul><ul><li>validación: consiste en comprobar que tanto el algoritmo como el programa cumplen la especificación del problema, responde a la pregunta: ¿estamos resolviendo el problema correcto? </li></ul><ul><li>verificación: se refiere a la comprobación de que los algoritmos son correctos, responde a la pregunta: ¿estamos resolviendo el problema de forma correcta? </li></ul>
  22. 22. Verificación y validación <ul><li>Los errores pueden detectarse en distintas fases del procesamiento del programa y provocar la detención del proceso. Los podemos clasificar dentro de las siguientes categorías: </li></ul><ul><li>errores sintácticos o errores en tiempo de compilación. </li></ul><ul><li>errores en tiempo de ejecución. </li></ul><ul><li>errores lógicos. </li></ul>
  23. 23. Objetivos de esta Clase <ul><li>Ver las distintas etapas del desarrollo de programas </li></ul><ul><ul><li>Análisis y especificación del problema </li></ul></ul><ul><ul><li>Diseño del algoritmo </li></ul></ul><ul><ul><li>Codificación </li></ul></ul><ul><ul><li>Verificación y Validación </li></ul></ul><ul><ul><li>Mantenimiento </li></ul></ul>
  24. 24. Mantenimiento <ul><li>Los programas para aplicaciones del mundo real se usan a menudo durante varios años y es probable que requieran alguna modificación. </li></ul><ul><li>para corregir defectos que salen a la luz después de que el software ha comenzado a utilizarse. </li></ul><ul><li>para mejorar la ejecución o añadir nuevas características. </li></ul><ul><li>por cambios en el hardware y/o el software de base, tales como un cambio en el sistema operativo. </li></ul><ul><li>otros cambios por factores externos, por ejemplo, cambios en las leyes sobre los impuestos pueden significar revisar parte de un sistema de sueldos. </li></ul>
  25. 25. Mantenimiento <ul><li>Aspectos a considerar para el mantenimiento: </li></ul><ul><li>Si el código no ha sido apropiadamente modularizado el costo de mantenimiento es muy alto. </li></ul><ul><li>Reusabilidad del código: Una idea simple, hacer uso del código que ya se ha escrito y probado, pero solo es posible si se realiza una solución bien modularizada </li></ul>
  26. 26. Objetivos de esta Clase <ul><li>Ver las distintas etapas del desarrollo de programas </li></ul><ul><ul><li>Análisis y especificación del problema </li></ul></ul><ul><ul><li>Diseño del algoritmo </li></ul></ul><ul><ul><li>Codificación </li></ul></ul><ul><ul><li>Verificación y Validación </li></ul></ul><ul><ul><li>Mantenimiento </li></ul></ul>
  27. 27. Actividad número 1 <ul><li>Diseñar una solución para resolver cada uno de los siguientes problemas, trate de refinar sus soluciones mediante los algoritmos adecuados. </li></ul><ul><li>Realizar una llamada telefónica. </li></ul><ul><li>Cocinar una tortilla. </li></ul><ul><li>Arreglar una rueda de bicicleta pinchada. </li></ul>
  28. 28. Actividad número 2 <ul><li>Escribir un algoritmo para: </li></ul><ul><li>Sumar dos números enteros </li></ul><ul><li>Restar dos números enteros </li></ul><ul><li>Multiplicar dos números enteros </li></ul><ul><li>Dividir un número entero por otro </li></ul>
  29. 29. Actividad número 3 <ul><li>Escribir un algoritmo que calcule la superficie de un triangulo en función a la base y la altura. </li></ul><ul><li>S=(1/2 base x altura) </li></ul>

×