2. Pasos a seguir para el desarrollo de un
programa (fases):
– Análisis del problema.
– Diseño de el/los algoritmos.
– Codificación del programa.
– Compilación.
– Verificación/depuración.
– Documentación.
3.
4. Ejemplo
– Leer el radio de un círculo y calcular e imprimir su
superficie y la longitud de
la 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).
5. Diseño de el/los algoritmos
– Conjunto preescrito de operaciones (reglas o
instrucciones) bien
definidas para resolver un problema en un
número finito de pasos
– Un algoritmo: Finito (Resultado en el tiempo),
Definido (No puede ser
ambiguo), Preciso (ejecución paso a paso).
– El diseño del algoritmo es bastante
independiente del lenguaje de
programación (sí depende del enfoque)
– Definir paso a paso con detalle
– Diseño descendente o modular:
9. Pseudocódigo
Se 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 y
características de varios lenguajes de programación.
10. 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 se
pueden ejecutar directamente sobre el ordenador)
– Un programa se compone de un conjunto de instrucciones que indican las
operaciones elementales a ejecutar y la manera en que se encadenan.
11. Compilación y enlace
– Salvo que el programa se escriba directamente en lenguaje
máquina (muy improbable) siempre debe existir un
traductor.
– La fase de compilación y enlace permite leer el programa
escrito en lenguaje de alto nivel y traducirlo a lenguaje
maquina.
– Hay tres tipos de traductores:
– Compiladores.
– Interpretes.
– Ensambladores
14. 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.
16. Documentación
– Se genera a lo largo de todas la fases
– Debe permitir acceder al programa a una persona
distinta al
programador.
– 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,...
• ...
17.
18. Programación Estructurada
• Teorema de la Programación Estructurada
Todo algoritmo puede ser descrito utilizando
solamente tres tipos De estructuras de control:
secuencial, alternativa, y repetitiva.
• Secuencia
– Todas las acciones se ejecutan
sucesivamente, una a continuación
de otra sin posibilidad de
bifurcaciones.
• Sentencias Alternativa
– Una estructura alternativa bifurca el
flujo de un algoritmo según se
cumplan una o varias condiciones.
19. Sentencias Repetitivas:
– Una estructura de control repetitiva permite ejecutar una
o varias
acciones un número de veces que puede estar definido a
priori o
indefinido 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 se
vuelve a realizar mientras la condición se cumpla
– REPETIR HASTA: Repite las acciones mientras la
condición sea
falsa (no existe en C)
20.
21. 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).
22.
23. 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