Metodología de la programación
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Metodología de la programación

  • 5,904 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
5,904
On Slideshare
5,904
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
80
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Metodología de laProgramación
  • 2. Pasos a seguir para el desarrollo de unprograma (fases):– Análisis del problema.– Diseño de el/los algoritmos.– Codificación del programa.– Compilación.– Verificación/depuración.– Documentación.
  • 3. Ejemplo– Leer el radio de un círculo y calcular e imprimir su superficie y la longitud dela circunferencia.• Análisis– Entradas: Radio del círculo (variable RADIO).– Salidas: Superficie del círculo (variable AREA), Circunferencia del círculo(variable CIRCUNFERENCIA).– Variables: RADIO, AREA, CIRCUNFERENCIA (tipo real).
  • 4. Diseño de el/los algoritmos– Conjunto preescrito de operaciones (reglas o instrucciones) biendefinidas para resolver un problema en un número finito de pasos– Un algoritmo: Finito (Resultado en el tiempo), Definido (No puede serambiguo), Preciso (ejecución paso a paso).– El diseño del algoritmo es bastante independiente del lenguaje deprogramación (sí depende del enfoque)– Definir paso a paso con detalle– Diseño descendente o modular:
  • 5. Algoritmo
  • 6. Diagrama de flujo
  • 7. Opciones De Diagramas de Flujo
  • 8. PseudocódigoSe trata de un lenguaje imitación del de un ordenador.No está estandarizado.• Cada programador tiene el propio.• Mezcla de lenguaje natural, símbolos, términos ycaracterísticas de varios lenguajes de programación.
  • 9. Codificación del programa– Escribir el algoritmo en un lenguaje de programación• Permite ser leído y ejecutado por el ordenador.– Tipos de lenguajes:• De bajo nivel (dependen de la máquina sobre la que se ejecuta):– Lenguaje Máquina (escritura en binario)– Ensambladores: (escritura simbólica)• De alto nivel (no dependen de la máquina):– Imperativos:Estructurados Orientados a Objeto• FORTRAN i Java• C i C++• PASCAL i Ada 95– Declarativos:• LISP / PROLOG– La salida de la fase de codificación son los programas fuente (que todavía no sepueden ejecutar directamente sobre el ordenador)– Un programa se compone de un conjunto de instrucciones que indican lasoperaciones elementales a ejecutar y la manera en que se encadenan.
  • 10. Compilación y enlace– Salvo que el programa se escriba directamente en lenguajemáquina (muy improbable) siempre debe existir untraductor.– La fase de compilación y enlace permite leer el programaescrito en lenguaje de alto nivel y traducirlo a lenguajemaquina.– Hay tres tipos de traductores: – Compiladores. – Interpretes. – Ensambladores
  • 11. Compilación(Fases de un compilador)
  • 12. Compilación y enlace
  • 13. Verificación/depuración– Errores en tiempo de ejecución• división por cero, apertura de ficheros inexistentes,...– Errores lógicos (los más difíciles de detectar)• Resultados incorrectos– Optimización del algoritmo.
  • 14. Compilación y enlace +Verificación y depurado
  • 15. Documentación– Se genera a lo largo de todas la fases– Debe permitir acceder al programa a una persona distinta alprogramador.– Interna: – Código de programa fuente – Comentarios– Externa:• Especificación de requisitos• Listado de programa fuente• Explicación de los algoritmos (CLARO y CONCISO)• Diagramas de flujo o pseudocódigo.• Especificación de datos, formatos de pantalla,...• ...
  • 16. Programación Estructurada• Teorema de la Programación EstructuradaTodo algoritmo puede ser descrito utilizandosolamente tres tipos De estructuras de control:secuencial, alternativa, y repetitiva.• Secuencia– Todas las acciones se ejecutansucesivamente, una a continuaciónde otra sin posibilidad debifurcaciones.• Sentencias Alternativa– Una estructura alternativa bifurca elflujo de un algoritmo según secumplan una o varias condiciones.
  • 17. Sentencias Repetitivas:– Una estructura de control repetitiva permite ejecutar una o variasacciones un número de veces que puede estar definido a priori oindefinido hasta que se cumpla una determinada condición.Tipos de sentencias de control repetitivas:– PARA: El nº de repeticiones se conoce antes de iniciar el bucle.– MIENTRAS: Repite las acciones mientras la condición se cumple.– HACER MIENTRAS: Se realiza siempre una vez la acción y luego sevuelve a realizar mientras la condición se cumpla– REPETIR HASTA: Repite las acciones mientras la condición seafalsa (no existe en C)
  • 18. Ejemplo • Diseñar un algoritmo que resuelva una ecuación de segundo grado: – Datos de entrada: • Coeficientes a,b,c – Datos de salida: • Soluciones de la ecuación si las hay – Nota: • El algoritmo únicamente resolverá la ecuación en el caso de existir 2 soluciones diferentes (opción 1) • En cualquier otro caso mostrara un mensaje de error. • Diseñar el algoritmo para hacer una tortilla de patata • Diseñar el algoritmo que resuelva la ecuación de segundo grado dando todas las posibles soluciones (opción 2).
  • 19.  Ejemplo (opción 1): Ecuación de Segundo Grado – Pseudocódigo Algoritmo „Ecuación de segundo grado‟ {Cálculo de una ecuación de segundo grado} Variables a, b, c; /*Introducir las constantes con sus signos*/ x1, x2 /*Valores de Salida*/ Inicio Escribir (“Introduzca dato A:”); /*Entrada de Datos*/ Leer (a); Escribir (“Introduzca dato B:”); Leer (b); Escribir (“Introduzca dato C:”); Leer (c); Si (a != 0) entonces Si (b2-4*a*c > 0) /*Condición para evitar la raíz cuadrada de un nº negativo*/ x1:=(-b+sqrt((b*b)-(4*a*c)))/(2*a); x2:=(-b-sqrt((b*b)-(4*a*c)))/(2*a); Escribir („Valor x1=„,x1,‟y Valor x2=„,x2); sino /* Raíz negativa */ Escribir (“Datos Incorrectos”); fin_si sino Escribir (“ No se trata de una ecuación de 2º grado”) fin_si Fin