You are on page 1of 8

Bloque 1.

Conceptos y tcnicas bsicas en programacin


1. Introduccin 2. Datos y expresiones. Especificacin de algoritmos 3. Estructuras algortmicas bsicas 4. Iteracin y recursin 5. Iteracin y recursin sobre secuencias 6. Iteracin y recursin sobre tablas

UNIVERSIDAD DE CANTABRIA

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN 4

Michael Gonzlez Harbour y Jos Luis Montaa 30/sept/09

Notas:
1. Introduccin

UNIVERSIDAD DE CANTABRIA

Programas, y lenguajes. Necesidad de la programacin modular. Ciclo de vida de los programas. Concepto de algoritmo. Nocin de proceso. Variables. Estado de un programa. 2. Datos y expresiones. Especificacin de algoritmos 3. Estructuras algortmicas bsicas 4. Iteracin y recursin 5. Iteracin y recursin sobre secuencias 6. Iteracin y recursin sobre tablas

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour y Jos Luis Montaa 30/sept/09

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 informacin Se escribe en un lenguaje que el computador entienda lenguaje de programacin generalmente es necesario un proceso de traduccin automtica (compilacin)

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour y Jos Luis Montaa 30/sept/09

Necesidad de la programacin modular

UNIVERSIDAD DE CANTABRIA

Los programas pueden llegar a ser muy complejos y para poder gestionar esta complejidad se dividen en mdulos independientes entre s llamados clases en Java Un mdulo de programa contiene datos y operaciones para manipular datos Cada una de esas operaciones representa un algoritmo

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour y Jos Luis Montaa 30/sept/09

El ciclo de vida de un programa


Requerimientos Informales Documento de Requerimientos Documento de Especificaciones Arquitectura del Programa

UNIVERSIDAD DE CANTABRIA

Anlisis de Requerimientos

Anlisis de Especificaciones

Diseo de la Arquitectura

Integracin y pruebas de sistema

Pruebas de mdulo

Codificacin

Diseo Detallado

Programa final

Mdulos de Programa Probados

Mdulos de Programa

Diseo de cada Mdulo (pseudocdigo)

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour y Jos Luis Montaa 30/sept/09

Coste de los sistemas informticos

UNIVERSIDAD DE CANTABRIA

La mayor parte del gasto en sist. informticos es el software Los errores software tienen un alto coste: efecto y correccin
Coste relativo de corregir un error 100 80 % del coste total 60 40 20 0 1955 Ao Hardware 100 40 16 6.3 2.5 0

Software

1970

1995

Ana Dis Cod Int Pru Man Etapa en que se detecta el error

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour y Jos Luis Montaa 30/sept/09

Distribucin del Esfuerzo de desarrollo

UNIVERSIDAD DE CANTABRIA

anlisis y diseo codificacin pruebas e integracin

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour y Jos Luis Montaa 30/sept/09

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

UNIVERSIDAD DE CANTABRIA

El algoritmo se disea en la etapa de diseo detallado y se corresponde habitualmente con el nivel de operacin o mtodo 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 MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour y Jos Luis Montaa 30/sept/09

Nocin de proceso
Un proceso es la accin de ejecutar las instrucciones de un programa Se manifiesta por una sucesin de cambios de estado en la memoria y en el entorno del computador es decir, cambios en la informacin almacenada en el computador y su entorno

UNIVERSIDAD DE CANTABRIA

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour y Jos Luis Montaa 30/sept/09

Variables y estado de un programa

UNIVERSIDAD DE CANTABRIA

La informacin 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 MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour y Jos Luis Montaa 30/sept/09

10

Ejemplo del estado de un programa

UNIVERSIDAD DE CANTABRIA

Programa que intenta mantener una habitacin a una temperatura deseada ( 0.5 grados) dispone de un radiador que se puede encender y apagar, y un termmetro 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 MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour y Jos Luis Montaa 30/sept/09

11

Ejemplo (cont.)
Algoritmo Repetir continuamente lo siguiente si hace fro encender el radiador si hace calor apagar el radiador esperar un rato frepetir

UNIVERSIDAD DE CANTABRIA

El algoritmo se repite continuamente (hasta que el usuario apague el sistema) Ahora debemos refinar este algoritmo para expresarlo en trminos de las variables del sistema

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour y Jos Luis Montaa 30/sept/09

12

Ejemplo (cont.)
Algoritmo refinado Repetir continuamente lo siguiente si tempAmbiente<tempDeseada-0.5 entonces // hace fro estadoRadiador:=encendido fsi si tempAmbiente>tempDeseada+0.5 entonces // hace calor estadoRadiador:=apagado fsi esperar 1 minuto frepetir

UNIVERSIDAD DE CANTABRIA

Observar que si no hace ni fro ni calor el radiador se queda como estaba


DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour y Jos Luis Montaa 30/sept/09

13

A observar

UNIVERSIDAD DE CANTABRIA

Hemos descrito el algoritmo mediante la tcnica llamada pseudocdigo, que tiene instrucciones de control presentes en todos los lenguajes si condicin entonces hacer cosas fsi obsrvese el uso del sangrado para determinar el mbito de aplicacin de cada instruccin de control clculos acciones expresadas sin el formalismo de los lenguajes El propsito es que el pseudocdigo refinado sea sencillo, y directamente traducible a cdigo en cualquier lenguaje
DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour y Jos Luis Montaa 30/sept/09

14

Traza del proceso

UNIVERSIDAD DE CANTABRIA

Podemos observar los diferentes estados del sistema, por ejemplo al inicio del algoritmo
tempDeseada
23.0 23.0 23.0 23.0 23.0 23.0 24.0 24.0

tempAmbiente
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 MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour y Jos Luis Montaa 30/sept/09

15

UNIVERSIDAD DE CANTABRIA

DEPARTAMENTO DE MATEMTICAS, ESTADSTICA Y COMPUTACIN

Michael Gonzlez Harbour y Jos Luis Montaa 30/sept/09

16

You might also like