SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
PROGRAMACION MODULAR
Ing. Lisbeth Carrasquero
UNIDAD III
Algorítmica y Programación I
PROGRAMACION MODULAR
Es una técnica de programación que consiste
en dividir o descomponer un programa en
módulos o subprogramas, con la finalidad de
hacerlo más legible y manejable. También se le
denomina diseño descendente, programación
top-down o divide y vencerás.
La programación modular se presenta
históricamente como una evolución de la
programación estructurada para solucionar
problemas de programación más grandes y
complejos de lo que ésta puede resolver.
Al aplicar la programación modular, un problema complejo debe ser dividido en varios subproblemas más
simples, y estos a su vez en otros subproblemas más simples. Esto debe hacerse hasta obtener subproblemas lo
suficientemente simples para que puedan ser resueltos fácilmente con algún lenguaje de programación.
Debe existir un algoritmo principal o conductor que permita
transferir el control a los distintos módulos o subalgoritmos, los
cuales, cuando terminen su tarea, devolverán el control al
algoritmo que los llamó.
ESTRUCTURA DE LA PROGRAMACION MODULAR
Programa
Principal
SubPrograma
1
SubPrograma
1.1
SubPrograma
1.2
SubPrograma
2
SubPrograma
3
•Parámetros
Entrada
•Subprograma
o función
Proceso
•Valor de
retorno
Salida
VENTAJAS
Varios programadores podrán trabajar simultáneamente, ya que los módulos son
independientes.
Los módulos pequeños e independientes son más fáciles de entender, diseñar y probar
Se podrá modificar un módulo sin afectar a los demás.
Las tareas, subalgoritmos, sólo se escribirán una vez, aunque se necesiten en distintas
ocasiones en el cuerpo del algoritmo.
DESVENTAJAS
Requiere más memoria y tiempo de ejecución.
Pueden crearse módulos demasiado pequeñ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
Realiza una tarea específica
pero como resultado de ella se
obtiene un valor que luego
puede ser usado por el
programa principal o por otro
subprograma
.
tipoDeDato funció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
Son aquellas que se declaran en el programa
principal y su ámbito es el programa completo.
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.
Son accesibles desde cualquier punto del programa
y se pueden usar desde cualquier módulo o
subprograma
El espacio de memoria vinculado a ellas
solamente se libera cuando terminamos la
ejecución del programa.
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 área de acción es solamente dentro del
subprograma que la creo
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
int sumar(int x, int y)
{
return (x+y)
}
Llamada a función
sumar(3, 7)
Argumentos
Llamada a función
sumar(3, 7+2, doble(2))
Argumentos
int sumar(int x, int y, int z)
{
return (x+y+z);
}
sumar(3, 7+2, doble(2))
4
9
3
Paso por Valor
Paso por Referencia
int sumar(int x, int y, int z)
{
return (x+y+z);
}
sumar(3, 7+2, doble(2))
dir1
dir3
dir2
Ejemplo
int sum(int x, int y)
{
x++;
return (x+y);
}
int a=2
Int b = sum (a, 5)
Llamada a función
Paso por Valor Paso por Referencia
int sum(int x, int y)
{
x++;
return (x+y);
}
int a=2
int b = sum (a, 5)
2
5
8
La a sigue siendo 2
int sum(int x, int y)
{
x++;
return (x+y);
}
int a=2
int b = sum (a, 5)
dir 1
dir 2
8
La a vale 3
3
5
3+

Más contenido relacionado

La actualidad más candente

Palabras Reservadas en C++
Palabras Reservadas en C++Palabras Reservadas en C++
Palabras Reservadas en C++ncrmax
 
P. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosP. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosGeovanny Yungán
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosMario Villaseñor
 
Logica de la Programación Problemas y Soluciones
Logica de la  Programación  Problemas y SolucionesLogica de la  Programación  Problemas y Soluciones
Logica de la Programación Problemas y SolucionesVideoconferencias UTPL
 
REPRESENTACIÓN DE LA INFORMACIÓN EN LA COMPUTADORA
REPRESENTACIÓN DE LA INFORMACIÓN EN LA COMPUTADORAREPRESENTACIÓN DE LA INFORMACIÓN EN LA COMPUTADORA
REPRESENTACIÓN DE LA INFORMACIÓN EN LA COMPUTADORAOdy Aranda
 
PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOFredy Olaya
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++compumet sac
 
instruccion de control
instruccion de controlinstruccion de control
instruccion de controlluiseldrumer
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosAlvaro Enrique Ruano
 
Estructuras de control repetitivas
Estructuras de control repetitivas Estructuras de control repetitivas
Estructuras de control repetitivas william salazar
 
TIPOS DE DATOS PARA C++
TIPOS DE DATOS PARA C++TIPOS DE DATOS PARA C++
TIPOS DE DATOS PARA C++Idalia Tristan
 
Sistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidosSistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidosJesús Navarro
 

La actualidad más candente (20)

Palabras Reservadas en C++
Palabras Reservadas en C++Palabras Reservadas en C++
Palabras Reservadas en C++
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
P. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosP. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetos
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a Objetos
 
Logica de la Programación Problemas y Soluciones
Logica de la  Programación  Problemas y SolucionesLogica de la  Programación  Problemas y Soluciones
Logica de la Programación Problemas y Soluciones
 
Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Estructura de registros
Estructura de registrosEstructura de registros
Estructura de registros
 
Reporte de codigo productos medios
Reporte de codigo productos mediosReporte de codigo productos medios
Reporte de codigo productos medios
 
REPRESENTACIÓN DE LA INFORMACIÓN EN LA COMPUTADORA
REPRESENTACIÓN DE LA INFORMACIÓN EN LA COMPUTADORAREPRESENTACIÓN DE LA INFORMACIÓN EN LA COMPUTADORA
REPRESENTACIÓN DE LA INFORMACIÓN EN LA COMPUTADORA
 
PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVO
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
 
Taller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 ConectividadTaller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 Conectividad
 
instruccion de control
instruccion de controlinstruccion de control
instruccion de control
 
Exposición de Lenguajes de Programación
Exposición de Lenguajes de ProgramaciónExposición de Lenguajes de Programación
Exposición de Lenguajes de Programación
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
 
Estructuras de control repetitivas
Estructuras de control repetitivas Estructuras de control repetitivas
Estructuras de control repetitivas
 
Segmentacion de memoria
Segmentacion de memoriaSegmentacion de memoria
Segmentacion de memoria
 
TIPOS DE DATOS PARA C++
TIPOS DE DATOS PARA C++TIPOS DE DATOS PARA C++
TIPOS DE DATOS PARA C++
 
Sistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidosSistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidos
 

Similar a Programación modular

Similar a Programación modular (20)

SUBPROGRAMAS
SUBPROGRAMASSUBPROGRAMAS
SUBPROGRAMAS
 
Anexo1
Anexo1Anexo1
Anexo1
 
Funciones
FuncionesFunciones
Funciones
 
Unidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdfUnidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdf
 
FUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE CFUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE C
 
Funciones lenguaje c modulo4
Funciones lenguaje c modulo4Funciones lenguaje c modulo4
Funciones lenguaje c modulo4
 
Presentacion
PresentacionPresentacion
Presentacion
 
6 libro fundamentos cap__modularidad_ecler mv
6 libro fundamentos cap__modularidad_ecler mv6 libro fundamentos cap__modularidad_ecler mv
6 libro fundamentos cap__modularidad_ecler mv
 
Unidad III
Unidad IIIUnidad III
Unidad III
 
Algorimo1
Algorimo1Algorimo1
Algorimo1
 
Logica subprogramas
Logica subprogramasLogica subprogramas
Logica subprogramas
 
Clase2 algoritmos formas-representacionalgoritmicas1
Clase2 algoritmos formas-representacionalgoritmicas1Clase2 algoritmos formas-representacionalgoritmicas1
Clase2 algoritmos formas-representacionalgoritmicas1
 
Transparencias7
Transparencias7Transparencias7
Transparencias7
 
Unidad 2 Principios de programación
Unidad 2 Principios de programaciónUnidad 2 Principios de programación
Unidad 2 Principios de programación
 
Apun9algol
Apun9algolApun9algol
Apun9algol
 
Funciones en C
Funciones en CFunciones en C
Funciones en C
 
Funciones
FuncionesFunciones
Funciones
 
Funciones
FuncionesFunciones
Funciones
 
Visualbasic net tema de java
Visualbasic net tema de javaVisualbasic net tema de java
Visualbasic net tema de java
 
SUBPROGRAMAS
SUBPROGRAMASSUBPROGRAMAS
SUBPROGRAMAS
 

Último

Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxMapyMerma1
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Baker Publishing Company
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuelacocuyelquemao
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
Flores Nacionales de América Latina - Botánica
Flores Nacionales de América Latina - BotánicaFlores Nacionales de América Latina - Botánica
Flores Nacionales de América Latina - BotánicaJuan Carlos Fonseca Mata
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtweBROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwealekzHuri
 

Último (20)

Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptx
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuela
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
Flores Nacionales de América Latina - Botánica
Flores Nacionales de América Latina - BotánicaFlores Nacionales de América Latina - Botánica
Flores Nacionales de América Latina - Botánica
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
Unidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDIUnidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDI
 
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtweBROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
 

Programación modular

  • 1. PROGRAMACION MODULAR Ing. Lisbeth Carrasquero UNIDAD III Algorítmica y Programación I
  • 2. PROGRAMACION MODULAR Es una técnica de programación que consiste en dividir o descomponer un programa en módulos o subprogramas, con la finalidad de hacerlo más legible y manejable. También se le denomina diseño descendente, programación top-down o divide y vencerás. La programación modular se presenta históricamente como una evolución de la programación estructurada para solucionar problemas de programación más grandes y complejos de lo que ésta puede resolver. Al aplicar la programación modular, un problema complejo debe ser dividido en varios subproblemas más simples, y estos a su vez en otros subproblemas más simples. Esto debe hacerse hasta obtener subproblemas lo suficientemente simples para que puedan ser resueltos fácilmente con algún lenguaje de programación.
  • 3. Debe existir un algoritmo principal o conductor que permita transferir el control a los distintos módulos o subalgoritmos, los cuales, cuando terminen su tarea, devolverán el control al algoritmo que los llamó. ESTRUCTURA DE LA PROGRAMACION MODULAR Programa Principal SubPrograma 1 SubPrograma 1.1 SubPrograma 1.2 SubPrograma 2 SubPrograma 3 •Parámetros Entrada •Subprograma o función Proceso •Valor de retorno Salida
  • 4. VENTAJAS Varios programadores podrán trabajar simultáneamente, ya que los módulos son independientes. Los módulos pequeños e independientes son más fáciles de entender, diseñar y probar Se podrá modificar un módulo sin afectar a los demás. Las tareas, subalgoritmos, sólo se escribirán una vez, aunque se necesiten en distintas ocasiones en el cuerpo del algoritmo. DESVENTAJAS Requiere más memoria y tiempo de ejecución. Pueden crearse módulos demasiado pequeños
  • 5. 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 Realiza una tarea específica pero como resultado de ella se obtiene un valor que luego puede ser usado por el programa principal o por otro subprograma .
  • 6. tipoDeDato funció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
  • 7. 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])
  • 8. DECLARACION DE VARIABLES GLOBALES LOCALES Son aquellas que se declaran en el programa principal y su ámbito es el programa completo. 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. Son accesibles desde cualquier punto del programa y se pueden usar desde cualquier módulo o subprograma El espacio de memoria vinculado a ellas solamente se libera cuando terminamos la ejecución del programa. 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 área de acción es solamente dentro del subprograma que la creo
  • 9. 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
  • 10. Ejemplo Definición de función int sumar(int x, int y) { return (x+y) } Llamada a función sumar(3, 7) Argumentos Llamada a función sumar(3, 7+2, doble(2)) Argumentos int sumar(int x, int y, int z) { return (x+y+z); } sumar(3, 7+2, doble(2)) 4 9 3 Paso por Valor Paso por Referencia int sumar(int x, int y, int z) { return (x+y+z); } sumar(3, 7+2, doble(2)) dir1 dir3 dir2
  • 11. Ejemplo int sum(int x, int y) { x++; return (x+y); } int a=2 Int b = sum (a, 5) Llamada a función Paso por Valor Paso por Referencia int sum(int x, int y) { x++; return (x+y); } int a=2 int b = sum (a, 5) 2 5 8 La a sigue siendo 2 int sum(int x, int y) { x++; return (x+y); } int a=2 int b = sum (a, 5) dir 1 dir 2 8 La a vale 3 3 5 3+