SlideShare una empresa de Scribd logo
1 de 33
Angelo Pereira
MODULARIZACIÓN
Programación I: Algoritmos, Datos y Estructuras.
Ing. Ángel Vázquez. Msc.
Introducción
Programa complejo Diagrama de flujo Modularizar
Proceso de dividir/descomponer un programa en diferentes módulos.
Qué es Modularizar?
Programa reutilizable que
realiza una tarea específica.
Debe ofrecer un grupo de
servicios diseñados para
que el resto del programa
pueda interactuar con él.
Ej: RetardoEnMinutos()
Paradigma de la programación modular.
Y si la tarea asignada a un módulo es demasiado compleja?
Dividir en Subtareas
Diseño Top Down
Los módulos pueden recibir valores llamados parámetros y/o devolver
resultados (valor de retorno).
Una subrutina puede ser invocada/llamada desde distintos lugares del
programa.
Como los módulos pueden resolverse independientemente de los demás,
las soluciones deben combinarse para resolver el problema original.
Proceso de la Modularización
Estructuración y separación de las tareas que realiza en métodos
(herramienta que ayuda a modularizar un programa).
Java: Método
C++: Función
Basic: Subrutina o procedimiento
En general, en cualquier lenguaje de programación (bajo o alto nivel),
estos métodos se conocen como Subrutinas.
Fragmento de entidad o
código auto-contenido que
ejecuta una tarea
específica.
Ventajas de la Modularización
 Facilita su proceso de diseño, implementación y operación.
 Reduce el tamaño del código.
 Facilita la compresión (cada módulo puede ser estudiado
separadamente).
 Facilita la corrección de errores y el mantenimiento del mismo
(localización rápida).
 La modificación de un módulo no afecta a los demás.
 Reutilización del código. (Ej: retardos)
Modularización aplicada en la Vida Real
Jugar un Videojuego
Ejemplo .– Algoritmo para encontrar el mayor de tres números.
Métodos y Lenguajes de Programación
Lenguajes de programación librería de métodos
Conjunto de procedimientos que permiten llevar a cabo cálculos
matemáticos comunes, manipulación de texto y caracteres, operaciones de
E/S, operaciones con bases de datos, operaciones de redes de
computadoras, procesamiento de archivos, entre otras tareas.
“Un desarrollador puede escribir sus propios métodos según lo requiera el
procedimiento diseñado para la solución del problema”
Declaración de un Método
Dado que podrían existir funciones declaradas de manera análoga que
cumplen labores completamente diferentes o funciones incorrectamente
declaradas cumpliendo tareas similares.
 Permite una rápida localización a futuro.
 Veloz identificación de la función específica que éste realiza dentro de un programa.
 Le permite al desarrollador reutilizar de manera coherente y sobretodo eficiente de
código.
Nombre del método
Tipo de dato de retorno
Lista de parámetros
Encabezado del método
Tipo de Dato de Retorno
 Indica el resultado del método que será utilizado por el código en el que fue
invocado.
 Ej: mostrará si es número entero, decimal, cadena de texto, etc.
Un método puede retornar sólo un o ningún valor
Si no retorna ningún valor:
 El método se limita a cumplir con una tarea específica sin que haya necesidad
de que retorne un valor en específico, y no dará el tipo de valor de retorno.
Del ejemplo anterior, el tipo de retorno del método max indica que devolverá
un valor numérico, posiblemente incluyendo una parte decimal.
Nombre del Método
 Debe expresar claramente la tarea que cumple (describir todo lo que hace el
subprograma).
 Utilizar letras minúsculas y/o MAYÚSCULAS, números y _.
 Si es difícil encontrar un nombre conciso, dicho método intenta ejecutar
demasiadas tareas.
 Subdividir el método en partes más pequeñas que cumplan funciones
específicas y fáciles de definir.
Nombre que se utilizará para llamar o invocar al método que se está declarando.
 Utilizar caracteres especiales como (tildes, ñ, -, llaves, corchetes, ni empezar
con número.
¡Prohibido!
Lista de Parámetros
 Argumentos, datos de entrada (Información adicional) que recibe el método
para operar con ellos en el momento de su invocación.
 Si la lista de parámetros está vacía, significa que el método declarado no requiere
ninguna información adicional para ejecutar su tarea.
 Cada parámetro es suministrado como una variable que puede ser referenciada y
utilizada en el cuerpo del método.
 Puede contener uno o más parámetros separados por comas, o no contener
parámetros según el diseño del método.
 Están delimitada por paréntesis.
Del ejemplo anterior, la lista de parámetros del método max está
conformada por tres variables numéricas (que posiblemente incluirán una
parte decimal) llamadas num1, num2 y num3.
El Cuerpo de un Método
 Definido por un conjunto de (una o más) instrucciones que se escriben y
ejecutan dentro del método para cumplir con una tarea específica.
 La combinación declaración y cuerpo del método conforman una entidad o
código auto-contenido.
Información y operaciones que se ejecutan dentro del método que son sólo
conocidas y relevantes para tal método debido a que ninguna otra parte del
programa puede acceder a ellas de forma directa.
Claramente podemos observar la tarea específica que cumple el
método max dentro del algoritmo (encontrar el mayor de tres números) y
como las operaciones que se ejecutan dentro del mismo son únicamente
conocidas por el método.
Ejemplo de la vida real
Aceleración de un vehículo
 La forma de invocar este método sería ejerciendo presión sobre el pedal de
aceleración. Un ejemplo de parámetro (argumentos) en este caso sería:
 Cantidad de aceleración que se requiere.
 Información adicional que es
proporcionada por la persona que presiona
el acelerador (ligeramente o con fuerza).
Invocación de un Método
 Acción de llamar a un método para que
éste se ejecute y poder acceder a su
funcionalidad.
 Cuando es invocado es necesario
proporcionarle un valor (argumentos) para
cada uno de los parámetros del método.
 Es realizado desde el interior de otro método y cuando el método invocado termine
su ejecución, puede devolver o retornar un resultado.
Asumiendo la existencia de un método para el registro de un depósito
de dinero en una cuenta bancaria, es probable que cuando se invoque a
este método se le deba proporcionar el número de cuenta y el monto del
depósito como argumentos.
Ejemplos de la vida real
Gestiones bancarias
Ejemplos de la vida real
 El jefe departamental (representaría el método que invoca) solicita a un
obrero (el método que es invocado) realizar una tarea e informar su resultado
luego de que la haya terminado (retorno).
Gestión jerárquica de una empresa manufacturera.
 El jefe no necesita saber la forma en que el obrero ejecutó la tarea asignada,
ya que el obrero pudo haber llamado por ejemplo a otros obreros (invocar
otros métodos) sin que el jefe se haya enterado.
En PROGRAMACIÓN, existe una relación jerárquica entre los diferentes métodos
que componen un programa, de tal forma que el programa divide sus tareas
entre varios métodos, en donde, cada método se encarga de realizar
subtareas y de sus detalles de implementación propios.
Es decir…
Almacenamiento en memoria de los Argumentos
 Un argumento puede consistir en valor concreto o en una variable (su nombre
puede ser el mismo o diferente al nombre del parámetro.
Esto se debe a que tanto el argumento como el correspondiente parámetro se
almacenan como variables separadas en la memoria de la computadora. Ver fig.
El orden, el número y el tipo de dato de los valores
o variables proporcionados como argumentos en
la invocación de un método, deben corresponder
exactamente a la lista de parámetros en la
declaración del método.
¡Importante!
Resumen
 Reducir la complejidad del programa (“Divide y vencerás”).
 Cohesión y acoplamiento (principios usados para medir si los
módulos de un diseño fueron bien divididos).
 Pasos para escribir un Subprograma:
 Definir el problema que el subprograma ha de resolver.
 Darle un nombre no ambiguo al subprograma.
 Decidir cómo se puede probar el funcionamiento del subprograma.
 Escribir la declaración del subprograma (cabecera de la función).
 Buscar el algoritmo más adecuado para resolver el problema.
 Escribir los pasos principales del algoritmo como comentarios.
 Rellenar el código correspondiente a cada comentario.
 Revisar mentalmente cada fragmento de código.
 Repetir los pasos anteriores hasta quedar completamente
satisfecho.
Resumen
Bibliografía
• Plataforma MOOC. Universidad de Cuenca: UDC003 Fundamentos de
Programación I – Parte II.
• Diseño Estructurado de Algoritmos. P. L. I. Flores Valerio Carlos Augusto.
• Curso de programación y Análisis de Software. Arias, Ángel; Durango,
Alicia. 2da edición. Pág. 231.
• http://slideplayer.es/slide/4011953/
• http://elvex.ugr.es/decsai/c/apuntes/modularization.pdf
GRACIAS

Más contenido relacionado

La actualidad más candente

Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesNedoww Haw
 
Busqueda Binaria
Busqueda BinariaBusqueda Binaria
Busqueda BinariaITCV
 
Tema 1-2 identificadores - variable y constante
Tema 1-2 identificadores - variable y constanteTema 1-2 identificadores - variable y constante
Tema 1-2 identificadores - variable y constanteRufi Flores
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesjmachado614
 
Sintaxis Pseint Ciclos Repetitivos
Sintaxis Pseint Ciclos RepetitivosSintaxis Pseint Ciclos Repetitivos
Sintaxis Pseint Ciclos RepetitivosMonjeOneble
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Josue Lara Reyes
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesAlvaro Enrique Ruano
 
Modelo Entidad Relacion E-R
Modelo Entidad Relacion E-RModelo Entidad Relacion E-R
Modelo Entidad Relacion E-RRobert Rodriguez
 
PAQUETES EN JAVA
PAQUETES EN JAVAPAQUETES EN JAVA
PAQUETES EN JAVAmellcv
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetosClara Patricia Avella Ibañez
 
Tutorial algoritmo estructuras ciclicas
Tutorial algoritmo estructuras ciclicasTutorial algoritmo estructuras ciclicas
Tutorial algoritmo estructuras ciclicasMichele André
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 

La actualidad más candente (20)

Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Presentacion Python
Presentacion  Python Presentacion  Python
Presentacion Python
 
Conceptos poo (presentación1)
Conceptos poo (presentación1)Conceptos poo (presentación1)
Conceptos poo (presentación1)
 
Busqueda Binaria
Busqueda BinariaBusqueda Binaria
Busqueda Binaria
 
Tema 1-2 identificadores - variable y constante
Tema 1-2 identificadores - variable y constanteTema 1-2 identificadores - variable y constante
Tema 1-2 identificadores - variable y constante
 
Calculadora con operaciones básicas en java
Calculadora con operaciones básicas en javaCalculadora con operaciones básicas en java
Calculadora con operaciones básicas en java
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Sintaxis Pseint Ciclos Repetitivos
Sintaxis Pseint Ciclos RepetitivosSintaxis Pseint Ciclos Repetitivos
Sintaxis Pseint Ciclos Repetitivos
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clases
 
Modelo Entidad Relacion E-R
Modelo Entidad Relacion E-RModelo Entidad Relacion E-R
Modelo Entidad Relacion E-R
 
PAQUETES EN JAVA
PAQUETES EN JAVAPAQUETES EN JAVA
PAQUETES EN JAVA
 
Colas
ColasColas
Colas
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos
 
Estructura repetitiva
Estructura repetitivaEstructura repetitiva
Estructura repetitiva
 
Tutorial algoritmo estructuras ciclicas
Tutorial algoritmo estructuras ciclicasTutorial algoritmo estructuras ciclicas
Tutorial algoritmo estructuras ciclicas
 
1.3 errores (1)
1.3 errores (1)1.3 errores (1)
1.3 errores (1)
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 

Destacado

Programación 3: tablas de dispersión
Programación 3: tablas de dispersiónProgramación 3: tablas de dispersión
Programación 3: tablas de dispersiónAngel Vázquez Patiño
 
Programación 3: mapas y diccionarios, colecciones parametrizadas
Programación 3: mapas y diccionarios, colecciones parametrizadasProgramación 3: mapas y diccionarios, colecciones parametrizadas
Programación 3: mapas y diccionarios, colecciones parametrizadasAngel Vázquez Patiño
 
Programación 3: caminos más cortos con un solo origen
Programación 3: caminos más cortos con un solo origenProgramación 3: caminos más cortos con un solo origen
Programación 3: caminos más cortos con un solo origenAngel Vázquez Patiño
 
Programación 3: Vector, stack, enumearator, iterator, listiterator en Java
Programación 3: Vector, stack, enumearator, iterator, listiterator en JavaProgramación 3: Vector, stack, enumearator, iterator, listiterator en Java
Programación 3: Vector, stack, enumearator, iterator, listiterator en JavaAngel Vázquez Patiño
 
Programación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en javaProgramación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en javaAngel Vázquez Patiño
 
Programación 3: Ordenación topológica, matriz de caminos y algoritmo Warshall
Programación 3: Ordenación topológica, matriz de caminos y algoritmo WarshallProgramación 3: Ordenación topológica, matriz de caminos y algoritmo Warshall
Programación 3: Ordenación topológica, matriz de caminos y algoritmo WarshallAngel Vázquez Patiño
 
Programación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de KruskalProgramación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de KruskalAngel Vázquez Patiño
 
Programación 3: árboles de búsqueda equilibrados
Programación 3: árboles de búsqueda equilibradosProgramación 3: árboles de búsqueda equilibrados
Programación 3: árboles de búsqueda equilibradosAngel Vázquez Patiño
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesAngel Vázquez Patiño
 
Programación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosProgramación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosAngel Vázquez Patiño
 
Arboles y Colas de Prioridad en Java
Arboles y Colas de Prioridad en JavaArboles y Colas de Prioridad en Java
Arboles y Colas de Prioridad en JavaLupitaOMG Garmendia
 

Destacado (18)

Cloud computing
Cloud computingCloud computing
Cloud computing
 
Programación 3: tablas de dispersión
Programación 3: tablas de dispersiónProgramación 3: tablas de dispersión
Programación 3: tablas de dispersión
 
Programación 3: mapas y diccionarios, colecciones parametrizadas
Programación 3: mapas y diccionarios, colecciones parametrizadasProgramación 3: mapas y diccionarios, colecciones parametrizadas
Programación 3: mapas y diccionarios, colecciones parametrizadas
 
Programación 3: caminos más cortos con un solo origen
Programación 3: caminos más cortos con un solo origenProgramación 3: caminos más cortos con un solo origen
Programación 3: caminos más cortos con un solo origen
 
Programación 3: Vector, stack, enumearator, iterator, listiterator en Java
Programación 3: Vector, stack, enumearator, iterator, listiterator en JavaProgramación 3: Vector, stack, enumearator, iterator, listiterator en Java
Programación 3: Vector, stack, enumearator, iterator, listiterator en Java
 
Programación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en javaProgramación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en java
 
Programación 3: Ordenación topológica, matriz de caminos y algoritmo Warshall
Programación 3: Ordenación topológica, matriz de caminos y algoritmo WarshallProgramación 3: Ordenación topológica, matriz de caminos y algoritmo Warshall
Programación 3: Ordenación topológica, matriz de caminos y algoritmo Warshall
 
Programación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de KruskalProgramación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de Kruskal
 
Programación 3: colecciones Java
Programación 3: colecciones JavaProgramación 3: colecciones Java
Programación 3: colecciones Java
 
Programación 3: árboles de búsqueda equilibrados
Programación 3: árboles de búsqueda equilibradosProgramación 3: árboles de búsqueda equilibrados
Programación 3: árboles de búsqueda equilibrados
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
 
Programación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosProgramación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenados
 
Ordenamientos externos
Ordenamientos externosOrdenamientos externos
Ordenamientos externos
 
Algoritmos de ordenamiento externos
Algoritmos de ordenamiento externosAlgoritmos de ordenamiento externos
Algoritmos de ordenamiento externos
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
Arboles y Colas de Prioridad en Java
Arboles y Colas de Prioridad en JavaArboles y Colas de Prioridad en Java
Arboles y Colas de Prioridad en Java
 
Programación 3: presentación
Programación 3: presentaciónProgramación 3: presentación
Programación 3: presentación
 

Similar a Programación 1: modularización

Similar a Programación 1: modularización (20)

Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Trabajo tutorial de visual C++
Trabajo tutorial de visual C++
 
01 metprogramacion
01 metprogramacion01 metprogramacion
01 metprogramacion
 
Maps
MapsMaps
Maps
 
sentenciareturnymetodos
sentenciareturnymetodossentenciareturnymetodos
sentenciareturnymetodos
 
Tutorial jared
Tutorial jaredTutorial jared
Tutorial jared
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Metodologia solucion de problemas algoritmos (1)
Metodologia solucion de problemas algoritmos (1)Metodologia solucion de problemas algoritmos (1)
Metodologia solucion de problemas algoritmos (1)
 
Diagramas de-flujo.
Diagramas de-flujo.Diagramas de-flujo.
Diagramas de-flujo.
 
Estructuras de un Algoritmo
Estructuras de un AlgoritmoEstructuras de un Algoritmo
Estructuras de un Algoritmo
 
Unidad II
Unidad IIUnidad II
Unidad II
 
Metodos en java
Metodos en javaMetodos en java
Metodos en java
 
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
 
Unidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmosUnidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmos
 
Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4
 
Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4
 
Anexo1
Anexo1Anexo1
Anexo1
 
ESTRUCTURA DE DATOS
ESTRUCTURA DE DATOSESTRUCTURA DE DATOS
ESTRUCTURA DE DATOS
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Diego ochoaguerrero nelsondavidluna
Diego ochoaguerrero nelsondavidlunaDiego ochoaguerrero nelsondavidluna
Diego ochoaguerrero nelsondavidluna
 

Más de Angel Vázquez Patiño

Valores extremos y comportamiento de las funciones y de sus gráficas
Valores extremos y comportamiento de las funciones y de sus gráficasValores extremos y comportamiento de las funciones y de sus gráficas
Valores extremos y comportamiento de las funciones y de sus gráficasAngel Vázquez Patiño
 
Causality and climate networks approaches for evaluating climate models, trac...
Causality and climate networks approaches for evaluating climate models, trac...Causality and climate networks approaches for evaluating climate models, trac...
Causality and climate networks approaches for evaluating climate models, trac...Angel Vázquez Patiño
 
Diferencias finitas y Ecuación de calor
Diferencias finitas y Ecuación de calorDiferencias finitas y Ecuación de calor
Diferencias finitas y Ecuación de calorAngel Vázquez Patiño
 
Puntos ordinarios y singularidades de una EDO lineal
Puntos ordinarios y singularidades de una EDO linealPuntos ordinarios y singularidades de una EDO lineal
Puntos ordinarios y singularidades de una EDO linealAngel Vázquez Patiño
 
Métodos de resolución de EDOs mediante series
Métodos de resolución de EDOs mediante seriesMétodos de resolución de EDOs mediante series
Métodos de resolución de EDOs mediante seriesAngel Vázquez Patiño
 
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...Angel Vázquez Patiño
 
Problemas que originan sistemas de ecuaciones
Problemas que originan sistemas de ecuacionesProblemas que originan sistemas de ecuaciones
Problemas que originan sistemas de ecuacionesAngel Vázquez Patiño
 
Linealización de sistemas de primer orden
Linealización de sistemas de primer ordenLinealización de sistemas de primer orden
Linealización de sistemas de primer ordenAngel Vázquez Patiño
 
Fundamentos de Computación y Programación
Fundamentos de Computación y ProgramaciónFundamentos de Computación y Programación
Fundamentos de Computación y ProgramaciónAngel Vázquez Patiño
 
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...Angel Vázquez Patiño
 

Más de Angel Vázquez Patiño (20)

Funciones, límites y continuidad
Funciones, límites y continuidadFunciones, límites y continuidad
Funciones, límites y continuidad
 
Integral definida e integración
Integral definida e integraciónIntegral definida e integración
Integral definida e integración
 
Valores extremos y comportamiento de las funciones y de sus gráficas
Valores extremos y comportamiento de las funciones y de sus gráficasValores extremos y comportamiento de las funciones y de sus gráficas
Valores extremos y comportamiento de las funciones y de sus gráficas
 
Derivada y diferenciación
Derivada y diferenciaciónDerivada y diferenciación
Derivada y diferenciación
 
Causality and climate networks approaches for evaluating climate models, trac...
Causality and climate networks approaches for evaluating climate models, trac...Causality and climate networks approaches for evaluating climate models, trac...
Causality and climate networks approaches for evaluating climate models, trac...
 
Diferencias finitas y Ecuación de calor
Diferencias finitas y Ecuación de calorDiferencias finitas y Ecuación de calor
Diferencias finitas y Ecuación de calor
 
Puntos ordinarios y singularidades de una EDO lineal
Puntos ordinarios y singularidades de una EDO linealPuntos ordinarios y singularidades de una EDO lineal
Puntos ordinarios y singularidades de una EDO lineal
 
La ecuación diferencial de Legendre
La ecuación diferencial de LegendreLa ecuación diferencial de Legendre
La ecuación diferencial de Legendre
 
Solución en series de y' = f(x,y)
Solución en series de y' = f(x,y)Solución en series de y' = f(x,y)
Solución en series de y' = f(x,y)
 
Métodos de resolución de EDOs mediante series
Métodos de resolución de EDOs mediante seriesMétodos de resolución de EDOs mediante series
Métodos de resolución de EDOs mediante series
 
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...
 
Problemas que originan sistemas de ecuaciones
Problemas que originan sistemas de ecuacionesProblemas que originan sistemas de ecuaciones
Problemas que originan sistemas de ecuaciones
 
Linealización de sistemas de primer orden
Linealización de sistemas de primer ordenLinealización de sistemas de primer orden
Linealización de sistemas de primer orden
 
Sistemas de EDOs
Sistemas de EDOsSistemas de EDOs
Sistemas de EDOs
 
Método de la secante
Método de la secanteMétodo de la secante
Método de la secante
 
Iteraciones de punto fijo
Iteraciones de punto fijoIteraciones de punto fijo
Iteraciones de punto fijo
 
Objetos y variables en Python
Objetos y variables en PythonObjetos y variables en Python
Objetos y variables en Python
 
Definiciones de Error
Definiciones de ErrorDefiniciones de Error
Definiciones de Error
 
Fundamentos de Computación y Programación
Fundamentos de Computación y ProgramaciónFundamentos de Computación y Programación
Fundamentos de Computación y Programación
 
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...
 

Último

CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfErikNivor
 
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosJeanCarlosLorenzo1
 
Sistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosSistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosfranchescamassielmor
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.pptVitobailon
 
Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)mendezruben1901
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialyajhairatapia
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfAnonymous0pBRsQXfnx
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionOsdelTacusiPancorbo
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCANDECE
 
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...esandoval7
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
NOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxNOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxJairReyna1
 
Parámetros de Perforación y Voladura. para Plataformas
Parámetros de  Perforación y Voladura. para PlataformasParámetros de  Perforación y Voladura. para Plataformas
Parámetros de Perforación y Voladura. para PlataformasSegundo Silva Maguiña
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdffredyflores58
 
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfLEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfAdelaHerrera9
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaANDECE
 
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)ssuser6958b11
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidasNelsonQuispeQuispitu
 
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...Arquitecto Alejandro Gomez cornejo muñoz
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxEtse9
 

Último (20)

CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
 
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
 
Sistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosSistema de gestión de turnos para negocios
Sistema de gestión de turnos para negocios
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.ppt
 
Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundial
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdf
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacion
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRC
 
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
NOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxNOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptx
 
Parámetros de Perforación y Voladura. para Plataformas
Parámetros de  Perforación y Voladura. para PlataformasParámetros de  Perforación y Voladura. para Plataformas
Parámetros de Perforación y Voladura. para Plataformas
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
 
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfLEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de Almería
 
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidas
 
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptx
 

Programación 1: modularización

  • 1. Angelo Pereira MODULARIZACIÓN Programación I: Algoritmos, Datos y Estructuras. Ing. Ángel Vázquez. Msc.
  • 2. Introducción Programa complejo Diagrama de flujo Modularizar Proceso de dividir/descomponer un programa en diferentes módulos. Qué es Modularizar?
  • 3. Programa reutilizable que realiza una tarea específica. Debe ofrecer un grupo de servicios diseñados para que el resto del programa pueda interactuar con él. Ej: RetardoEnMinutos() Paradigma de la programación modular.
  • 4. Y si la tarea asignada a un módulo es demasiado compleja? Dividir en Subtareas Diseño Top Down
  • 5. Los módulos pueden recibir valores llamados parámetros y/o devolver resultados (valor de retorno).
  • 6. Una subrutina puede ser invocada/llamada desde distintos lugares del programa.
  • 7. Como los módulos pueden resolverse independientemente de los demás, las soluciones deben combinarse para resolver el problema original.
  • 8. Proceso de la Modularización Estructuración y separación de las tareas que realiza en métodos (herramienta que ayuda a modularizar un programa). Java: Método C++: Función Basic: Subrutina o procedimiento En general, en cualquier lenguaje de programación (bajo o alto nivel), estos métodos se conocen como Subrutinas. Fragmento de entidad o código auto-contenido que ejecuta una tarea específica.
  • 9. Ventajas de la Modularización  Facilita su proceso de diseño, implementación y operación.  Reduce el tamaño del código.  Facilita la compresión (cada módulo puede ser estudiado separadamente).  Facilita la corrección de errores y el mantenimiento del mismo (localización rápida).  La modificación de un módulo no afecta a los demás.  Reutilización del código. (Ej: retardos)
  • 10. Modularización aplicada en la Vida Real Jugar un Videojuego
  • 11. Ejemplo .– Algoritmo para encontrar el mayor de tres números.
  • 12. Métodos y Lenguajes de Programación Lenguajes de programación librería de métodos Conjunto de procedimientos que permiten llevar a cabo cálculos matemáticos comunes, manipulación de texto y caracteres, operaciones de E/S, operaciones con bases de datos, operaciones de redes de computadoras, procesamiento de archivos, entre otras tareas. “Un desarrollador puede escribir sus propios métodos según lo requiera el procedimiento diseñado para la solución del problema”
  • 13. Declaración de un Método Dado que podrían existir funciones declaradas de manera análoga que cumplen labores completamente diferentes o funciones incorrectamente declaradas cumpliendo tareas similares.  Permite una rápida localización a futuro.  Veloz identificación de la función específica que éste realiza dentro de un programa.  Le permite al desarrollador reutilizar de manera coherente y sobretodo eficiente de código.
  • 14. Nombre del método Tipo de dato de retorno Lista de parámetros Encabezado del método
  • 15. Tipo de Dato de Retorno  Indica el resultado del método que será utilizado por el código en el que fue invocado.  Ej: mostrará si es número entero, decimal, cadena de texto, etc. Un método puede retornar sólo un o ningún valor Si no retorna ningún valor:  El método se limita a cumplir con una tarea específica sin que haya necesidad de que retorne un valor en específico, y no dará el tipo de valor de retorno.
  • 16. Del ejemplo anterior, el tipo de retorno del método max indica que devolverá un valor numérico, posiblemente incluyendo una parte decimal.
  • 17. Nombre del Método  Debe expresar claramente la tarea que cumple (describir todo lo que hace el subprograma).  Utilizar letras minúsculas y/o MAYÚSCULAS, números y _.  Si es difícil encontrar un nombre conciso, dicho método intenta ejecutar demasiadas tareas.  Subdividir el método en partes más pequeñas que cumplan funciones específicas y fáciles de definir. Nombre que se utilizará para llamar o invocar al método que se está declarando.
  • 18.  Utilizar caracteres especiales como (tildes, ñ, -, llaves, corchetes, ni empezar con número. ¡Prohibido!
  • 19. Lista de Parámetros  Argumentos, datos de entrada (Información adicional) que recibe el método para operar con ellos en el momento de su invocación.  Si la lista de parámetros está vacía, significa que el método declarado no requiere ninguna información adicional para ejecutar su tarea.  Cada parámetro es suministrado como una variable que puede ser referenciada y utilizada en el cuerpo del método.  Puede contener uno o más parámetros separados por comas, o no contener parámetros según el diseño del método.  Están delimitada por paréntesis.
  • 20. Del ejemplo anterior, la lista de parámetros del método max está conformada por tres variables numéricas (que posiblemente incluirán una parte decimal) llamadas num1, num2 y num3.
  • 21. El Cuerpo de un Método  Definido por un conjunto de (una o más) instrucciones que se escriben y ejecutan dentro del método para cumplir con una tarea específica.  La combinación declaración y cuerpo del método conforman una entidad o código auto-contenido. Información y operaciones que se ejecutan dentro del método que son sólo conocidas y relevantes para tal método debido a que ninguna otra parte del programa puede acceder a ellas de forma directa.
  • 22. Claramente podemos observar la tarea específica que cumple el método max dentro del algoritmo (encontrar el mayor de tres números) y como las operaciones que se ejecutan dentro del mismo son únicamente conocidas por el método.
  • 23. Ejemplo de la vida real Aceleración de un vehículo  La forma de invocar este método sería ejerciendo presión sobre el pedal de aceleración. Un ejemplo de parámetro (argumentos) en este caso sería:  Cantidad de aceleración que se requiere.  Información adicional que es proporcionada por la persona que presiona el acelerador (ligeramente o con fuerza).
  • 24. Invocación de un Método  Acción de llamar a un método para que éste se ejecute y poder acceder a su funcionalidad.  Cuando es invocado es necesario proporcionarle un valor (argumentos) para cada uno de los parámetros del método.  Es realizado desde el interior de otro método y cuando el método invocado termine su ejecución, puede devolver o retornar un resultado.
  • 25. Asumiendo la existencia de un método para el registro de un depósito de dinero en una cuenta bancaria, es probable que cuando se invoque a este método se le deba proporcionar el número de cuenta y el monto del depósito como argumentos. Ejemplos de la vida real Gestiones bancarias
  • 26. Ejemplos de la vida real  El jefe departamental (representaría el método que invoca) solicita a un obrero (el método que es invocado) realizar una tarea e informar su resultado luego de que la haya terminado (retorno). Gestión jerárquica de una empresa manufacturera.  El jefe no necesita saber la forma en que el obrero ejecutó la tarea asignada, ya que el obrero pudo haber llamado por ejemplo a otros obreros (invocar otros métodos) sin que el jefe se haya enterado.
  • 27. En PROGRAMACIÓN, existe una relación jerárquica entre los diferentes métodos que componen un programa, de tal forma que el programa divide sus tareas entre varios métodos, en donde, cada método se encarga de realizar subtareas y de sus detalles de implementación propios. Es decir…
  • 28. Almacenamiento en memoria de los Argumentos  Un argumento puede consistir en valor concreto o en una variable (su nombre puede ser el mismo o diferente al nombre del parámetro. Esto se debe a que tanto el argumento como el correspondiente parámetro se almacenan como variables separadas en la memoria de la computadora. Ver fig.
  • 29. El orden, el número y el tipo de dato de los valores o variables proporcionados como argumentos en la invocación de un método, deben corresponder exactamente a la lista de parámetros en la declaración del método. ¡Importante!
  • 30. Resumen  Reducir la complejidad del programa (“Divide y vencerás”).  Cohesión y acoplamiento (principios usados para medir si los módulos de un diseño fueron bien divididos).  Pasos para escribir un Subprograma:  Definir el problema que el subprograma ha de resolver.  Darle un nombre no ambiguo al subprograma.  Decidir cómo se puede probar el funcionamiento del subprograma.
  • 31.  Escribir la declaración del subprograma (cabecera de la función).  Buscar el algoritmo más adecuado para resolver el problema.  Escribir los pasos principales del algoritmo como comentarios.  Rellenar el código correspondiente a cada comentario.  Revisar mentalmente cada fragmento de código.  Repetir los pasos anteriores hasta quedar completamente satisfecho. Resumen
  • 32. Bibliografía • Plataforma MOOC. Universidad de Cuenca: UDC003 Fundamentos de Programación I – Parte II. • Diseño Estructurado de Algoritmos. P. L. I. Flores Valerio Carlos Augusto. • Curso de programación y Análisis de Software. Arias, Ángel; Durango, Alicia. 2da edición. Pág. 231. • http://slideplayer.es/slide/4011953/ • http://elvex.ugr.es/decsai/c/apuntes/modularization.pdf