Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas...

26
Tema 2 Conceptos básicos de programación Fundamentos de Informática

Transcript of Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas...

Page 1: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

Tema 2Conceptos básicos de programación

Fundamentos de Informática

Page 2: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

2Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación

Índice

• Metodología de  la programación

• Programación estructurada

Page 3: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

3Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación

Metodología de la Programación

• Pasos a seguir para el desarrollo de un programa (fases):

–– AnAnáálisis del problema.lisis del problema.–– DiseDiseñño de el/los algoritmos.o de el/los algoritmos.–– CodificaciCodificacióón del programa.n del programa.–– CompilaciCompilacióón.n.–– VerificaciVerificacióón/depuracin/depuracióón.n.–– DocumentaciDocumentacióón.n.

Page 4: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

4Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación

Metodología de la Programación

––AnAnáálisis del problemalisis del problema

ANÁLISIS DELPROBLEMA

DATOS DE ENTRADA

DEFINICIÓNPROBLEMA

DATOS DESALIDA

(Resultados)

Page 5: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

5Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación5

• 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).

Metodología de la Programación

––AnAnáálisis del problemalisis del problema

Page 6: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

6Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación

•• DiseDiseñño de el/los algoritmoso 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:

División del problema en subproblemas

Metodología de la Programación

PROBLEMA

DATOS DE ENTRADA

DEFINICIÓN PROBLEMA

DATOS DE SALIDA

Dato 1. Dato 2.Subproblema 1. 1

Salida 1. Salida 2.Subproblema 1.2

Problema 1

Page 7: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

7Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación

Metodología de la Programación

•• DiseDiseñño de el/los algoritmoso de el/los algoritmosDiagrama de flujo

Introducir un número

Acumulativo s=s+a

Contarlo n=n+1

FIN

ImprimirPromedio

Promedio p=s/n

Introducir un número en a

INICIO

Contador a cero n=0

Acumuladores a cero s=0

a=0 NOSI

Page 8: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

8Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación8

TERMINAL

ENTRADA-SALIDA

PROCESO

SI

NO

DECISIÓN

CONECTOR

COMENTARIOS

Metodología de la Programación

•• DiseDiseñño de el/los algoritmoso de el/los algoritmos Diagrama de flujo

Page 9: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

9Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación9

SUBRUTINA

PANTALLA

IMPRESORA

Metodología de la Programación

•• DiseDiseñño de el/los algoritmoso de el/los algoritmos Diagrama de flujo

Page 10: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

10Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación

Metodología de la Programación

•• DiseDiseñño de el/los algoritmoso de el/los algoritmosPseudocó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 y características de varios lenguajes de programación.

Ejemplo:

Definición de variables_componentes.Inicio

Escribir_texto (‘entrada de dato’);Leer_Dato(dato);

Procesosalida = dato * 2;

Escribir_resultado_proceso (salida);Fin

Page 11: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

11Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación

•• CodificaciCodificacióón del programan 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.

Metodología de la Programación

Page 12: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

12Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación

•• CompilaciCompilacióón y enlacen 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

Metodología de la Programación

PROGRAMAFUENTE

PROGRAMAOBJETO

Compilador

Traductor

Page 13: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

13Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación

Metodología de la ProgramaciónPROGRAMA

FUENTE

Analizador Morfológico

Analizador Sintáctico

Analizador Semántico

Programa Objeto

Optimizador

Generador de Código

Programa en lenguaje

intermedio

•• CompilaciCompilacióónnFases de un compilador

Page 14: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

14Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación

Metodología de la ProgramaciónCompilaciCompilacióón y enlacen y enlace

Archivosde Biblioteca

ProgramaFuente(texto)

Compilador EnlazadorPrograma Objeto

Archivosincluídos

Errores de Compilación(léxicos, sintácticos y semánticos)

ProgramaEjecutable

Otros programas objetos

Page 15: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

15Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación

•• VerificaciVerificacióón/depuracin/depuracióónn– 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.

Metodología de la Programación

Page 16: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

16Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación

Metodología de la ProgramaciónCompilaciCompilacióón y enlace +n y enlace +VerificaciVerificacióón y depuradon y depurado

Archivosde Biblioteca

ProgramaFuente(texto)

Compilador EnlazadorPrograma Objeto

Archivosincluídos

Errores de Compilación(léxicos, sintácticos y semánticos)

Errores de ejecuciónErrores lógicos Programa

EjecutableVerificación y

DepuradoResultadosCorrectos

Page 17: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

17Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación

•• DocumentaciDocumentacióónn– 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,...

• ...

Metodología de la Programación

Page 18: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

18Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación

Metodología de la Programación: Fases

Problema AnálisisDefinición del

ProblemaDatos de EntradaDatos de Salida

Diseño

División modulardel Problema

(Pseudocódigo, Diagrama de Flujo)

DE, DS

Codificación

Compilar y Enlazar

ProgramaFuente

Verificar y Depurar

ProgramaEjecutable

Programa fuentePseudocódigoDiagrama de FlujoManual de UsuarioEspecificación de los Datos...

Errores deCompilación

Errores de EjecuciónErrores de Lógica

Documentación

Page 19: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

19Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación

Programación Estructurada

• Un programa estructurado se basa en la aplicación sistemática de las siguientes reglas:– Diseño modular: descomponer un módulo complejo en otros submódulos más 

simples → Diseño Descendente– Programar cada módulo de manera lo más independiente posible– Razonamiento de lo general a lo particular.– Ventajas:

• Mejora la legibilidad del programa• Facilita el entendimiento del programa• Simplifica el mantenimiento• Minimiza la complejidad• Cada módulo puede ser programado por personas diferentes• Utilización de una metodología de programación disciplinada• Favorece el trabajo en equipo

– Problema: No existe un método estándar para dividir en módulos un programa

• Teorema de la Programación EstructuradaTodo algoritmo puede ser descrito utilizando solamente tres tipos de estructuras de control: secuencial, alternativa, y repetitiva.

Page 20: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

20Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación

Programación Estructurada

• 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.

Acción 1

Acción 2

Acción 3

Acción 1 Acción 2

Falso Cierto

Condición

Acción

Falso Cierto

Condición

Page 21: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

21Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación

• 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)

Programación Estructurada

Page 22: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

22Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación

Índices

PARA

Acción

Falso

Condición

Cierta

MIENTRAS

Cierta

Falsa

Acción

Condición

HACERMIENTRAS

Cierta

Falsa

Acción

Programación Estructurada

Page 23: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

23Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación

Ejemplos• 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).

Page 24: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

24Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación

Entrada de datos: a , b , c

DECISIÓN

b*b >4*a*c

SI NO

DatosIncorrectos

x1=(-b+sqrt(b*b-4*a*c))/2*a

x2=(-b-sqrt(b*b-4*a*c))/2*a

Salidax1, x2

INICIO

FIN

FIN

No ecuación de 2º grado

a!= 0SI

NO

FIN

Ejemplo (opción 1):Ecuación de Segundo Grado – Diagrama de flujo

Page 25: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

25Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI

Tema 2:  Conceptos básicos de programación

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*/

InicioEscribir (“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_sisino

Escribir (“ No se trata de una ecuación de 2º grado”)fin_si

Fin

Page 26: Tema 2 Conceptos básicos de programación · 2010. 9. 21. · Departamento de Sistemas Informáticos 10 Escuela Técnica Superior de Ingeniería ICAI Tema 2: Conceptos básicos de

Escuela Técnica Superior de Ingeniería ICAIAlberto Aguilera 2528015 MadridTel +34 91 542 28 00Fax + 34 91 542 31 76Iwww.icai.upcomillas.es

www.upcomillas.es