programación 1 (01y 05) prof. flor narciso ([email protected]) domingo hernández departamento de...

34
Programación 1 (01y 05) Prof. Flor Narciso ([email protected]) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento (GIDyC) Escuela de Ingeniería de Sistemas Facultad de Ingeniería

Upload: jose-maria-romero-gomez

Post on 23-Jan-2016

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Programación 1 (01y 05)

Prof. Flor Narciso ([email protected])Domingo Hernández

Departamento de ComputaciónGrupo de Ingeniería de Datos y Conocimiento (GIDyC)

Escuela de Ingeniería de SistemasFacultad de Ingeniería

Page 2: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Programación 1 - Semestre B-2010 2Prof. Flor Narciso – Domingo Hernàndez

PARA MAÑANA:

Resumen Curricular ¿Sabe usted hacer un CV?

Completar la encuesta de reclutamiento de personal (la que les voy a repartir al final de esta clase)

Carta de Intención: No piense en qué puede aprender o qué le puede aportar la profesora a usted en este curso. Trate mas bien de pensar en: ¿Qué puede aportar USTED a la compañía para la que trabajará?

Entregar en la Secretaría del Departamento de Computación de EISULA (Srta. Rosmary)

Page 3: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento
Page 4: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Unidad III: Metodología de desarrollo de programas

Objetivo: Resolver problemas mediante el uso de una computadora

4Programación 1Semestre A-2009

Actualmente se cuenta con distintas metodologías para el desarrollo de aplicaciones de software: Espiral, Watch, RUP, EUP, Incremental, Cascada, Cascada V, etc.

Prof. Flor Narciso – Domingo Hernàndez

Page 5: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas

Pasos de la metodología a utilizar en el curso– Análisis del problema– Diseño del algoritmo– Codificación– “Corrida en frío” del programa (manual)– Depuración del programa– Ejecución del programa (computadora)– Comprobación del programa– Puesta en operación del programa– Mantenimiento del programa

5Programación 1Semestre A-2009

Prof. Flor Narciso – Domingo Hernàndez

Page 6: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Análisis

Análisis del problema (Análisis E-P-S)

• Identificar y comprender el problema

• Describir los datos de entrada (E): Información necesaria para la solución del problema

¿ Qué datos son de entrada ¿ Cuántos datos se introducirán ¿ Cuáles datos de entrada son válidos ¿ Cuál es el tipo de los datos

6Programación 1Semestre A-2009

Prof. Flor Narciso – Domingo Hernàndez

Page 7: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Análisis

EjemploSe patea una pelota con una fuerza de 1,2 N y adquiere una

aceleraciónde 3,0 m/s2, ¿cuál es la masa de la pelota?

Datos de entrada

Fuerza (F R) = 1,2 N Aceleración (a R) = 3,0 m/s2

1 N = 1 Kg . 1 m/s2

7Programación 1Semestre A-2009

Prof. Flor Narciso – Domingo Hernàndez

Page 8: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Análisis

Análisis del problema (Análisis E-P-S)

• Describir el proceso que permite resolver el problema (P): Operaciones o cálculos necesarios para encontrar la solución del problema

¿ Qué tipo de ecuaciones ¿ Cuántas ecuaciones ¿ Cuáles ecuaciones

8Programación 1Semestre A-2009

Prof. Flor Narciso – Domingo Hernàndez

Page 9: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Análisis

EjemploSe patea una pelota con una fuerza de 1,2 N y adquiere una

aceleraciónde 3,0 m/s2, ¿cuál es la masa de la pelota?

Datos de entrada Proceso

Fuerza (F R) = 1,2 NAceleración (a R) = 3 m/s2

1 N = 1 Kg . 1 m/s2

F = m . am = F/a

9Programación 1Semestre A-2009

Prof. Flor Narciso – Domingo Hernàndez

Page 10: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Análisis

Análisis del problema (Análisis E-P-S)

• Describir los resultados esperados (S): Resultados finales de los cálculos

¿ Cuáles son los datos de salida ¿ Cuántos datos de salida se producirán ¿ Qué precisión tendrán los resultados ¿ Se debe imprimir un encabezado

Prof. Flor Narciso 10Programación 1Semestre A-2009

Page 11: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Análisis

EjemploSe patea una pelota con una fuerza de 1,2 N y adquiere una

aceleraciónde 3 m/s2, ¿cuál es la masa de la pelota?

Prof. Flor Narciso

Datos de entrada Proceso Salidas

Fuerza (F R) = 1,2 NAceleración (a R) = 3 m/s2

1 N = 1 Kg . 1 m/s2

F = m . am = F/a

masa (m R)

11Programación 1Semestre A-2009

Page 12: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Análisis

Prof. Flor Narciso

ProgramaDatos

(Entrada)

Información

(Salida)

12Programación 1Semestre A-2009

¿ Qué datos tenemos ? ¿ Cómo les llamamos ?¿ Cómo son (tipo y/oestructura) ?¿ Qué se puede hacer con ellos ?

¿ Qué le hacemos a los datos ? ¿ En qué orden (cuándo se lo hacemos) ? ¿ Cuántas veces ?

Fuerza (F R) = 1,2 NAceleración (a R) = 3 m/s2

1 N = 1 Kg . 1 m/s2

F = m . am = F/a

masa (m R)

Page 13: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de Desarrollo de Programas: Análisis

Análisis del problema (Análisis E-P-S)

Entradas: – Fuerza (F R)– Aceleración (a R)

Prof. Flor Narciso 13Programación 1Semestre A-2009

Page 14: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Análisis

Análisis del problema (Análisis E-P-S)

Proceso: – Calcular la masa de la pelota (Qué??)

Prof. Flor Narciso 14Programación 1Semestre A-2009

(Cómo????)

Page 15: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Análisis

Análisis del problema (Análisis E-P-S)

Salidas: – Masa de la pelota (m R)

15Programación 1Semestre A-2009

Prof. Flor Narciso – Domingo Hernàndez

Page 16: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Diseño

Diseño del algoritmo: Descripción de una secuencia finita y ordenada de pasos – sin ambigüedades – que conducen a la solución de un problema dado

Herramientas de diseñoDiagramas de flujos (programaciónestructurada)Círculos y canales de mensaje (programación orientada

porobjetos)Pseudo código (algoritmo)Trazas personalesFórmulas matemáticasTodo aquello que le ayude a representar la solución del problema

16Programación 1Semestre A-2009

Prof. Flor Narciso – Domingo Hernàndez

Page 17: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Diseño

Ejemplo: Notación formal

Algoritmo calcularMasa0. Inicio1. Leer (F)2. Leer(a)

3.m= F/a

4. Escribir (m)5. Fin

Entradas

Proceso

Salida

17Programación 1Semestre A-2009

Prof. Flor Narciso – Domingo Hernàndez

Page 18: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Diseño

• Un algoritmo debe ser precisoe indicar el orden de realización de cada paso

• Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez

• Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea, debe tener un número finito de pasos

18Programación 1Semestre A-2009

Prof. Flor Narciso – Domingo Hernàndez

Page 19: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Codificación

Codificación: Traducción del algoritmo a un programa escrito en un lenguaje de programación adecuado (código fuente)

• Los diferentes pasos de un algoritmo se expresan en los programas como sentencias o proposiciones

• Para escribir el programa en la computadora se utiliza un software llamado editor de texto

• Lenguaje de programación C19Programación 1

Semestre A-2009Prof. Flor Narciso – Domingo Hernàndez

Page 20: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Codificación

Ejemplo

0. Inicio

1. Leer (F)2. Leer (a)

3. m = F/a

4. Escribir (m)

5. Fin

#include<stdio.h>

intmain() { float F, a, m;

scanf(“%f”, &F);scanf(“%f”, &a);

m = F/a;

printf(“m = %f\n”, m); return 0;}

20Programación 1Semestre A-2009

Prof. Flor Narciso – Domingo Hernàndez

Page 21: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Codificación

#include<stdio.h>

intmain() {

float F, a, m;

Programación 1Semestre A-2009

21

Entradas

Fuerza (F R) Aceleración (a R)

Salida

masa (m R)

Prof. Flor Narciso – Domingo Hernàndez

Page 22: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Codificación

#include<stdio.h>

intmain() {

float F, a, m;

scanf("%f", &F);

scanf("%f", &a);Programación 1

Semestre A-200922

F = 1.2

a = 3.0

Prof. Flor Narciso – Domingo Hernàndez

Page 23: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Codificación

#include<stdio.h>

intmain() {

float F, a, m;

scanf("%f", &F);scanf("%f", &a);

m = F/a;Programación 1

Semestre A-200923

m = 1.2/3.0 = 0.4

Prof. Flor Narciso – Domingo Hernàndez

Page 24: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Codificación

#include<stdio.h>

intmain() {

float F, a, m;

scanf("%f", &F);scanf("%f", &a);m = F/a;printf("\nm = %f\n\n", m);return 0;}

Programación 1Semestre A-2009

24

m = 0.4

Prof. Flor Narciso – Domingo Hernàndez

Page 25: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Corrida en frío

Corrida en frío del programa:Prueba manual de la correctitud del programa

• El programador escoge un conjunto de datos de entrada, ejecutando manualmente cada sentencia del programa fuente y verificando que los resultados obtenidos son los esperados de acuerdo al conjunto de datos de entrada

• El programador debe realizar este proceso utilizando conjuntos de datos que permitan ejecutar todos los “caminos” posibles del programa

Programación 1Semestre A-2009

25Prof. Flor Narciso – Domingo Hernàndez

Page 26: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Corrida en frío

Ejemplo

F a m

1.2 3.0 0.4

2.0 4.0 0.5

1.5 2.0 0.75

1.5 0.0 infinito

Programación 1Semestre A-2009

26Prof. Flor Narciso – Domingo Hernàndez

Page 27: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Depuración

Depuración del programa: Identificación y eliminación de errores una vez que el programa ha sido compilado

– Errores de sintaxis: Violan las reglas del lenguaje de programación. Un buen compilador localizará e identificará la mayoría de estos automáticamente

– Errores lógicos: Equivocaciones que causan que el programa se ejecute de forma inesperada o incorrecta

Programación 1Semestre A-2009

27Prof. Flor Narciso – Domingo Hernàndez

Page 28: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Ejecución

Ejecución del programa: Ejecución del código ejecutable (código en lenguaje de máquina) del programa bajo el control del CPU

• Una vez editado, el programa fuente es traducidopor el compiladora un programa escrito en lenguaje de máquina (código objeto), siempre y cuando el programa no tenga errores de sintaxis (errores gramaticales)

Programación 1Semestre A-2009

28

Ejemplo: Error de sintaxisif (a <b // Falta un paréntesis que cierra

Prof. Flor Narciso – Domingo Hernàndez

Page 29: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Ejecución

• Si el programa fuente tiene errores de sintaxis no se genera código objeto

• Los errores deben ser corregidos usando el editor y luego el programa fuente se debe volver a compilar

• Cuando el programa está sintácticamente correcto, el código objeto es encadenado con las funciones de librería (otros programas) requeridas usando un software llamado encadenador

Programación 1Semestre A-2009

29Prof. Flor Narciso – Domingo Hernàndez

Page 30: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Ejecución

• El código objeto compilado y encadenado es cargado en la memoria principal para su ejecución por un software llamado cargador

• El código objeto compilado, enlazado y cargado (código ejecutable) es ejecutadohaciendo uso de los datos de entrada

Programación 1Semestre A-2009

30Prof. Flor Narciso – Domingo Hernàndez

Page 31: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Comprobación

Comprobación del programa: Verificación de que los resultados obtenidos después de la ejecución del programa corresponden con los resultados esperados

Programación 1Semestre A-2009

31Prof. Flor Narciso – Domingo Hernàndez

Page 32: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Comprobación

• Comprobar que el programa realiza las tareas para las cuales ha sido diseñado y produce el resultado correcto y esperado

• Si el programa tiene errores de lógica (errores en el método de solución por lo que las salidas obtenidas no corresponden con las salidas esperadas), éstos deben ser corregidos en el programa fuente usando el editor, el cual se debe volver a compilar

Programación 1Semestre A-2009

32

Ejemplob = 0;c = 5/b; // División entre cero

Prof. Flor Narciso – Domingo Hernàndez

Page 33: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Ejecución

Programa fuente

Editor

Programa fuente

Compilador

Errores de

sintaxis

SI NO

Encadenador

Corregir errores en el programa

fuente

Código objeto

Funciones de librería

Cargador

Código objeto

Ejecución

Código ejecutable

Errores de lógica

NO

SIResultados

33Solución del problemaProf. Flor Narciso – Domingo Hernàndez

Page 34: Programación 1 (01y 05) Prof. Flor Narciso (fnarciso@ula.ve) Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento

Metodología de desarrollo de programas: Puesta en operación y mantenimiento

Puesta en operación: Instalación del hardware y software, capacitación, etc..

Mantenimiento del programa: – Comienza tan pronto como el producto es puesto en

operación– Permite corregir defectos menores, añadir una mayor

funcionalidad, ya sea en respuesta a las demandas del mercado o a las peticiones del usuario

Programación 1Semestre A-2009

34Prof. Flor Narciso – Domingo Hernàndez