Bloque 1. Conceptos y técnicas básicas en programación

Anuncio
Bloque 1. Conceptos y técnicas básicas
en programación
UNIVERSIDAD
DE CANTABRIA
1. Introducción
2. Datos y expresiones. Especificación de algoritmos
3. Estructuras algorítmicas básicas
4. Iteración y recursión
5. Iteración y recursión sobre secuencias
6. Iteración y recursión sobre tablas
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA
Y COMPUTACIÓN
4
© Michael González Harbour y José Luis Montaña
30/sept/09
Notas:
1
UNIVERSIDAD
DE CANTABRIA
1. Introducción
• Programas, y lenguajes. Necesidad de la programación modular. Ciclo de vida de los programas.
Concepto de algoritmo. Noción de proceso. Variables. Estado de un programa.
2. Datos y expresiones. Especificación de algoritmos
3. Estructuras algorítmicas básicas
4. Iteración y recursión
5. Iteración y recursión sobre secuencias
6. Iteración y recursión sobre tablas
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
30/sept/09
2
Programas y lenguajes
UNIVERSIDAD
DE CANTABRIA
Un programa es un conjunto completo de instrucciones que el
computador es capaz de ejecutar con el fin de tratar información
Se escribe en un lenguaje que el computador entienda
• lenguaje de programación
• generalmente es necesario un proceso de traducción
automática (compilación)
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
30/sept/09
Necesidad de la programación modular
3
UNIVERSIDAD
DE CANTABRIA
Los programas pueden llegar a ser muy complejos y para poder
gestionar esta complejidad se dividen en módulos
• independientes entre sí
• llamados clases en Java
Un módulo de programa contiene datos y operaciones para
manipular datos
Cada una de esas operaciones representa un algoritmo
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
30/sept/09
4
El ciclo de vida de un programa
Requerimientos
Informales
Documento de
Requerimientos
Análisis de
Requerimientos
Integración y
pruebas de
sistema
Programa
final
Diseño de la
Arquitectura
Codificación
Módulos de
Programa
Módulos de
Programa
Probados
Arquitectura
del Programa
Documento de
Especificaciones
Análisis de
Especificaciones
Pruebas
de módulo
UNIVERSIDAD
DE CANTABRIA
Diseño
Detallado
Diseño de cada
Módulo (pseudocódigo)
© Michael González Harbour y José Luis Montaña
30/sept/09
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
Coste de los sistemas informáticos
5
UNIVERSIDAD
DE CANTABRIA
La mayor parte del gasto en sist. informáticos es el software
Los errores software tienen un alto coste: efecto y corrección
% del coste total
80
Coste relativo de corregir un error
100
Hardware
60
40
Software
20
0
1955
1970
Año
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
1995
100
40
16
6.3
2.5
0
Ana Dis Cod
Int
Pru Man
Etapa en que se detecta el error
© Michael González Harbour y José Luis Montaña
30/sept/09
6
Distribución del Esfuerzo de
desarrollo
UNIVERSIDAD
DE CANTABRIA
análisis y diseño
codificación
pruebas e
integración
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
30/sept/09
Concepto de algoritmo
7
UNIVERSIDAD
DE CANTABRIA
Un algoritmo es:
• una secuencia finita de instrucciones,
• cada una de ellas con un claro significado,
• que puede ser realizada con un esfuerzo finito
• y en un tiempo finito
El algoritmo se diseña en la etapa de diseño detallado y se
corresponde habitualmente con el nivel de operación o método
Los programas se componen habitualmente de muchas clases
que contienen algoritmos, junto con datos utilizados por ellos
• los datos y algoritmos relacionados entre sí se encapsulan en la
misma clase
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
30/sept/09
8
Noción de proceso
UNIVERSIDAD
DE CANTABRIA
Un proceso es la acción de ejecutar las instrucciones de un
programa
Se manifiesta por una sucesión de cambios de estado en la
memoria y en el entorno del computador
• es decir, cambios en la información almacenada en el
computador y su entorno
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
30/sept/09
Variables y estado de un programa
9
UNIVERSIDAD
DE CANTABRIA
La información que maneja un programa se almacena en unidades
llamadas variables
• almacenan un valor
• de un determinado tipo
• se identifican por un nombre
El estado de un programa en un momento dado es el valor de las
variables en ese instante
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
30/sept/09
10
Ejemplo del estado de un programa
UNIVERSIDAD
DE CANTABRIA
Programa que intenta mantener una habitación a una temperatura
deseada (± 0.5 grados)
• dispone de un radiador que se puede encender y apagar,
• y un termómetro
Variables:
• tempDeseada: magnitud real (ºC)
• tempAmbiente: magnitud real (ºC)
• estadoRadiador: encendido o apagado
Estado del programa
• valor de tempDeseada, tempAmbiente, y estadoRadiador en
cada instante
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
30/sept/09
Ejemplo (cont.)
11
UNIVERSIDAD
DE CANTABRIA
Algoritmo
Repetir continuamente lo siguiente
si hace frío encender el radiador
si hace calor apagar el radiador
esperar un rato
frepetir
El algoritmo se repite continuamente (hasta que el usuario apague
el sistema)
Ahora debemos refinar este algoritmo para expresarlo en términos
de las variables del sistema
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
30/sept/09
12
Ejemplo (cont.)
UNIVERSIDAD
DE CANTABRIA
Algoritmo refinado
Repetir continuamente lo siguiente
si tempAmbiente<tempDeseada-0.5 entonces
// hace frío
estadoRadiador:=encendido
fsi
si tempAmbiente>tempDeseada+0.5 entonces
// hace calor
estadoRadiador:=apagado
fsi
esperar 1 minuto
frepetir
Observar que si no hace ni frío ni calor el radiador se queda como
estaba
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
30/sept/09
A observar
13
UNIVERSIDAD
DE CANTABRIA
Hemos descrito el algoritmo mediante la técnica llamada
pseudocódigo, que tiene
• instrucciones de control presentes en todos los lenguajes
si condición entonces
hacer cosas
fsi
• obsérvese el uso del sangrado para determinar el ámbito de
aplicación de cada instrucción de control
• cálculos
• acciones expresadas sin el formalismo de los lenguajes
El propósito es que el pseudocódigo refinado sea sencillo, y
directamente traducible a código en cualquier lenguaje
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
30/sept/09
14
Traza del proceso
UNIVERSIDAD
DE CANTABRIA
Podemos observar los diferentes estados del sistema, por ejemplo
al inicio del algoritmo
tempDeseada
tempAmbiente
estadoRadiador
23.0
21.4
apagado
23.0
22.1
encendido
23.0
22.8
encendido
23.0
23.4
encendido
23.0
24.1
encendido
23.0
23.8
apagado
24.0
23.3
apagado
24.0
24.2
encendido
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
30/sept/09
15
UNIVERSIDAD
DE CANTABRIA
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
30/sept/09
16
Descargar