P. 1
Programacion Modular

Programacion Modular

|Views: 67|Likes:

More info:

Published by: Nathaly Meliza Acrota Calderon on May 25, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

06/06/2013

pdf

text

original

Tema 5: Programación modular

Ingeniería Informática Ingeniería Técnica en Informática de Sistemas Ingeniería Técnica en Informática de Gestión Fundamentos de la Programación 1
Departamento de Ciencia de la Computación e Inteligencia Artificial Universidad de Alicante
Fundamentos de la Programación 1
Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas

1

Contenidos
❏ ❏ ❏ ❏ ❏ Criterios de Descomposición Modular Concepto de Subalgoritmo Variables locales y formales Efectos laterales Ámbito de un identificador

Fundamentos de la Programación 1
Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas

2

Subprograma o Módulo: Parte de un programa que realiza una tarea concreta mediante una serie de instrucciones. Ventajas Facilita el diseño descendente Disminuye la complejidad del algoritmo Disminuye el tamaño total del programa Reusabilidad: ahorro de tiempo de programación División de la programación entre un equipo de programadores → reducción del tiempo de desarrollo ❏ Facilidad en la depuración: comprobación individual de los módulos ❏ Programas más fáciles de modificar ❏ Estructuración en librerías específicas (biblioteca de módulos) ❏ ❏ ❏ ❏ ❏ Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas 3 .Concepto de Subalgoritmo Subalgoritmo.

Criterios de Descomposición Modular Programación modular es uno de los métodos de diseño más flexible y potentes para mejorar la productividad de un programa Programa Principal Módulo 1 Módulo 2 Módulo 11 Módulo 21 Módulo 22 Módulo 23 Módulo 111 Módulo 112 Módulo 221 Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas 4 .

de forma que se puede considerar cada estructura desde dos puntos de vista Nivel n: desde el exterior ¿lo qué hace? Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas Nivel n+1: desde el interior ¿cómo lo hace? 5 .Diseño Descendente Diseño Descendente (“top-down”) proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento (stepwise) El problema se descompone en etapas o estructuras jerárquicas.

Complejidad de un subalgoritmo. Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas 6 . . 1 paso . entonces la complejidad de la sentencia será la del subalgoritmo más una unidad... ..La definición del subalgoritmo no se computa. . lectura. escritura. sólo se tienen en cuenta las llamadas a éste. . . Pasos de Programa : -Sentencias de asignación. salvo cuando en ellas aparezca la llamada a un subalgoritmo..

Transferencia de información a/desde los subalgoritmos ❏ Subalgoritmos sin parámetros: no existe comunicación entre el programa principal y el subalgoritmo ❏ Subalgoritmos con parámetros: existe comunicación entre el programa principal y el subprograma Concepto de subalgoritmo Parámetros o argumentos (1) Entrada Algoritmo Salida Algoritmo Entrada/Salida Algoritmo Subalgoritmo Subalgoritmo Subalgoritmo Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas 7 .

Concepto de subalgoritmo Parámetros o argumentos (1) Ejemplos accion linea (n : entero) # Ejemplo de Parámetros de entrada var j : entero fvar para j := 1 hasta n hacer escribe(‘*’) fpara faccion Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas 8 .

perimetro : real) # Ejemplo de Parámetros de entrada y de salida area := longitud * anchura . perimetro := 2 * (longitud + anchura) faccion Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas 9 .Concepto de subalgoritmo Parámetros o argumentos (1) Ejemplos (2) accion rectangulo (longitud. anchura : real . var area.

Concepto de subalgoritmo Función Ejemplo Ejemplos (3) accion modifica (var n : entero) # Ejemplo de Parámetro de entrada/salida si (n>0) entonces n := n * 2 sino n := n * 3 fsi faccion Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas 10 .

pr2. pfN) Correspondencia de parámetros: número de parámetros tipo de parámetros orden de los parámetros nombre de los parámetros Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas 11 .... pf2. . ..Concepto de subalgoritmo Parámetros o argumentos (2) Parámetros Actuales o Reales: los que se escriben en la instrucción de llamada nombre_subalgoritmo (pr1. prN) Parámetros Formales o Ficticios: los que aparecen en la declaración del módulo accion nombre_subalgoritmo (pf1.

t3.t2.r2) .t2. Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas 12 .t2.raiz2 # Calcula las raíces de una ecuación de 2º grado var delta : real fvar delta := b *b-4*a* c .r2). raices(1.r1. raiz1 := ( -b+raiz(delta)) raiz2 := ( -b-raiz(delta)) faccion # raices : real) /(2 *a) .r1.b. raices(t1.r2: real fvar ámetros accion raices ( a.t3) . : ‘) . falgoritmo.Concepto de subalgoritmo Parámetros o argumentos (3) algoritmo : Ejemplo # Ejemplo de Correspondencia de Par var t1.r1.r1. escribelin (‘Las soluciones son ‘.r1. /(2 *a) .r2) . . escribe (‘Escribe los coeficientes de la ecuación lee (t1.t3.4. var raiz1.c : real.r2) escribelin (‘Las soluciones son ‘.5.

que pasan información desde el algoritmo al subalgoritmo. ❏ Por referencia: se pasa una referencia a la posición de memoria donde se encuentra dicho valor. Son parámetros unidireccionales. no las modificaciones que pueda tener dentro del subalgoritmo.13 Clase Entrada Salida Entrada/Salida Paso por Valor } Referencia Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas 13 . Se trabaja con una copia del valor pasado. Puede ser cualquier expresión evaluable en ese momento. Debe ser obligatoriamente una variable. Se utilizan tanto para recibir como para transmitir información sobre el algoritmo y el subalgoritmo.Concepto de subalgoritmo Parámetros o argumentos (4) Paso de Parámetros : ❏ Por valor: únicamente nos interesa el valor.

anchura : real . perimetro : real) # Ejemplo de Parámetros de entrada y de salida area := longitud * anchura . perimetro := 2 * (longitud + anchura) faccion Parámetros por valor Parámetros por referencia Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas 14 . var area.Concepto de subalgoritmo Parámetros o argumentos (4) Ejemplo accion rectangulo (longitud.

Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas 15 . Toma uno o más valores.Concepto de Subalgoritmo Acciones y Funciones Acción o Procedimiento: Subalgoritmo que realiza una tarea específica y que puede ser definido con 0. devuelve un resultado en el nombre de la función. según el valor de éstos. 1 o N parámetros Función: Subalgoritmo que devuelve un valor asociado a su nombre. denominados argumentos o parámetros actuales y.

z). lee(x. potencia := resultado ffuncion # potencia escribe(‘Escribe la base y el exponente : ‘).y. escribelin(‘Las solución es ‘. z := potencia(5. falgoritmo.3). para i := 1 hasta exponente hacer resultado := resultado*base fpara . Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas 16 . escribelin(‘La solución es ‘.exponente:entero) retorna entero # Calcula la potencia de un número entero var i.Concepto de Subalgoritmo. Función ejemplo algoritmo : Ejemplo # Ejemplo de Función var x.y).z : entero fvar funcion potencia(base.z). z := potencia(x.y).resultado : entero fvar resultado := 1.

Ámbito de un identificador Variable Local: variable declarada dentro de un subprograma y. por ello. pueden ser utilizadas por el programa principal y por todos sus subprogramas La comunicación entre un programa y un subprograma debe realizarse a través de parámetros. sólo disponible durante el funcionamiento del mismo Variable Global: variable declarada en el programa principal y. y no de variables globales Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas 17 . por tanto.

NumMayor:=Resultado ffuncion Resultado:=0.Numero2. leelin(Numero2). escribelin('El mayor es '.n2:entero) retorna entero si (n1>n2) entonces Resultado:=n1 sino Resultado:=n2 fsi. escribelin('La suma es' . Resultado:entero fvar funcion NumMayor (n1. Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas 18 . Resultado:=Numero1+Numero2.Numero2). algoritmo: efecto_lateral var Numero1. leelin(Numero1).Resultado). falgoritmo. Mayor). Ejemplo. Mayor. Mayor := NumMayor(Numero1.Efectos Laterales.

entonces cualquier referencia a dicho identificador en Q (o algún subprograma de Q) utilizará el identificador declarado en Q y no el declarado en P. Un identificador se puede utilizar en el programa en el que está declarado y en todos los subprogramas de él 2.Ámbito de un identificador (2) Reglas de ámbito: 1. (Prevalece el más interno) Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas 19 . Si un identificador declarado en un programa P se redeclara en algún subprograma interno Q.

. faccion #C .. q : entero fvar ... y : real fvar accion A (var x : real ) var m.. faccion #B ... faccion #A ámbito de c ámbito de y ámbito de m ámbito de w accion C (var letra : caracter) var c : caracter fvar . n : entero fvar accion B (w : real) var p. Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas 20 .. falgoritmo.Ámbito de un identificador (3) algoritmo Ejemplo var x.

Recursividad (1) Definición de un objeto de forma que lo que se define está incluido en la definición Caso base : “condición de terminación” o “condición de límite” Caso general o recursivo: debe haber un progreso (tendencia al caso base) Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas 21 .

Recursividad (2) Características: o Herramienta muy potente o Idónea para la resolución de aquellos problemas que pueden definirse de modo natual en términos recursivos o Tiene su equivalente iterativo o Necesitan mayor cantidad de memoria para su ejecución o Son más lentos en su ejecución Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas 22 .

Recursividad (3). funcion factorial (n : entero) retorna entero # Calcula el factorial de un número dado si (n=0) entonces factorial := 1 sino factorial := n * factorial(n-1) fsi ffuncion Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas 23 . Ejemplo.

escribe(l). escribe(letra) falgoritmo. fsi faccion escribe('Introduce una palabra o frase terminada en punto : '). lee(letra). Ejemplo. sino lee(l). alreves(l). Fundamentos de la Programación 1 Ingeniería Informática Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas 24 . algoritmo : Recursividad var letra : caracter fvar accion alreves(l : caracter ) si (l = '.Recursividad (4). alreves(letra).') entonces escribelin().

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->