Publicado el 27 de Abril del 2018
514 visualizaciones desde el 27 de Abril del 2018
111,4 KB
20 paginas
Creado hace 13a (28/10/2010)
Programación Modular
Informática aplicada al medio ambiente
curso 2010/2011
Elementos básicos
Estructuras de datos
Modelización de la información
Entrada, salida, datos intermedios, etc.
Funciones
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:
Funciones dentro del mismo archivo
Son privadas. No se pueden utilizar fuera de las
funciones del mismo archivo
Funciones sin valor de retorno
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')
1 1
0 1
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
Comentarios de: Programación Modular (0)
No hay comentarios