Publicado el 14 de Enero del 2017
992 visualizaciones desde el 14 de Enero del 2017
77,9 KB
8 paginas
Creado hace 15a (30/09/2009)
Bloque 1. Conceptos y técnicas básicas
en programación
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
UNIVERSIDAD
DE CANTABRIA
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
4
© Michael González Harbour y José Luis Montaña
30/sept/09
1
Notas:
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
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
UNIVERSIDAD
DE CANTABRIA
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
3
UNIVERSIDAD
DE CANTABRIA
Necesidad de la programación modular
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
UNIVERSIDAD
DE CANTABRIA
Requerimientos
Informales
Documento de
Requerimientos
Documento de
Especificaciones
Arquitectura
del Programa
Análisis de
Requerimientos
Análisis de
Especificaciones
Diseño de la
Arquitectura
Integración y
pruebas de
sistema
Pruebas
de módulo
Codificación
Diseño
Detallado
Programa
final
Módulos de
Programa
Probados
Módulos de
Programa
Diseño de cada
Módulo (pseudocódigo)
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
30/sept/09
5
Coste de los sistemas informáticos
La mayor parte del gasto en sist. informáticos es el software
Los errores software tienen un alto coste: efecto y corrección
UNIVERSIDAD
DE CANTABRIA
100
80
60
40
20
l
a
t
o
t
e
t
s
o
c
l
e
d
%
Hardware
Software
0
1955
1970
Año
1995
100
40
16
6.3
2.5
0
r
o
r
r
e
n
u
r
i
g
e
r
r
o
c
e
d
o
v
i
t
a
l
e
r
e
t
s
o
C
Ana Dis
Cod
Int
Pru Man
Etapa en que se detecta el error
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© 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
7
UNIVERSIDAD
DE CANTABRIA
Concepto de algoritmo
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
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
UNIVERSIDAD
DE CANTABRIA
DEPARTAMENTO DE MATEMÁTICAS,
ESTADÍSTICA Y COMPUTACIÓN
© Michael González Harbour y José Luis Montaña
30/sept/09
9
UNIVERSIDAD
DE CANTABRIA
Variables y estado de un programa
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
UNIVERSIDAD
DE CANTABRIA
Ejemplo del estado de un programa
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
11
UNIVERSIDAD
DE CANTABRIA
Ejemplo (cont.)
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
UNIVERSIDAD
DE CANTABRIA
Ejemplo (cont.)
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
13
A observar
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
UNIVERSIDAD
DE CANTABRIA
• 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
Podemos observar los diferentes estados del sistema, por ejemplo
al inicio del algoritmo
tempDeseada
tempAmbiente
UNIVERSIDAD
DE CANTABRIA
23.0
23.0
23.0
23.0
23.0
23.0
24.0
24.0
21.4
22.1
22.8
23.4
24.1
23.8
23.3
24.2
estadoRadiador
apagado
encendido
encendido
encendido
encendido
apagado
apagado
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
Comentarios de: Bloque 1. Conceptos y técnicas básicas en programación (0)
No hay comentarios