¡Descarga Tema 3 programacion modular y más Diapositivas en PDF de Informática solo en Docsity!
Módulo 2. Conocimientos
básicos de programación
Tema 3. Programación modular
Objetivos
- Introducir los principales conceptos relacionados con
la programación modular.
- Presentar las herramientas de programación que
permiten resolver problemas complejos mediante su
descomposición en otros más simples.
- Comprender los distintos tipos de parámetros y
cómo se pasan entre módulos.
Definición
- Programación modular: consiste en dividir un
algoritmo en unidades de menor tamaño cada
una realiza una tarea explícita y única.
- Cada fragmento se denomina función, módulo, sub-
algoritmo, subrutina o subprograma.
- Ventajas:
- Simplicidad: permite descomponer un problema en otros más simples.
- Reutilización: cada módulo se identifica mediante un nombre, lo que permite utilizarlo siempre que se quiera.
- Generalidad: se pueden parametrizar.
- La Programación Modular consiste en dividir un problema en subproblemas más pequeños que se resuelven con módulos.
- Un módulo o función realiza una tarea concreta y es deseable que se diseñe, implemente y depure de manera independiente al resto del código.
- Mediante la combinación de las soluciones parciales se debe obtener la solución global. (^) P
SP1 (^) SP2 (^) SPn
S11 S12 S21 ……
……
Definición
Parámetros
- Parámetros: permiten la comunicación entre un
módulo y otro (o programa principal).
- Pueden ser de Entrada y/o Salida:
- Entrada: valores que son proporcionados al módulo.
- Salida: son valores que se calculan en el módulo y que se devuelven al que lo ha invocado.
- Según el comportamiento, hay módulos que:
- Devuelven la salida asociada a su nombre.
- Devuelven las salidas en parámetros.
Parámetros
- Tipos de parámetros:
- Reales o actuales: valores que se pasan al módulo.
- Formales: los que aparecen en la declaración del módulo y contendrán los valores de los parámetros actuales cuando se invoca al módulo.
- Cuando se utiliza un módulo (cuando se hace la llamada o invocación al módulo) los parámetros actuales deben coincidir en número, orden y tipo con los parámetros formales que aparecen en la declaración o diseño del módulo.
Parámetros
- Tipo de paso de parámetros:
- Valor o copia: se utilizan para proporcionar información a un módulo. Los cambios realizados no son visibles fuera.
- Variable o referencia: se utilizan tanto para recibir como para transmitir valores, de manera que los cambios que se hagan serán visibles desde fuera. Se indican de alguna forma, por ejemplo con una palabra reservada (var) o algún símbolo (&).
En Matlab todas los parámetros se pasan por valor, no por referencia.
Parámetros
Módulo
Algoritmo o módulo (hace la llamada)
…
… Parámetros actuales
Parámetros formales
Valor
Valor
Valor
Paso por valor o copia
Paso por variable o referencia
Sintaxis
- Un módulo consta de:
- Una cabecera que comienza con la palabra reservada function y donde se especifican (en este orden): - Parámetros de salida. (Valores que devuelve el módulo). Si hay más de uno hay que ponerlos entre [ ] y separados por comas - Signo = - Nombre del módulo - Entre paréntesis los Parámetros de entrada. (Valores con los que va a trabajar el módulo). Si hay más de uno hay que separarlos con comas.
- Texto de ayuda. Es opcional, aunque muy recomendable. Matlab despliega como ayuda (orden help ) todas las líneas que estén precedidas con % hasta que encuentre la primera línea no comentada.
Sintaxis
- El cuerpo del módulo:
- Contiene las sentencias necesarias para calcular los
valores que se van a devolver.
- Utiliza los parámetros de entrada del módulo, así
como aquellas variables auxiliares que se precisen
para realizar dichos cálculos.
- Asigna valores a los parámetros de salida.
(¡Obligatorio!)
Ojo: las variables que no sean parámetros son locales a la función.
Primeros ejemplos
function pfinal = pvt (precio) % Descripción: calcula el precio con IVA de un producto % Parámetros de entrada: precio: REAL, precio sin IVA % Parámetros de salida: pfinal: REAL, precio con IVA % Variables (internas): iva: REAL
iva = 0.21; pfinal = precio * (1+iva);
Primeros ejemplos
- Ejemplos con varios argumentos de entrada o salida:
function pfinal = pvtIVA (precio, iva) % Descripción: calcula el precio con IVA de un producto % Parámetros de entrada: precio: REAL, precio sin IVA % iva: ENTERO, porcentaje de IVA a aplicar % Parámetros de salida: pfinal: REAL, precio con IVA
pfinal = precio * (1+iva/100);
Primeros ejemplos
- Un módulo puede no devolver nada y/o no tener
parámetros de entrada. Ejemplo:
function info % Descripción: muestra información sobre la precisión de la % máquina % Parámetros de entrada: Ninguno % Parámetros de salida: Ninguno
disp (‘precisión de la máquina: ’); disp (eps); % Épsilon de la máquina. Ej: 2.2204e- disp (’mayor numero real’); disp(realmax); %Real más grande de la máquina. Ej: 1.7977e+ disp (’menor numero real’); disp(realmin); %Real más pequeño de la máquina. Ej: 2.2251e- 308
Llamada a un módulo
- Podemos llamar a un módulo desde:
- la línea de órdenes.
- dentro de otro módulo.
- Ejemplo:
precio_ini = 1000; precio_final = pvt(precio_ini)
precio_final = 1210
- Observa que los parámetros de entrada y salida no tienen por qué tener el mismo nombre que en la definición de la función.