Metodologia de la Programción

10,168 views

Published on

Nos habla de la metodologia de la programacion, su importancia y para q sirve.

  • Be the first to comment

Metodologia de la Programción

  1. 1. METODOLOGÍA Y TECNOLOGÍA DE LA PROGRAMACIÓN I Ing. Danilo Jaramillo H. [email_address] 2570-275 ext. 2637 ESCUELA : CIENCIAS DE LA COMPUTACIÓN NOMBRES: FECHA : OCTUBRE2008 – FEBRERO 2009
  2. 2. Introducción <ul><li>El desarrollo de software está tomando gran importancia en el mundo informático </li></ul><ul><li>La asignatura busca estudiar los fundamentos de la programación </li></ul><ul><li>Metodología de la programación = metodología necesaria para resolver problemas mediante programas de computadora. </li></ul>
  3. 3. Objetivo General <ul><li>Desarrollar la capacidad de comprender y abstraer problemas de programación identificando sus partes y diseñando soluciones. </li></ul>
  4. 4. Conceptos Generales <ul><li>Hardware: Corresponde a la parte física de un computador. </li></ul><ul><li>Software: El software son todos aquellos programas que permiten la comunicación entre el usuario y el computador. </li></ul><ul><li>Dispositivos de entrada y salida: son aquellos elementos de hardware que nos permiten el ingreso de datos y presentarlos al usuarios a través </li></ul>
  5. 5. Metodología <ul><li>Programación Modular </li></ul><ul><ul><li>Flexible y potente </li></ul></ul><ul><ul><li>El programa se divide en Módulos </li></ul></ul><ul><li>Programación Estructurada </li></ul><ul><ul><li>El programa tiene un diseño modular </li></ul></ul><ul><ul><li>Los módulos son diseñados en forma descendente </li></ul></ul><ul><ul><li>Cada modulo se codifica en base a: secuencias, selección y repetición. </li></ul></ul>
  6. 6. Conceptos <ul><li>Algoritmo </li></ul><ul><li>Método para resolver un problema, conjunto de reglas para ejecutar determinada tarea. </li></ul><ul><li>Diagramas de flujo </li></ul><ul><li>Un diagrama de flujo es una representación gráfica de la secuencia de pasos a realizar para producir un cierto resultado. </li></ul><ul><li>Seudo-código </li></ul><ul><li>Lenguaje de especificación de algoritmos. </li></ul>
  7. 7. Pasos para la solución de problemas <ul><li>Definición del problema (Entender que es lo que se requiere) </li></ul><ul><li>Determinación de los datos de entrada y salida </li></ul><ul><li>Modelo Matemático (Para conocer el proceso de solución) </li></ul><ul><li>Algoritmo </li></ul><ul><li>Prueba </li></ul><ul><li>Refinamiento del algoritmo </li></ul><ul><li>Codificación </li></ul>
  8. 8. Pasos para la solución de problemas <ul><li>Sumar dos números </li></ul><ul><li>EL PASO 1 (entender) : </li></ul><ul><li>Ingresar dos números realizar la sumatoria y presentarlos </li></ul><ul><li>EL PASO 2 (datos de entrada y salida): </li></ul><ul><li>Entrada: numero1 y numero 2 </li></ul><ul><li>Salida: resultado </li></ul><ul><li>EL PASO 3 (modelo matemático a utilizar): </li></ul><ul><li>Permite resolver analíticamente el problema, en el ejemplo de las sumas tendríamos: </li></ul><ul><ul><li>Datos de entrada 10 y 30 (primer termino y segundo termino) </li></ul></ul><ul><ul><li>Proceso para sumar 10 + 30 (suma de los términos) </li></ul></ul><ul><ul><li>Información de salida 40 (resultado del proceso) </li></ul></ul><ul><li>Resultado = numero1 + numero2 </li></ul>
  9. 9. Pasos para la solución de problemas <ul><li>EL PASO 4 (algoritmo primera versión): </li></ul><ul><ul><ul><li>1. Inicio </li></ul></ul></ul><ul><ul><ul><li>2. Ingresar el primer valor a sumar (numero1) </li></ul></ul></ul><ul><ul><ul><li>3. Ingresar el segundo valor a sumar (numero2) </li></ul></ul></ul><ul><ul><ul><li>4. Realizar la sumatoria (Resultado = numero1 + numero2) </li></ul></ul></ul><ul><ul><ul><li>5. Presentar el resultado de la suma (resultado) </li></ul></ul></ul><ul><ul><ul><li>6. Fin </li></ul></ul></ul><ul><li>EL PASO 5 (prueba): </li></ul><ul><ul><li>Prueba de escritorio </li></ul></ul><ul><li>EL PASO 6: </li></ul><ul><li>Consiste en refinamiento del algoritmo. </li></ul><ul><li>EL PASO 7: </li></ul><ul><li>Equivale a escribir (traducir) el algoritmo en lenguaje de alto nivel . </li></ul>
  10. 10. Ejercicios
  11. 11. Determinar el área de un triángulo si se conoce la base y altura <ul><li>EL PASO 1 (entender) : </li></ul><ul><li>EL PASO 2 (datos de entrada y salida): </li></ul><ul><li>Entrada: base y altura </li></ul><ul><li>Salida: area </li></ul><ul><li>EL PASO 3 (modelo matemático a utilizar): </li></ul><ul><li>Area = base * altura / 2 </li></ul><ul><li>EL PASO 4 (algoritmo): </li></ul><ul><ul><ul><li>1. Inicio </li></ul></ul></ul><ul><ul><ul><li>2. ingresar base </li></ul></ul></ul><ul><ul><ul><li>3. ingresar altura </li></ul></ul></ul><ul><ul><ul><li>4. Realizar el Cálculo el Área = (base * altura ) / 2 </li></ul></ul></ul><ul><ul><ul><li>5. mostrar área </li></ul></ul></ul><ul><ul><ul><li>6. Fin </li></ul></ul></ul><ul><li>EL PASO 5 (prueba): </li></ul><ul><ul><li>Prueba de escritorio </li></ul></ul><ul><li>EL PASO 6: </li></ul><ul><ul><li>corrección del algoritmo </li></ul></ul>
  12. 12. Determinar el valor a pagar conociendo el número de horas y el costo por hora <ul><li>EL PASO 1 (entender) : </li></ul><ul><li>EL PASO 2 (datos de entrada y salida): </li></ul><ul><li>Entrada: Numero de horas y costo </li></ul><ul><li>Salida: sueldo a pagar </li></ul><ul><li>EL PASO 3 (modelo matemático a utilizar): </li></ul><ul><li>sueldo = NumerodeHora * Costodehora </li></ul><ul><li>EL PASO 4 (algoritmo): </li></ul><ul><ul><ul><li>1. Inicio </li></ul></ul></ul><ul><ul><ul><li>2. solicitar numhora </li></ul></ul></ul><ul><ul><ul><li>3. solicitar coshora </li></ul></ul></ul><ul><ul><ul><li>4. Realizar el calculo sueldo = numhora * coshora </li></ul></ul></ul><ul><ul><ul><li>5. mostrar sueldo </li></ul></ul></ul><ul><ul><ul><li>6. Fin </li></ul></ul></ul><ul><li>EL PASO 5 (prueba): </li></ul><ul><ul><li>Prueba de escritorio </li></ul></ul><ul><li>EL PASO 6: </li></ul><ul><ul><li>corrección del algoritmo </li></ul></ul>
  13. 13. Programa <ul><ul><li>Introducirnos al proceso de la programación que se manifiesta esencialmente en los programas. </li></ul></ul><ul><ul><li>Un programa de computadora es un conjunto finito de instrucciones que producirán la ejecución de una determinada tarea. Un programa es un medio para llegar a un fin. Proceso para solucionar un problema. </li></ul></ul><ul><ul><li>Diseñar algoritmos (pseudo-codigo) para resolver problemas, y su posterior conversión en programas </li></ul></ul>Fundamentos de programación
  14. 14. Partes de Programa <ul><li>El programador debe establecer el conjunto de especificaciones que debe contener el programa: </li></ul><ul><ul><li>Entrada, salida y algoritmos de resolución </li></ul></ul><ul><ul><li>Se debe establecer de donde provienen las entradas (dispositivos de entrada teclado, disco.) </li></ul></ul><ul><ul><li>Las salidas de datos donde se van a presentar. </li></ul></ul>
  15. 15. Partes de Programa entrada proceso salida
  16. 16. Instrucciones <ul><li>instrucciones de inicio/fin </li></ul><ul><ul><li>Inicio </li></ul></ul><ul><ul><li>fin </li></ul></ul><ul><li>instrucciones de asignación </li></ul><ul><ul><li>Variable  valor </li></ul></ul><ul><li>instrucciones de lectura </li></ul><ul><ul><li>Leer variable </li></ul></ul><ul><li>instrucciones de escritura </li></ul><ul><ul><li>Presentar variable </li></ul></ul><ul><ul><li>Presentar mensaje </li></ul></ul>
  17. 17. Elementos de un programa <ul><li>Palabras reservadas (inicio, fin, si, entonces... etc.) </li></ul><ul><li>Identificadores (nombres de variables) </li></ul><ul><li>Constantes </li></ul><ul><li>Variables </li></ul><ul><li>Expresiones </li></ul><ul><li>instrucciones </li></ul>
  18. 18. Elementos de un programa <ul><li>Dato: </li></ul><ul><ul><li>&quot;hecho o valor a partir del cual se puede inferir una conclusión información&quot;. </li></ul></ul><ul><ul><li>Los datos son aquello que un programa manipula. </li></ul></ul><ul><ul><li>Sin datos un programa no funcionaría correctamente. </li></ul></ul>
  19. 19. Tipos de datos <ul><li>Los tipos de datos simples los podemos definir como numéricos, lógicos y carácter, etc.. </li></ul><ul><li>Enteros </li></ul><ul><li>Números enteros desde un valor negativo alto hasta otro valor positivo alto. </li></ul><ul><li>Carácter </li></ul><ul><li>Almacenan información alfa-numérica </li></ul><ul><li>Lógicos (booleanos) - Verdadero y Falso </li></ul><ul><li>Como indica el encabezado, este tipo presenta sólo dos valores: verdadero o falso. </li></ul>
  20. 20. Elementos de un programa <ul><li>Variables </li></ul><ul><li>Los datos son almacenados en la memoria de la computadora. Una variable es una referencia a un área específica de la memoria de la computadora donde se guardan los datos. </li></ul><ul><li>Constantes </li></ul><ul><li>Una constante es un objeto de datos con un nombre, un tipo y un valor asociado que no puede modificarse una vez definido. </li></ul>
  21. 21. Elementos de un programa <ul><li>Operadores </li></ul><ul><li>Un operador es un símbolo formado por uno o más caracteres que permite realizar una determinada operación entre uno o más datos y produce un resultado. </li></ul><ul><li>(+,-,*,/,>,<, !=, <>, Mod, %) </li></ul><ul><li>Expresiones </li></ul><ul><li>Las expresiones son combinación de constantes, variables, símbolos de operación, paréntesis y nombres de funciones </li></ul><ul><li>Una expresión consta de operandos y operadores, según sea el tipo de objetos que manipulan las expresiones puede ser </li></ul><ul><li>de tipo: aritméticas, lógicas, relacionales y carácter </li></ul>
  22. 22. Expresiones <ul><li>Aritméticas </li></ul><ul><ul><li>5 + 3 </li></ul></ul><ul><ul><li>5 * 4 + 6  (5 * 4)+6 </li></ul></ul><ul><li>Lógicas </li></ul><ul><ul><li>(A > B) (verdadero) </li></ul></ul><ul><li>relacionales </li></ul><ul><ul><li>> , <, = </li></ul></ul>
  23. 23. Entrada y salida de información <ul><li>Las operación de entrada permiten leer determinados valores y asignarlos a variables determinadas. </li></ul><ul><li>se la conoce como lectura (leer, read), los dispositivos pueden ser teclado, unidades de disco, etc. </li></ul><ul><li>Luego de la transformación de los datos, la operación de salida se denomina escritura (presentar,write) </li></ul><ul><li>se la puede hacer a pantalla, impresora, etc </li></ul>
  24. 24. Elementos de un programa <ul><li>Algoritmo areatriangulo </li></ul><ul><li>Inicio </li></ul><ul><ul><li>Leer altura </li></ul></ul><ul><ul><li>Leer base </li></ul></ul><ul><ul><li>Area = (base * altura ) / 2 </li></ul></ul><ul><ul><li>Presentar area </li></ul></ul><ul><li>fin </li></ul>
  25. 25. Elementos de un programa <ul><li>Algoritmo areatriangulo </li></ul><ul><li>Inicio </li></ul><ul><ul><li>Leer altura </li></ul></ul><ul><ul><li>Leer base </li></ul></ul><ul><ul><li>Area = (base * altura ) / 2 </li></ul></ul><ul><ul><li>Presentar area </li></ul></ul><ul><li>fin </li></ul>variables operadores expresión
  26. 26. ejercicios <ul><li>// algoritmo para calcular el area de un circulo </li></ul><ul><li>Algoritmo areacirculo </li></ul><ul><li>Inicio </li></ul><ul><li>constante pi = 3.1416 </li></ul><ul><li>leer radio </li></ul><ul><li>area = (2 * pi * radio) </li></ul><ul><li>presentar area </li></ul><ul><li>fin </li></ul>
  27. 27. Estructuras Selectivas <ul><li>Estructura Secuencial </li></ul><ul><li>La estructura secuencial es aquella en la que una instrucción sigue a otra en secuencia. Suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente. </li></ul>
  28. 28. Ejemplo <ul><li>//permite calcular el perímetro de un cuadrilátero </li></ul><ul><li>Algoritmo perimetrorectangulo </li></ul><ul><li>inicio </li></ul><ul><ul><li>Leer lado </li></ul></ul><ul><ul><li>Leer ancho </li></ul></ul><ul><ul><li>Perímetro = (lado*2)+(ancho*2) </li></ul></ul><ul><ul><li>Presentar perímetro </li></ul></ul><ul><li>fin </li></ul>
  29. 29. Estructuras Selectivas <ul><li>Estructuras de selección </li></ul><ul><ul><li>permiten la decisión entre acciones alternativas, </li></ul></ul><ul><ul><li>llevar a cabo una acción en base a una condición (lógica). </li></ul></ul><ul><ul><li>Pueden ser simples o múltiples </li></ul></ul><ul><ul><li>Se pueden utilizar de manera anidada de forma indefinida. </li></ul></ul>
  30. 30. <ul><li>Si (condición)  (lógica verdadero) </li></ul><ul><li>… . instrucciones </li></ul><ul><li>finsi </li></ul><ul><li>Si (condición)  (lógica verdadero) </li></ul><ul><li>… instrucciones </li></ul><ul><li>Sino (caso contrario  falso) </li></ul><ul><li>… instrucciones </li></ul><ul><li>Finsi </li></ul>Estructuras Selectivas
  31. 31. Ejemplo <ul><li>Algoritmo numeropar </li></ul><ul><li>Inicio </li></ul><ul><li>entero numero </li></ul><ul><li>Leer numero </li></ul><ul><li>Si residuo(numero/2) = 0 </li></ul><ul><ul><li>presentar “numero par </li></ul></ul><ul><ul><li>Finsi </li></ul></ul><ul><li>fin </li></ul><ul><li>Algoritmo numeroparimpar </li></ul><ul><li>Inicio </li></ul><ul><li>entero numero </li></ul><ul><ul><li>Leer numero </li></ul></ul><ul><ul><li>Si residuo(numero/2)=0 </li></ul></ul><ul><ul><li>presentar “numero par” </li></ul></ul><ul><ul><li>Sino </li></ul></ul><ul><ul><li>presentar “numero impar” </li></ul></ul><ul><ul><li>Finsi </li></ul></ul><ul><li>fin </li></ul>
  32. 32. Estructuras repetitivas <ul><li>repetición de un número determinado de sentencias en base a una condición lógica. </li></ul><ul><li>Se conoce también como bucle. </li></ul><ul><li>Es importante tener en cuenta: </li></ul><ul><ul><li>cuantas veces se repite el bucle o ciclo, </li></ul></ul><ul><ul><li>cuál es el cuerpo del mismo. </li></ul></ul><ul><li>El cuerpo del bucle lo constituyen: </li></ul><ul><ul><li>una serie de sentencias, que pueden ser de cualquier tipo, </li></ul></ul><ul><ul><li>las que serán repetidas de acuerdo a lo que indique la condición de finalización del bucle. </li></ul></ul>
  33. 33. Estructuras repetitivas anidadas <ul><li>todos aquellos bucles que estén contenidos dentro de otro bucle. </li></ul><ul><li>Cuando se anidan bucles, se debe tener cuidado que el bucle inferior este contenido completamente dentro del bucle exterior. </li></ul><ul><li>Todos los tipos de bucles pueden anidarse, sea entre si o entre cada uno. </li></ul>
  34. 34. <ul><li>Mientras (condición) hacer </li></ul><ul><li>… .. instrucciones </li></ul><ul><li>Fin_mientras </li></ul><ul><li>Desde num  20 hasta 30 hacer </li></ul><ul><li>… . instrucciones </li></ul><ul><li>Fin_desde </li></ul><ul><li>Hacer </li></ul><ul><li>… . instrucciones </li></ul><ul><li>Mientras (condición) </li></ul><ul><li>Repetir </li></ul><ul><li>… </li></ul><ul><li>Hasta_que (condición) </li></ul>variable inicio Fin – incluye limite
  35. 35. Ejemplo <ul><li>// realizar la tabla de multiplicar </li></ul><ul><li>Algoritmo tablademultiplicar </li></ul><ul><li>Inicio </li></ul><ul><li>entero n </li></ul><ul><li>leer n </li></ul><ul><li>desde c  1 hasta n hacer </li></ul><ul><li>presentar n, “ + ”,c, “ = ”, n +c </li></ul><ul><li>findesde </li></ul><ul><li>fin </li></ul>Si n = 5 presentaría 5 + 1 = 6 5 + 2 = 7 5 + 3 = 8 5 + 4 = 9 5 + 5 = 10
  36. 36. Ejemplo <ul><li>//realiza la tabla de multiplicar </li></ul><ul><li>Algoritmo tablademultiplicar </li></ul><ul><li>Inicio </li></ul><ul><li>entero c, n </li></ul><ul><ul><li>c  1 </li></ul></ul><ul><ul><li>Leer n </li></ul></ul><ul><ul><li>Mientras (c <= n) hacer </li></ul></ul><ul><ul><li>presentar n, “ + ”,c, “ = ”, n +c </li></ul></ul><ul><ul><li>c = c +1 </li></ul></ul><ul><ul><li>Finmientras </li></ul></ul><ul><li>Fin </li></ul>Si n = 5 presentaría 5 + 1 = 6 5 + 2 = 7 5 + 3 = 8 5 + 4 = 9 5 + 5 = 10
  37. 37. // algoritmo para calcular el factorial de un numero Algoritmo factorial Inicio entero f, numero leer numero f  1 desde (i  1 hasta numero) hacer f  f * i findesde presentar “el factorial de”, numero,”es”,f fin
  38. 38. // algoritmo para determinar si un numero es primo o no Algoritmo numeroprimo Inicio entero d, numero, lim logica p leer numero d  2 lim  num / 2 p  verdadero mientras (d < num) si residuo(num/d) = 0 p  falso d  lim finsi d  d + 1 finmientras si (p) presentar “numero es primo” sino presentar “numero no es primo” finsi fin

×