SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
Programación Modular
Programación digital I
Escuela de Sistemas
Facultad de Ingeniería
Gilberto Diaz
Programación Modular
➲ Un software monolítico no puede ser
entendido fácilmente por un solo
lector. El número de caminos de
control, ámbito de referencia, número
de variables y la complejidad global
harían su comprensión casi imposible.
Programación Modular
➲ Es más fácil resolver un problema
complejo cuando se rompe en piezas
manejables.
¡Divide y Vencerás!
Modularidad: Acoplamiento
➲ Un módulo debe ofrecer un grupo de
servicios diseñados para que el resto
del programa pueda interactuar con él
➲ Por ejemplo, en el procesador de texto
se debe contar con rutinas para:
● Cambiar la letra utilizada: cambiarEstilo()
● Cambiar el color: cambiarColorLetra()
● etc.
Programación Modular
➲ Es un método de resolución de
problemas que consiste en resolver de
forma independiente los sub-
problemas que se obtienen de una
descomposición del problema general
Programación Modular
➲ La base fundamental de este
paradigma de programación es el
módulo
➲ Un módulo en un conjunto de rutinas
que prestan un servicio específico.
➲ Una rutina, subrutina o
subprograma, como idea general, se
presenta como un algoritmo separado
del algoritmo principal, el cual permite
resolver una tarea específica.
Programación Modular
➲ Decimos que algo es modular si es
construido de manera tal que se
facilite su ensamblaje,
acomodamiento flexible y reparación
de sus componentes.
Programación Modular
➲ La modularidad da una mejor
compresión del problema y reduce el
tamaño del código
➲ Generalmente se hace la asociación
de un módulo como una caja negra.
Se sabe que entra y que sale pero no
como se procesa
Funciones y Procedimientos
➲ En la programación modular se debe
asegurar los siguientes preceptos
● máxima cohesión
● mínimo acoplamiento entre módulos
Modularidad: Cohesión
➲ Un módulo debe ofrecer un grupo de
servicios que sin lugar a dudas deben
ir juntos, por ejemplo:
● math.h
● stdio.h
➲ Por ejemplo en un procesador de
texto, todos los módulos tienen como
objetivo cooperar para producir
documentos con estilo y formato
definido (módulo de colores, módulo
de tamaño, etc)
Ventajas de los Módulos
➲ Facilitan la escritura y depuración de
un programa
➲ Localización rápida de errores
➲ La modificación de un módulo no
afecta a los demás
➲ Un grupo de instrucciones que se
repite en varias partes de un
programa puede incluirse en un
módulo y llamarlo en el programa.
Diseño Descendente
➲ En us proceso de refinamiento por
pasos, etapas o capas. Se comienza
desde lo más general hasta lo más
específico.
➲ En la solución de problemas grandes
es conveniente dividirlo en problemas
más pequeños, los cuales a su vez
pueden dividirse en sub-problemas
más pequeños.
Diseño Descendente
➲ Se inicia desde lo más general, luego
dividir y vencer
➲ Asegurarse de las capacidades y
especificaciones del lenguaje. Esto
permite cambiar el lenguaje en medio
del diseño sin ningún trauma.
➲ Postergar lo más posible el trabajo en
los detalles.
➲ Verificar cuidadosamente cada nivel.
Diseño Descendente
Sistema
Mod 1 Mod 2
Mod 1.1 Mod 1.2
Mod 1.2.1
Diseño Descendente
Proc de
Palabras
Visualiz Ortogra
Color Fuente
Itálica
Negrita
Diseño de Rutinas
comienzo
Diseño
de la
Rutina
Chequeo
del código
Chequeo
del diseño
Codificar
la rutina
Listo
Diseño de Rutinas
➲ Chequeo de prerrequisitos. Verificar si
en trabajo de la rutina esta bien
definida
➲ Definir el problema de la rutina en
términos de los datos de entrada,
salida y gestión de errores.
➲ Nombre de la rutina. Debe ser conciso
y representativo de lo que hace la
rutina.
Diseño de Rutinas
➲ Establecer mecanismos de prueba
para la rutina. Revisar cualquier caso
que genere un error.
➲ Pruebe con diferentes formas para
codificar la rutina. La construcción de
programas es iterativa, es decir, se
prueba, se falla y se realiza un nuevo
esfuerzo hasta conseguir la versión
definitiva.
Codificación de Rutinas
➲ El diseño de una rutina equivale al
plano de una casa.
➲ La construcción de la casa equivale a
la codificación de la rutina
➲ Escriba la declaración de la rutina.
Esto se conoce como interfaz
➲ Escriba el algoritmo con frases de muy
alto nivel
Codificación de Rutinas
➲ Complete cada frase de alto nivel con
una o más líneas de código.
➲ Cheque el código informalmente.
➲ Comente y haga una prueba de los
trozos de código nuevo
Chequeo Formal de Código
➲ Haga una inspección mental de
código. Repase los algoritmos que se
han inventado para la solución del
problema.
➲ Compile la rutina. Esto mostrará todos
los errores de sintaxis.
➲ Elimine todas las causas que generen
advertencias
Reutilización de un Módulo
➲ Generalmente los algoritmos de cada
modulo sólo se escriben una sola vez
➲ La reutilización de un módulo por
otros programas implica ahorro de
tiempo. Si el módulo ha sido probado
y verificado previamente, se reduce la
posibilidad de errores.
➲ Fácil compresión del programa
completo.
Función
➲ En C los módulos se llaman funciones.
(unidad básica de los programas)
➲ Una función se define una sola vez
pero puede ser utilizada tantas veces
como sea necesario a través de una
llamada.
Función
Int funcion1 ( arg1, arg2 ...){
sentencias
}
int funcion2 (arg1, arg2 ...){
sentencias
funcion1(a,b...)
}
int main(){
funcion1(arg1, arg2...);
funcion2(arg1, arg2...);
Tipo de Funciones en C
➲ Funciones de biblioteca (módulos): C
tiene su propio conjunto de bibliotecas
de funciones básicas que permiten
realizar las operaciones de entrada
salida, operaciones lógicas,
aritméticas.
➲ Funciones definidas (diseñadas y
codificadas) por el programador para
realizar sus propias tareas.
Biblioteca Estándar de C
➲ Contiene una amplia colección de
funciones para llevar a cabo:
● cálculos matemáticos comunes,
● manipulaciones con cadenas de
caracteres,
● operaciones de entrada salida, etc
➲ Esta biblioteca de funciones comunes
construida una vez, puede ser
reutilizada por diferentes programas.
Biblioteca Estándar de C
➲ Entrada salida
● Operaciones sobre archivos
● Entrada – Salida
➲ Cadenas de caracteres: string.h
➲ Funciones matemáticas: math.h
➲ Funciones varias: stdlib.h (atoi, atof,
calloc, malloc, etc)
➲ Fecha y hora: time.h
Ejercicios
➲ Escriba una función que devuelva el
mayor de dos números que se le
pasan como entrada.
➲ Escriba una función que devuelva el
factorial de un número.

Más contenido relacionado

La actualidad más candente

3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros
Meztli Valeriano Orozco
 
Características de un algoritmo
Características de un algoritmoCaracterísticas de un algoritmo
Características de un algoritmo
roxanaparra28
 
Metodologia xp
Metodologia xpMetodologia xp
Metodologia xp
gmjuan
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
monty19
 

La actualidad más candente (20)

Tipos de Autómatas 
Tipos de Autómatas Tipos de Autómatas 
Tipos de Autómatas 
 
C presentation
C presentationC presentation
C presentation
 
3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros
 
Características de un algoritmo
Características de un algoritmoCaracterísticas de un algoritmo
Características de un algoritmo
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo
 
Programming Language
Programming LanguageProgramming Language
Programming Language
 
Book ppt
Book pptBook ppt
Book ppt
 
Procesos
ProcesosProcesos
Procesos
 
Metodologia xp
Metodologia xpMetodologia xp
Metodologia xp
 
Elementos basicos de un programa
Elementos basicos de un programaElementos basicos de un programa
Elementos basicos de un programa
 
Análisis y diseño orientado a objetos
Análisis y diseño orientado a objetosAnálisis y diseño orientado a objetos
Análisis y diseño orientado a objetos
 
Teoria de los lenguajes de programacion
Teoria de los lenguajes de programacionTeoria de los lenguajes de programacion
Teoria de los lenguajes de programacion
 
introduction to c language
 introduction to c language introduction to c language
introduction to c language
 
Los Ciclos en los Diagramas de Flujo
Los Ciclos en los Diagramas de FlujoLos Ciclos en los Diagramas de Flujo
Los Ciclos en los Diagramas de Flujo
 
Estructura de un sistema operativo
Estructura de un sistema operativoEstructura de un sistema operativo
Estructura de un sistema operativo
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensamblador
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Introduction to C Programming
Introduction to C ProgrammingIntroduction to C Programming
Introduction to C Programming
 

Similar a 12 programacion modular

Conceptos básicos para la programación
Conceptos básicos para la programaciónConceptos básicos para la programación
Conceptos básicos para la programación
Erika Sánchez
 
Introduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacionIntroduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacion
lupitagarcia07
 
Unidad3 130504163038-phpapp02 (1)
Unidad3 130504163038-phpapp02 (1)Unidad3 130504163038-phpapp02 (1)
Unidad3 130504163038-phpapp02 (1)
Leslie Diaz
 
Fundamentos del programación de diseño web
Fundamentos del programación de  diseño webFundamentos del programación de  diseño web
Fundamentos del programación de diseño web
Laura Valencia
 

Similar a 12 programacion modular (20)

Programacion Funcional
Programacion FuncionalProgramacion Funcional
Programacion Funcional
 
Nicholas casañas castaño
Nicholas casañas castañoNicholas casañas castaño
Nicholas casañas castaño
 
Giseproi curso de programación - sesión 8 - ejemplo de creacion de un programa
Giseproi   curso de programación - sesión 8 - ejemplo de creacion de un programaGiseproi   curso de programación - sesión 8 - ejemplo de creacion de un programa
Giseproi curso de programación - sesión 8 - ejemplo de creacion de un programa
 
Presentacion info
Presentacion infoPresentacion info
Presentacion info
 
Conceptos básicos para la programación
Conceptos básicos para la programaciónConceptos básicos para la programación
Conceptos básicos para la programación
 
Parte i curso c
Parte i curso cParte i curso c
Parte i curso c
 
Unidad 2 curso c
Unidad 2 curso cUnidad 2 curso c
Unidad 2 curso c
 
Introduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacionIntroduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacion
 
2do parcial c
2do parcial c2do parcial c
2do parcial c
 
Unidad3 130504163038-phpapp02 (1)
Unidad3 130504163038-phpapp02 (1)Unidad3 130504163038-phpapp02 (1)
Unidad3 130504163038-phpapp02 (1)
 
Fundamentos del programación de diseño web
Fundamentos del programación de  diseño webFundamentos del programación de  diseño web
Fundamentos del programación de diseño web
 
Unidad 3 margie
Unidad 3 margieUnidad 3 margie
Unidad 3 margie
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Programación modular
Programación modularProgramación modular
Programación modular
 
Paradigmas programacion
Paradigmas programacionParadigmas programacion
Paradigmas programacion
 
TEMA 01 PROGRAMACION .pdf
TEMA 01 PROGRAMACION .pdfTEMA 01 PROGRAMACION .pdf
TEMA 01 PROGRAMACION .pdf
 
ALGORITMOS EN EL SOFTWARE
ALGORITMOS EN EL SOFTWAREALGORITMOS EN EL SOFTWARE
ALGORITMOS EN EL SOFTWARE
 
NIVEL DE PROGRAMACIÓN WEB INTRODUCCIÓN
NIVEL DE PROGRAMACIÓN WEB INTRODUCCIÓNNIVEL DE PROGRAMACIÓN WEB INTRODUCCIÓN
NIVEL DE PROGRAMACIÓN WEB INTRODUCCIÓN
 
ALGORITMOS y ejemplo en java.pptx
ALGORITMOS  y ejemplo en java.pptxALGORITMOS  y ejemplo en java.pptx
ALGORITMOS y ejemplo en java.pptx
 

Último

ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
gustavoiashalom
 

Último (20)

Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...
 
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfNTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalación
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheAportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
 
Introduction to Satellite Communication_esp_FINAL.ppt
Introduction to Satellite Communication_esp_FINAL.pptIntroduction to Satellite Communication_esp_FINAL.ppt
Introduction to Satellite Communication_esp_FINAL.ppt
 
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptxEFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
 
Presentacion de la ganaderia en la región
Presentacion de la ganaderia en la regiónPresentacion de la ganaderia en la región
Presentacion de la ganaderia en la región
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfCONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
 
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelosFicha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf
2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf
2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf
 
Libro de ingeniería sobre Tecnología Eléctrica.pdf
Libro de ingeniería sobre Tecnología Eléctrica.pdfLibro de ingeniería sobre Tecnología Eléctrica.pdf
Libro de ingeniería sobre Tecnología Eléctrica.pdf
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
 
Suelo, tratamiento saneamiento y mejoramiento
Suelo, tratamiento saneamiento y mejoramientoSuelo, tratamiento saneamiento y mejoramiento
Suelo, tratamiento saneamiento y mejoramiento
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
 
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
 

12 programacion modular

  • 1. Programación Modular Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz
  • 2. Programación Modular ➲ Un software monolítico no puede ser entendido fácilmente por un solo lector. El número de caminos de control, ámbito de referencia, número de variables y la complejidad global harían su comprensión casi imposible.
  • 3. Programación Modular ➲ Es más fácil resolver un problema complejo cuando se rompe en piezas manejables. ¡Divide y Vencerás!
  • 4. Modularidad: Acoplamiento ➲ Un módulo debe ofrecer un grupo de servicios diseñados para que el resto del programa pueda interactuar con él ➲ Por ejemplo, en el procesador de texto se debe contar con rutinas para: ● Cambiar la letra utilizada: cambiarEstilo() ● Cambiar el color: cambiarColorLetra() ● etc.
  • 5. Programación Modular ➲ Es un método de resolución de problemas que consiste en resolver de forma independiente los sub- problemas que se obtienen de una descomposición del problema general
  • 6. Programación Modular ➲ La base fundamental de este paradigma de programación es el módulo ➲ Un módulo en un conjunto de rutinas que prestan un servicio específico. ➲ Una rutina, subrutina o subprograma, como idea general, se presenta como un algoritmo separado del algoritmo principal, el cual permite resolver una tarea específica.
  • 7. Programación Modular ➲ Decimos que algo es modular si es construido de manera tal que se facilite su ensamblaje, acomodamiento flexible y reparación de sus componentes.
  • 8. Programación Modular ➲ La modularidad da una mejor compresión del problema y reduce el tamaño del código ➲ Generalmente se hace la asociación de un módulo como una caja negra. Se sabe que entra y que sale pero no como se procesa
  • 9. Funciones y Procedimientos ➲ En la programación modular se debe asegurar los siguientes preceptos ● máxima cohesión ● mínimo acoplamiento entre módulos
  • 10. Modularidad: Cohesión ➲ Un módulo debe ofrecer un grupo de servicios que sin lugar a dudas deben ir juntos, por ejemplo: ● math.h ● stdio.h ➲ Por ejemplo en un procesador de texto, todos los módulos tienen como objetivo cooperar para producir documentos con estilo y formato definido (módulo de colores, módulo de tamaño, etc)
  • 11. Ventajas de los Módulos ➲ Facilitan la escritura y depuración de un programa ➲ Localización rápida de errores ➲ La modificación de un módulo no afecta a los demás ➲ Un grupo de instrucciones que se repite en varias partes de un programa puede incluirse en un módulo y llamarlo en el programa.
  • 12. Diseño Descendente ➲ En us proceso de refinamiento por pasos, etapas o capas. Se comienza desde lo más general hasta lo más específico. ➲ En la solución de problemas grandes es conveniente dividirlo en problemas más pequeños, los cuales a su vez pueden dividirse en sub-problemas más pequeños.
  • 13. Diseño Descendente ➲ Se inicia desde lo más general, luego dividir y vencer ➲ Asegurarse de las capacidades y especificaciones del lenguaje. Esto permite cambiar el lenguaje en medio del diseño sin ningún trauma. ➲ Postergar lo más posible el trabajo en los detalles. ➲ Verificar cuidadosamente cada nivel.
  • 14. Diseño Descendente Sistema Mod 1 Mod 2 Mod 1.1 Mod 1.2 Mod 1.2.1
  • 15. Diseño Descendente Proc de Palabras Visualiz Ortogra Color Fuente Itálica Negrita
  • 16. Diseño de Rutinas comienzo Diseño de la Rutina Chequeo del código Chequeo del diseño Codificar la rutina Listo
  • 17. Diseño de Rutinas ➲ Chequeo de prerrequisitos. Verificar si en trabajo de la rutina esta bien definida ➲ Definir el problema de la rutina en términos de los datos de entrada, salida y gestión de errores. ➲ Nombre de la rutina. Debe ser conciso y representativo de lo que hace la rutina.
  • 18. Diseño de Rutinas ➲ Establecer mecanismos de prueba para la rutina. Revisar cualquier caso que genere un error. ➲ Pruebe con diferentes formas para codificar la rutina. La construcción de programas es iterativa, es decir, se prueba, se falla y se realiza un nuevo esfuerzo hasta conseguir la versión definitiva.
  • 19. Codificación de Rutinas ➲ El diseño de una rutina equivale al plano de una casa. ➲ La construcción de la casa equivale a la codificación de la rutina ➲ Escriba la declaración de la rutina. Esto se conoce como interfaz ➲ Escriba el algoritmo con frases de muy alto nivel
  • 20. Codificación de Rutinas ➲ Complete cada frase de alto nivel con una o más líneas de código. ➲ Cheque el código informalmente. ➲ Comente y haga una prueba de los trozos de código nuevo
  • 21. Chequeo Formal de Código ➲ Haga una inspección mental de código. Repase los algoritmos que se han inventado para la solución del problema. ➲ Compile la rutina. Esto mostrará todos los errores de sintaxis. ➲ Elimine todas las causas que generen advertencias
  • 22. Reutilización de un Módulo ➲ Generalmente los algoritmos de cada modulo sólo se escriben una sola vez ➲ La reutilización de un módulo por otros programas implica ahorro de tiempo. Si el módulo ha sido probado y verificado previamente, se reduce la posibilidad de errores. ➲ Fácil compresión del programa completo.
  • 23. Función ➲ En C los módulos se llaman funciones. (unidad básica de los programas) ➲ Una función se define una sola vez pero puede ser utilizada tantas veces como sea necesario a través de una llamada.
  • 24. Función Int funcion1 ( arg1, arg2 ...){ sentencias } int funcion2 (arg1, arg2 ...){ sentencias funcion1(a,b...) } int main(){ funcion1(arg1, arg2...); funcion2(arg1, arg2...);
  • 25. Tipo de Funciones en C ➲ Funciones de biblioteca (módulos): C tiene su propio conjunto de bibliotecas de funciones básicas que permiten realizar las operaciones de entrada salida, operaciones lógicas, aritméticas. ➲ Funciones definidas (diseñadas y codificadas) por el programador para realizar sus propias tareas.
  • 26. Biblioteca Estándar de C ➲ Contiene una amplia colección de funciones para llevar a cabo: ● cálculos matemáticos comunes, ● manipulaciones con cadenas de caracteres, ● operaciones de entrada salida, etc ➲ Esta biblioteca de funciones comunes construida una vez, puede ser reutilizada por diferentes programas.
  • 27. Biblioteca Estándar de C ➲ Entrada salida ● Operaciones sobre archivos ● Entrada – Salida ➲ Cadenas de caracteres: string.h ➲ Funciones matemáticas: math.h ➲ Funciones varias: stdlib.h (atoi, atof, calloc, malloc, etc) ➲ Fecha y hora: time.h
  • 28. Ejercicios ➲ Escriba una función que devuelva el mayor de dos números que se le pasan como entrada. ➲ Escriba una función que devuelva el factorial de un número.