Programación Modular

Anuncio
Programación Modular
Informática aplicada al medio ambiente
curso 2010/2011
Elementos básicos

Estructuras de datos

Modelización de la información


Funciones


Entrada, salida, datos intermedios, etc.
Transformación de los datos, hasta conseguir el
resultado final
Módulos


Agrupación lógica de Estructuras y Funciones
Ej: Interfaz de usuario, Base de datos, Motor de
inferencia, etc.
Informática aplicada al Medio Ambiente
2
Objetivos de la programación
modular

Hacer más legible y manejable un programa

Simplificación del problema: Divide y vencerás

Aumentar su capacidad de reutilización

Facilita el trabajo en equipo
Informática aplicada al Medio Ambiente
3
Funciones

Transforman datos

Variables de entradas

Variables de salida

Variables de Entrada / Salida

Realizan un única tarea, bien definida

El nombre indicará su función

Pueden usar otras funciones

Si se llama a si misma => función recursiva
Informática aplicada al Medio Ambiente
4
Funciones

Espacio de trabajo local

Aisladas del programa, solo se comunican
mediante los argumentos de entrada y la salida de
la función

Excepción: Variables globales

Ej.: A = f(B)

Si B es una variable de entrada, f no puede
modificar B

En matlab todos los argumentos son de entrada

La salida se guarda en A
Informática aplicada al Medio Ambiente
5
Funciones Matlab

function [out1, out2, ..., outN]





= nombre_funcion (in1, in2, ..., inM)
Mismo nombre que el fichero .m donde se
define
Las variables definidas dentro de la función son
locales
Al modificar un parámetro de entrada se hace
una copia para evitar su modificación
out1=salida1 %modifica la salida
Informática aplicada al Medio Ambiente
6
Funciones Matlab
function t= gases(p, v, n)
%t= gases(p, v, n)
%Entrada:
% p = presión en atmósferas
% v = volumen en litros
% n = número de moles
%Salida:
% t= temperatura (grados kelvin)
R= 0.0821 %cte atm*litros/mol*grado
t= p*v / (n*R);
Informática aplicada al Medio Ambiente
7
Programa vs Función


Programa: Mismo efecto que ejecutar linea a
linea en ventana de comandos
Funciones: Solo accede a los argumentos de
entrada y variables globales declaradas

Variables de programa: globales

Variables de función: locales

Variables locales:


Se destruyen al salir de la función
No interfieren con variables del mismo nombre en
otras partes del programa
Informática aplicada al Medio Ambiente
8
Variables globales

global v1 v2 ... vN

Se declara en la primera linea de la función

Son accesibles desde cualquier función que la
declare global


Compartidas
clear v1

Desliga la variable global del espacio de trabajo
actual (opuesto a global)
Informática aplicada al Medio Ambiente
9
Variables globales

Dificultan la comprensión del código si son más
utilizadas

Impiden que las funciones sean reentrantes

Dificultan la reutilización del código

=>Limitar su uso en la medida de lo posible, ej.:
para constantes
Informática aplicada al Medio Ambiente
10
Funciones II

Subfunciones:




Son privadas. No se pueden utilizar fuera de las
funciones del mismo archivo
Funciones sin valor de retorno


Funciones dentro del mismo archivo
function f(in1, in2, in3)
Funciones con un solo retorno: No requiere
poner [ ]
Sin entradas: No requiere ( )
Informática aplicada al Medio Ambiente
11
Funciones III

Nº de argumentos variable

nargin: número de entradas

nargout: número de salidas

return finaliza la ejecución de la función

help función:


Muestra comentarios detrás del nombre
La primera linea es la usada por lookfor para
buscar
Informática aplicada al Medio Ambiente
12
Ejemplo
function [ media, mediana ] = mm (v)
n=length(v);
media= average (v, n); mediana = median (v, n);
function a= average (v, n)
a=sum(v)/n;
function m= median (v, n)
w=sort(v);
if rem(n,2) == 1, m=w((n+1)/2);
else m=(w(n/2)+w(1+n/2))/2; end
Informática aplicada al Medio Ambiente
13
Ejecución de funciones

m=mm(w); %¿media o mediana?
%Se comienza por la 1ª salida

Orden de búsqueda:
1.Funciones de usuario
2.Subfunciones del mismo fichero
3.Funciones de biblioteca
Informática aplicada al Medio Ambiente
14
Referencias de funciones


Una función puede ser un tipo de dato. Sirve
para pasar una función a otra
Ej: quad('sin', 0, pi);


Quad calcula la integral de la función dada para el
intervalo indicado
Biblioteca de integración numérica QuadPack
Informática aplicada al Medio Ambiente
15
Evaluación de funciones

Para evaluar una función:


feval('nombre' o referencia a función,
argumentos...)
Obtener referencia a función:

@sin o str2func('nombre de función')
Informática aplicada al Medio Ambiente
16
Celdas



Hasta ahora. Arrays de un tipo de dato
Con celdas → Arrays con elementos de distinto
tipo
Notación: Elementos entre { y }

c={'Juan', 'Pérez', 3.25}

c(1,1) → {'juan'} %Una celda

c{1,1} → 'juan' %El contenido de la celda

cell(n) % matriz cuadrada de nxn celdas

cell(n, m) % matriz de n filas y m columnas
Informática aplicada al Medio Ambiente
17
Funciones con celdas



celldisp(c) → muestra la celda
cellplot(c) → representación gráfica de la celda
%solo en matlab
cellfun(función, celda)

aplica la función a cada elemento del array de
celdas
Ej.:c={1, 3; 'juan', 7.5}
cellfun('isclass', c, 'double')
11
01
Informática aplicada al Medio Ambiente
18
Estructuras




¿Qué son?

Agrupación de datos de distinto tipo

Organizados por campos con nombre
Ej:

alumno.nombre='Juan'

alumno.dni='123456'
alumno = struct('nombre', 'Juan', 'dni', 123456)
La estructura se puede ampliar añadiendo
campos
Informática aplicada al Medio Ambiente
19
Estructuras II

Matrices de estructuras:

v(7)=alumno



Crea un vector de 7 elementos, con la estructura de
alumno
Guarda el alumno en la posición 7
Estructuras anidadas

clase= struct('curso', 'primero', 'grupo', 'A',
'alumnos', v)

Ventajas: Flexibilidad y organización

Desventaja: Menor eficiencia
Informática aplicada al Medio Ambiente
20
Descargar