Tema 2 Conceptos básicos de programación

Anuncio
Tema 2
Conceptos básicos de programación
Fundamentos de Informática
Índice
•
Metodología de la programación
•
Programación estructurada
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 2: Conceptos básicos de programación
2
Metodología de la Programación
•
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.
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 2: Conceptos básicos de programación
3
Metodología de la Programación
– Análisis del problema
ANÁLISIS DEL
PROBLEMA
DATOS DE
ENTRADA
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
DEFINICIÓN
PROBLEMA
Tema 2: Conceptos básicos de programación
DATOS DE
SALIDA
(Resultados)
4
Metodología de la Programación
– Análisis del problema
•
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).
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 2: Conceptos básicos de programación
5
5
Metodología de la Programación
•
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:
División del problema en subproblemas
PROBLEMA
DATOS DE
ENTRADA
DATOS DE
SALIDA
DEFINICIÓN
PROBLEMA
Problema 1
Dato 1.
Dato 2.
Salida 1.
Subproblema 1. 1
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Subproblema 1.2
Tema 2: Conceptos básicos de programación
6
Salida 2.
Metodología de la Programación
• Diseño de el/los algoritmos
INICIO
Diagrama de flujo
Acumuladores a cero s=0
Contador a cero n=0
Introducir un número en a
a=0
SI
NO
Promedio p=s/n
Contarlo n=n+1
Imprimir
Promedio
Acumulativo s=s+a
Introducir un número
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
FIN
Tema 2: Conceptos básicos de programación
7
Metodología de la Programación
• Diseño de el/los algoritmos Diagrama de flujo
TERMINAL
ENTRADA-SALIDA
PROCESO
SI
DECISIÓN
NO
CONECTOR
COMENTARIOS
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 2: Conceptos básicos de programación
8
8
Metodología de la Programación
• Diseño de el/los algoritmos Diagrama de flujo
SUBRUTINA
PANTALLA
IMPRESORA
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 2: Conceptos básicos de programación
9
9
Metodología de la Programación
•
Diseño de el/los algoritmos
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.
Ejemplo:
Definición de variables_componentes.
Inicio
Escribir_texto (‘entrada de dato’);
Leer_Dato(dato);
Proceso
salida = dato * 2;
Escribir_resultado_proceso (salida);
Fin
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 2: Conceptos básicos de programación
10
Metodología de la Programación
•
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): –
–
•
De alto nivel (no dependen de la máquina):
–
–
–
–
Lenguaje Máquina (escritura en binario)
Ensambladores: (escritura simbólica)
Imperativos:
Estructurados
• FORTRAN
• C
• PASCAL
Declarativos: • LISP / PROLOG
Orientados a Objeto
i Java
i C++
i Ada 95
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.
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 2: Conceptos básicos de programación
11
Metodología de la Programación
•
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
Traductor
PROGRAMA
FUENTE
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Compilador
PROGRAMA
OBJETO
Tema 2: Conceptos básicos de programación
12
Metodología de la Programación
PROGRAMA
•
FUENTE
Compilación
Fases de un compilador
Analizador
Morfológico
Analizador
Sintáctico
Analizador
Semántico
Programa en
lenguaje
intermedio
Optimizador
Generador de
Código
Programa Objeto
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 2: Conceptos básicos de programación
13
Metodología de la Programación
Compilación y enlace
Errores de Compilación
(léxicos, sintácticos y
semánticos)
Programa
Fuente
(texto)
Archivos
de Biblioteca
Archivos
incluídos
Compilador
Programa Objeto
Enlazador
Otros programas objetos
Programa
Ejecutable
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 2: Conceptos básicos de programación
14
Metodología de la Programación
•
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.
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 2: Conceptos básicos de programación
15
Metodología de la Programación
Compilación y enlace +
Verificación y depurado
Errores de Compilación
(léxicos, sintácticos y
semánticos)
Programa
Fuente
(texto)
Compilador
Archivos
de Biblioteca
Archivos
incluídos
Programa Objeto
Enlazador
Errores de ejecución
Errores lógicos
Resultados
Correctos
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Verificación y
Depurado
Tema 2: Conceptos básicos de programación
16
Programa
Ejecutable
Metodología de la Programación
•
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,...
•
...
•
•
•
•
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 2: Conceptos básicos de programación
17
Metodología de la Programación: Fases
Problema
Análisis
Definición del
Problema
Datos de Entrada
Datos de Salida
Diseño
División modular
del Problema
(Pseudocódigo,
Diagrama de Flujo)
DE, DS
Codificación
Documentación
Programa fuente
Pseudocódigo
Diagrama de Flujo
Manual de Usuario
Especificación de los Datos
...
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Programa
Fuente
Errores de
Compilación
Compilar y
Enlazar
Errores de Ejecución
Errores de Lógica
Programa
Ejecutable
Verificar y
Depurar
Tema 2: Conceptos básicos de programación
18
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 Estructurada
Todo algoritmo puede ser descrito utilizando solamente tres tipos de estructuras de control: secuencial, alternativa, y repetitiva.
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 2: Conceptos básicos de programación
19
Programación Estructurada
•
Secuencia
–
•
Todas las acciones se ejecutan sucesivamente, una a continuación de otra sin posibilidad de bifurcaciones. Acción 1
Acción 2
Sentencias Alternativa –
Una estructura alternativa bifurca el flujo de un algoritmo según se cumplan una o varias condiciones.
Falso
Cierto
Falso
Cierto
Condición
Condición
Acción
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Acción 3
Acción 1
Acción 2
Tema 2: Conceptos básicos de programación
20
Programación Estructurada
•
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)
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 2: Conceptos básicos de programación
21
Programación Estructurada
PARA
Falsa
Índices
Cierta
Acción
HACER
MIENTRAS
MIENTRAS
Falso
Acción
Condición
Cierta
Cierta
Condición
Acción
Falsa
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 2: Conceptos básicos de programación
22
Ejemplos
•
Diseñar un algoritmo que resuelva una ecuación de segundo grado:
– Datos de entrada:
•
–
Datos de salida:
•
–
Coeficientes a,b,c
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).
•
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 2: Conceptos básicos de programación
23
Ejemplo (opción 1):
Ecuación de Segundo Grado – Diagrama de flujo
INICIO
Entrada de
datos: a , b , c
NO
a!= 0
SI
DECISIÓN
SI
NO
b*b >4*a*c
No ecuación
de 2º grado
Datos
Incorrectos
x1=(-b+sqrt(b*b-4*a*c))/2*a
FIN
x2=(-b-sqrt(b*b-4*a*c))/2*a
FIN
Salida
x1, x2
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
FIN
Tema 2: Conceptos básicos de programación
24
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
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 2: Conceptos básicos de programación
25
Escuela Técnica Superior de Ingeniería ICAI
Alberto Aguilera 25
28015 Madrid
Tel +34 91 542 28 00
Fax + 34 91 542 31 76
Iwww.icai.upcomillas.es
www.upcomillas.es
Descargar