Programación Modular

lisbeca 718 views 11 slides May 18, 2021
Slide 1
Slide 1 of 11
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11

About This Presentation

Algorítmica y Programación I. Ingeniería en Informática


Slide Content

PROGRAMACION MODULAR
Ing. Lisbeth Carrasquero
UNIDAD III
Algorítmica y Programación I

PROGRAMACION MODULAR
Esunatécnicadeprogramaciónqueconsiste
endividirodescomponerunprogramaen
módulososubprogramas,conlafinalidadde
hacerlomáslegibleymanejable.Tambiénsele
denominadiseñodescendente,programación
top-downodivideyvencerás.
Laprogramaciónmodularsepresenta
históricamentecomounaevolucióndela
programaciónestructuradaparasolucionar
problemasdeprogramaciónmásgrandesy
complejosdeloqueéstapuederesolver.
Alaplicarlaprogramaciónmodular,unproblemacomplejodebeserdivididoenvariossubproblemasmás
simples,yestosasuvezenotrossubproblemasmássimples.Estodebehacersehastaobtenersubproblemaslo
suficientementesimplesparaquepuedanserresueltosfácilmenteconalgúnlenguajedeprogramación.

Debeexistirunalgoritmoprincipaloconductorquepermita
transferirelcontrolalosdistintosmódulososubalgoritmos,los
cuales,cuandoterminensutarea,devolveránelcontrolal
algoritmoquelosllamó.
ESTRUCTURA DE LA PROGRAMACION MODULAR
Programa
Principal
SubPrograma
1
SubPrograma
1.1
SubPrograma
1.2
SubPrograma
2
SubPrograma
3
•ParámetrosEntrada
•Subprograma
o funciónProceso
•Valor de
retornoSalida

VENTAJAS
Variosprogramadorespodrántrabajarsimultáneamente,yaquelosmódulosson
independientes.
Losmódulospequeñoseindependientessonmásfácilesdeentender,diseñaryprobar
Sepodrámodificarunmódulosinafectaralosdemás.
Lastareas,subalgoritmos,sóloseescribiránunavez,aunquesenecesitenendistintas
ocasionesenelcuerpodelalgoritmo.
DESVENTAJAS
Requieremásmemoriaytiempodeejecución.
Puedencrearsemódulosdemasiadopequeños

TIPOS DE SUBPROGRAMAS
FUNCIONES PROCEDIMIENTOS
Son subprogramas del
programa principal
Consisten en un grupo de
instrucciones, variables,
constantes…
Están diseñados con un
propósito particular
Tiene su nombre propio
Es un subprograma que
realiza una tarea específica
pero que no devuelve ningún
valor como resultado
Realizaunatareaespecífica
perocomoresultadodeellase
obtieneunvalorqueluego
puedeserusadoporel
programaprincipaloporotro
subprograma
.

tipoDeDatofunción NombreDeFunción([listaDeParámetrosFormales])
//Declaraciones locales de tipos de datos, constantes o variables]
inicio
//Código de la función
devolver(expresión)
fin_función
Llamadas a funciones
NombreFunción([ListaParámetrosActuales])
DECLARACION DE FUNCIONES
Calcule el factorial de un número
entero positivo
Ejemplo

Llamadas a Procedimientos
DECLARACION DE PROCEDIMIENTOS
NombreDeProcedimiento([listaDeParámetrosFormales])
//Declaraciones locales de tipos de datos, constantes o variables]
Inicio
//Código del procedimiento
fin_procedimiento
[llamar_a]NombreProcedimiento([listaDeParámetrosActuales])

DECLARACION DE VARIABLES
GLOBALES LOCALES
Sonaquellasquesedeclaranenelprograma
principalysuámbitoeselprogramacompleto.
Toda variable que se utilice en una función o procedimiento debe haber sido declarada en el mismo.
No es accesible desde ningún otro subprograma.Sonaccesiblesdesdecualquierpuntodelprograma
ysepuedenusardesdecualquiermóduloo
subprograma
Elespaciodememoriavinculadoaellas
solamenteseliberacuandoterminamosla
ejecucióndelprograma.
El espacio de memoria vinculado a ellas es liberado al
terminar la ejecución del subprograma y devolver el
control al programa que lo solicitó
Suáreadeacciónessolamentedentrodel
subprogramaquelacreo

PASO DE PARÁMETROS
Paso por referencia
•También se le llama paso por variable
•Argumentos para entrada y salida o sólo salida
•No se pasa una copia del valor, sino la referencia a
la zona de la memoria donde se almacena el
parámetro actual.
•Se pasan variables no expresiones
Paso por Valor
Es el proceso de emisión y recepción de datos (argumentos) y resultados mediante variables de enlace.
Cada argumento en la llamada, se corresponde con un parámetro formal de la definición
•Se utiliza para pasar datos de entrada
a un subprograma.
•Se pasa una copia del valor
•Pueden ser expresiones

Ejemplo
Definición de función
intsumar(intx, inty)
{
return(x+y)
}
Llamada a función
sumar(3, 7)
Argumentos
Llamada a función
sumar(3, 7+2, doble(2))
Argumentos
intsumar(intx, inty, intz)
{
return(x+y+z);
}
sumar(3, 7+2, doble(2))
4
9
3
Paso por Valor
Paso por Referencia
intsumar(intx, inty, intz)
{
return(x+y+z);
}
sumar(3, 7+2, doble(2))
dir1
dir3dir2

Ejemplo
intsum(intx, inty)
{
x++;
return(x+y);
}
inta=2
Intb = sum (a, 5)
Llamada a función
Paso por Valor Paso por Referencia
intsum(intx, inty)
{
x++;
return(x+y);
}
inta=2
intb = sum (a, 5)
2
5
8
La a sigue siendo 2
intsum(intx, inty)
{
x++;
return(x+y);
}
inta=2
intb = sum (a, 5)
dir1
dir2
8
La a vale 3
3
53+