SlideShare una empresa de Scribd logo
1 de 49
Introducción a la
Programación.
Tema: Programación Modular.
Unidad II: Elementos de Programación .
2.8 Definición de arreglos unidimensionales y
bidimensionales.
2.9 Búsqueda, ordenación y mezcla de arreglos.
2.10 Estructura de datos.
2.11 Programación modular.
2.12 Definición de punteros.
2.13 Estructuras dinámicas.
Unidad II: Elementos de Programación
Bibliografía
C++ para Ingeniería y
Ciencia. Editorial
Cengage Learning
Editores S. A. de C. V.
Segunda edición. 2007.
Gary J. Bronson.
Capítulo 6. Página 299 –
322.
Programación modular.
Los programas profesionales se diseñan, codifican y
prueban como una serie de módulos que están
integrados para funcionar en conjunto. Cada uno de
estos módulos está vinculado entre sí y colocado al
final bajo el control principal.
El conjunto luego opera como una unidad completa,
capaz de hacer trabajo útil. Durante el proceso de
montaje, cada módulo se construye, prueba y se
encuentra libre de defectos en forma individual antes
de ser instalado en el producto final.
Programación modular.
La comunicación entre módulos está restringida a
pasar las entradas necesarias a cada módulo
conforme se le llame a ejecutar su tarea, y cada
módulo opera en forma interna de una manera
relativamente independiente.
Este mismo enfoque modular es usado para crear y
mantener programas confiables usando funciones.
Como se ha visto, cada programa en C++ debe
contener una función main(). Además de esta
función requerida, también pueden contener
cualquier cantidad de funciones adicionales.
Programación modular.
Debe ponerse atención a la función en sí y en la
forma en que interactúa con otras funciones,
como main(). Esto incluye transmitir datos a una
función y hacer que la función reciba, almacene y
procese en forma correcta los datos transmitidos.
Ocurre lo mismo con las funciones matemáticas,
una función se invoca, o utiliza, dando el nombre
de la función y transmitiéndole datos, como
argumentos, en el paréntesis que sigue al
nombre de la función.
Programación modular.
nombre-de-la-función(datos transmitidos a la función)
Esto identifica la
función llamada
Esto transmite datos
a la función
Programación modular.
#include <iostream>
using namespace std;
void encontrarMax(int, int); // Declaración de la función (prototipo)
int main()
{int primernum, segundonum;
cout << “nPor favor introduzca un número: ”;
cin >> primernum;
cout << “Por favor introduzca un segundo número: ”;
cin >> segundonum;
encontrarMax(primernum, segundonum); // aquí se llama la
funcion
return 0;}
Programación modular.
#include <iostream>
using namespace std;
void encontrarMax(int, int); // Declaración de la función (prototipo)
int main()
{int primernum, segundonum;
cout << “nPor favor introduzca un número: ”;
cin >> primernum;
cout << “Por favor introduzca un segundo número: ”;
cin >> segundonum;
encontrarMax(primernum, segundonum); // aquí se llama la
funcion
return 0;}
La función invocada
debe ser capaz de
aceptar los datos que le
son transmitidos por la
función que hace la
llamada. Sólo después
que la función invocada
recibe con éxito los da-
tos pueden ser
manipulados éstos para
producir un resultado
útil.
Programación modular.
#include <iostream>
using namespace std;
void encontrarMax(int, int); // Declaración de la función (prototipo)
int main()
{int primernum, segundonum;
cout << “nPor favor introduzca un número: ”;
cin >> primernum;
cout << “Por favor introduzca un segundo número: ”;
cin >> segundonum;
encontrarMax(primernum, segundonum); // aquí se llama la
funcion
return 0;}
La función
encontrarMax() se
conoce como la función
llamada, en vista que
es
llamada o invocada a la
acción por su referencia
en main(). La función
que hace la llamada, en
este caso main(), se
conoce como la función
que llama.
Programación modular.
#include <iostream>
using namespace std;
void encontrarMax(int, int); // Declaración de la función (prototipo)
int main()
{int primernum, segundonum;
cout << “nPor favor introduzca un número: ”;
cin >> primernum;
cout << “Por favor introduzca un segundo número: ”;
cin >> segundonum;
encontrarMax(primernum, segundonum); // aquí se llama la
funcion
return 0;}
La función llamada, en este
caso encontrarMax(), es
declarada como una función
que espera recibir dos números
enteros y no devolver ningún
valor (void) a main(). Esta
declaración se conoce de
manera formal como un
prototipo de función. La función
es invocada entonces por la
última instrucción en el
programa.
Programación modular.
Prototipos de función
Antes que una función pueda ser llamada,
debe ser declarada la función que hará la
llamada. La instrucción de declaración para
una función se conoce como un prototipo de
función. El prototipo de función le indica a la
función que llama el tipo de valor que será
devuelto formalmente, si es que hay alguno, y
el tipo de datos y orden de los valores que la
función que llama deberá transmitir a la función
llamada.
Programación modular.
Prototipos de función
Por ejemplo,
void encontrarMax(int, int);
declara que la función encontrarMax()
espera que se le envíen dos valores
enteros, y que esta función particular
devuelve de manera formal ningún valor
(void).
Programación modular.
Prototipos de función
La forma general de las instrucciones de
prototipo de función es:
tipo-de-datos-a-devolver nombre-de-función
(lista de tipos de datos para los
argumentos);
donde el tipo de datos se refiere al tipo del
valor que será devuelto de manera formal
por la función.
Programación modular.
Prototipos de función
Son ejemplos de prototipos de función:
int fmax(int,int);
double intercambio(int, char, char, double);
void desplegar(double, double);
Programación modular.
Prototipos de función
Son ejemplos de prototipos de función:
int fmax(int,int);
double intercambio(int, char, char, double);
void desplegar(double, double);
El prototipo de función para fmax() declara que
esta función espera recibir dos argumentos en
número entero y devolverá de manera formal un
valor en número entero.
Programación modular.
Prototipos de función
Son ejemplos de prototipos de función:
int fmax(int,int);
double intercambio(int, char, char, double);
void desplegar(double, double);
El prototipo de función para intercambio() declara
que requiere cuatro argumentos consistentes en
un número entero, dos caracteres y un argumento
de precisión doble, en este orden y formalmente
retornará un número de precisión doble.
Programación modular.
Prototipos de función
Son ejemplos de prototipos de función:
int fmax(int,int);
double intercambio(int, char, char, double);
void desplegar(double, double);
Por último, el prototipo de función para
desplegar() declara que esta función requiere dos
argumentos de precisión doble y no devuelve
ningún valor.
Programación modular.
Prototipos de función
Su uso permite la verificación de errores en
los tipos de datos por el compilador. Si el
prototipo no concuerda con los tipos de
datos definidos cuando se escribe la función,
ocurrirá una advertencia del compilador.
También sirve para asegurar la conversión
de todos los argumentos transmitidos a la
función al tipo de datos del argumento
declarado cuando se llama la función.
Programación modular.
Llamar una función
Es una operación bastante fácil. Los únicos
requisitos son usar el nombre de la función
y que los datos transmitidos a la función
estén encerrados dentro de los paréntesis
que siguen al nombre de la función usando
el mismo orden y tipo que se declaró en el
prototipo de función. Los elementos
encerrados dentro de los paréntesis se
llaman argumentos de la función llamada.
Programación modular.
encontrarMax (primernum, segundonum);
Esto identifica la
función llamada.
Esto causa que se
transmitan dos valores.
Programación modular.
Si una variable es uno de los argumentos en
una llamada a la función, la función llamada
recibe una copia del valor almacenado en la
variable. Ejemplo:
encontrarMax(primernum, segundonum);
Invoca a la función encontrarMax y causa
que los valores que residen en la actualidad
en las variables primernum y segundonum
sean transmitidos a encontrarMax().
Programación modular.
En:
encontrarMax(primernum, segundonum);
Los nombres de variable entre paréntesis
son argumentos que proporcionan valores a
la función llamada. Después que se
transmiten los valores, el control es
transferido a la función llamada.
Programación modular.
Llamar a una función.
C++ para Ingeniería y
Ciencia. Bronson 2a
Edición. Pág. 303.
Programación modular.
Llamar a una función.
C++ para Ingeniería y
Ciencia. Bronson
2a Edición. Pág. 303.
La función no recibe las variablesLa función no recibe las variables
primernum y segundonum y no tieneprimernum y segundonum y no tiene
conocimiento de estos nombres deconocimiento de estos nombres de
variables. La función tan sólo recibevariables. La función tan sólo recibe
los valores en estas variables y debelos valores en estas variables y debe
determinar por sí misma dóndedeterminar por sí misma dónde
almacenarlos antes de continuar. Estoalmacenarlos antes de continuar. Esto
es un procedimiento de seguridades un procedimiento de seguridad
para que una función invocada nopara que una función invocada no
cambie de manera inadvertida loscambie de manera inadvertida los
datos almacenados en una variable.datos almacenados en una variable.
La función obtiene una copia de losLa función obtiene una copia de los
datos a usar. Puede cambiar su copiadatos a usar. Puede cambiar su copia
y, por supuesto, cambiar cualesquieray, por supuesto, cambiar cualesquiera
variables declaradas dentro de sívariables declaradas dentro de sí
misma. Sin embargo, a menos que semisma. Sin embargo, a menos que se
den pasos específicos para hacerlo,den pasos específicos para hacerlo,
no se le permite a una funciónno se le permite a una función
cambiar el contenido de las variablescambiar el contenido de las variables
declaradas en otras funciones.declaradas en otras funciones.
Definición de una función
Se define cuando se escribe. Cada función
es definida una vez (es decir, escrita una
vez) en un programa y puede ser usada
entonces por cualquier otra función en el
programa que la declare en forma
adecuada. Como la función main(), toda
función en C++ consta de dos partes, un
encabezado de función y un cuerpo de
función.
Definición de una función
Formato general de una función.
C++ para Ingeniería y Ciencia. Bronson. 2a Edición. Pág. 304.
El encabezado siempre es la primera línea de una función y
contiene el tipo de valor devuelto, su nombre y los nombres y
tipos de datos de sus argumentos. Yaa que encontrarMax() no
devolverá de manera formal ningún valor y recibirá dos
argumentos en número entero, puede usarse la siguiente línea
de encabezado:
void encontrarMax(int x, int y) ← sin punto y coma.
Definición de una función
El propósito del encabezado de función es
identificar el tipo de datos del valor devuelto
por la función, proporcionarle un nombre a
la función y especificar el número, orden y
tipo de los argumentos esperados por ella.
El propósito del cuerpo de función es operar
sobre los datos transmitidos y devolver en
forma directa, cuando mucho, un valor a la
función que llama.
Definición de una función
Almacenar valores en parámetros.
C++ para Ingeniería y Ciencia. Bronson. 2a Edición. Pág. 305.
Definición de una función
Los nombres de argumento en el encabezado se
conocen como parámetros formales de la función.
Por tanto, el parámetro x se usará para almacenar el
primer valor transmitido a encontrarMax() y el
parámetro y se utilizará para almacenar el segundo
valor transmitido en el momento de la llamada a la
función. La función no sabe de dónde provienen los
valores cuando se hace la llamada desde main(). La
primera parte del procedimiento de llamada ejecutado
por la computadora implica ir a las variables
primernum y segundonum y recuperar los valores
almacenados. Estos valores son transmitidos luego a
encontrarMax() y almacenados al final en los
parámetros x y y.
Definición de una función
El nombre de la función y todos los nombres de
parámetros en el encabezado, en este caso
encontrarMax, x y y , son elegidos por el programador.
Pueden usarse los nombres seleccionados de
acuerdo con las reglas usadas para elegir nombres de
variables.
Todos los parámetros enumerados en la línea de
encabezado de la función deben separarse con
comas y deben tener los tipos de datos individuales
declarados por separado.
Definición de una función
Formato general de una función.
C++ para Ingeniería y Ciencia. Bronson. 2a Edición. Pág. 304.
Ahora que hemos escrito el encabezado de función para la
función encontrarMax(), se puede construir su cuerpo. En el
cuerpo de la función encontrarMax(), se declarará una variable
para almacenar el máximo de los dos números transmitidos a
ella.
Definición de una función
void encontrarMax(int x, int y)
{inicio del cuerpo de funcion
int numMax; //declaración de variable
if(x>=y) //encuentra el máximo número
numMax=x;
else
numMax=y;
cout<<"nEl máximo de los dos números
es"
<<numMax<<endl;
}//fin del cuerpo de la función y fin de la función
#include <iostream>
using namespacestd;
void encontrarMax(int, int);
cout << “nIntroduzca un número: ”;
cin >> primernum;
cout << “Introduzca un segundo número: ”;
cin >> segundonum;
encontrarMax(primernum, segundonum);
return 0;}
void encontrarMax(int x, int y)
{int numMax;
if(x>=y) numMax = x;
else numMax = y;
cout << “nEl máximo de los dos números es ”
<<numMax << endl;
return;}
directivas del preprocesador
prototipos de función
intmain()
{constantes simbólicas
declaraciones de variables
otras instrucciones ejecutables
return valor}
definiciones de función
Buenas prácticas en la estructura de
programación
Funciones con listas de parámetros vacías
Pueden ocurrir. El prototipo de esta función
requiere escribirle void o no poner nada en
absoluto entre los paréntesis que siguen al
nombre de la función:
●
int despliegue();
●
int despliegue(void);
despliegue() no tiene parámetros y devuelve un
número entero. Estas funciones son llamadas
por su nombre sin nada escrito dentro del
paréntesis. Por ejemplo, la instrucción
despliegue(); llama en forma correcta a la
función despliegue() cuyo prototipo se
proporcionó antes.
Argumentos por omisión
C++ es flexible para proporcionar argumentos
por omisión mediante una llamada a la función.
Su uso extiende la lista de parámetros de
funciones existentes sin requerir algún cambio
en las listas de argumentos invocados que ya
están en su lugar dentro de un programa.
Los valores del argumento por omisión se
enlistan en el prototipo de función y son
transmitidos en forma automática a la función
llamada cuando los argumentos
correspondientes son omitidos de la llamada a la
función.
Argumentos por omisión
El prototipo de función:
void ejemplo (int, int = 5, double = 6.78);
proporciona valores por omisión para los
últimos dos argumentos. Si alguno de estos
argumentos se omite cuando la función es
llamada en realidad, el compilador
suministrará estos valores por omisión. Por
tanto, todas las siguientes llamadas a la
función son válidas:
●
ejemplo(7,2,9.3)
●
ejemplo(7,2)
●
ejemplo(7)
Reglas para uso de argumentos por omisión
1.Estos valores deberían asignarse en el
prototipo de función.
2.Si a cualquier parámetro se le da un valor
por omisión en el prototipo, a todos los
parámetros que siguen también deben
asignárseles valores por omisión.
3.Si un argumento se omite en la llamada a la
función real, entonces todos los argumentos
a su derecha también deben omitirse.
4.El valor por omisión utilizado en el prototipo
puede ser una expresión consistente en
constantes y variables declaradas antes.
Reutilización de nombres de función (sobrecarga)
C++ proporciona la capacidad de usar el
mismo nombre de función para más de una
función, lo cual se conoce como sobrecarga
de función. El único requisito, es que el
compilador debe ser capaz de determinar
cuál función usar con base en los tipos de
datos de los parámetros (no los tipos de
datos del valor devuelto, si es que hay
alguno).
… sobrecarga de función (reutilizacion)
void cdabs(int x) // calcula y despliega el
absoluto de un número entero
{if(x<0) x=-x;
cout << “El absoluto es ” << x << endl;}
void cdabs(float x) // calcula y despliega el
absoluto de un punto flotante
{if(x<0) x=-x;
cout << “El absoluto es ” << x << endl;}
void cdabs(double x) // calcula y despliega el
absoluto con doble precision
{if(x<0) x=-x;
cout << “El absoluto es ” << x << endl;}
… sobrecarga de función (reutilizacion)
Por tanto:
●
La llamada a la función cdabs(10); causaría
que el compilador utilizara la función
nombrada cdabs() que espera un argumento
de número entero.
●
La llamada a la función cdabs(6.28f);
causaría que el compilador usara la función
nombrada cdabs() que espera un argumento
de precisión simple.
Sobrecargar un nombre de función tan sólo
significa usar el mismo nombre para más de
una función.
Plantilla de función.
Es una función única completa que sirve
como modelo para una familia de funciones.
Cuál función de la familia se creará en
realidad depende de las llamadas a la función
subsiguientes.
template <class T> //Prefijo de plantilla.
void mostrarabs(T numero)
{if (numero < 0)
numero = -numero;
cout << “El valor absoluto del numero ”
<< “ es ” << numero << endl;
return}
Plantilla de función.
#include <iostream>
using namespace std;
template <clases T>
void mostrarabs(T número)
{return;}
Int main()
{ intƒnum1=-4; float num2 = -4.23f;
double num3 = -4.23456;
mostrarabs(num1); mostrarabs(num2);
mostrarabs(num3);
return 0;}
Plantilla de función.
La salida desplegada cuando el programa se
ejecuta es:
●El valor absoluto del numero es 4
●El valor absoluto del numero es 4.23
●El valor absoluto del numero es 4.23456
Plantilla de función.
template <clase T> // prefijo de
plantilla
T abs(T valor) // linea de encabezado
{T numabs; // declaracion de
variable
if (valor < 0)
numabs = -valor;
else
numabs = valor;
return numabs;}
Plantilla de función.
#include <iostream>
using namespace std;
template <class T>
T abs(T valor)
{ T numabs;
if (valor < 0)
numabs = -valor;
else
numabs = valor;
return numabs;}
Plantilla de función.
int main()
{ int num1 =-4; float num2=-4.23f;
double num3 =-4.23456;
cout << “El absoluto de ” << num1
<<“ es ” << abs(num1) << endl;
cout << “El absoluto de ” << num2
<<“ es ” << abs(num2) << endl;
cout << “El absoluto de ” << num3
<< “ es ” << abs(num3) << endl;
return 0;}
Ejercicios.
1.Escriba una función nombrada revisar()
que tenga tres parámetros. El primer
parámetro deberá aceptar un número
entero, el segundo parámetro un número
de precisión doble y el tercer parámetro un
número de precisión doble. El cuerpo de la
función deberá desplegar sólo los valores
de los datos transmitidos a la función
cuando es llamada.
2.Incluya la función anterior en un programa
que funcione. Asegúrese que su función es
llamada desde main()

Más contenido relacionado

La actualidad más candente

Programación modular estructurada.ppt
Programación modular estructurada.pptProgramación modular estructurada.ppt
Programación modular estructurada.ppt
Leydi Hernandez
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de software
monik1002
 

La actualidad más candente (20)

Bucles de Control Repetitivo Ciclos For
Bucles de Control Repetitivo  Ciclos ForBucles de Control Repetitivo  Ciclos For
Bucles de Control Repetitivo Ciclos For
 
Ventajas y desventajas de visual studio
Ventajas  y desventajas de visual studioVentajas  y desventajas de visual studio
Ventajas y desventajas de visual studio
 
Programación modular estructurada.ppt
Programación modular estructurada.pptProgramación modular estructurada.ppt
Programación modular estructurada.ppt
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de software
 
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosTópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificación
 
Programación modular
Programación modularProgramación modular
Programación modular
 
Elementos De Una Clase
Elementos De Una ClaseElementos De Una Clase
Elementos De Una Clase
 
Manual de PSeInt
Manual de PSeIntManual de PSeInt
Manual de PSeInt
 
metodologia de prototipos
metodologia de prototiposmetodologia de prototipos
metodologia de prototipos
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Elementos basicos de un programa
Elementos basicos de un programaElementos basicos de un programa
Elementos basicos de un programa
 
Arreglos bidimensionales
Arreglos bidimensionalesArreglos bidimensionales
Arreglos bidimensionales
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVO
 
Poo manual de ejercicios
Poo manual de ejercicios Poo manual de ejercicios
Poo manual de ejercicios
 
Metodo de busqueda
Metodo de busquedaMetodo de busqueda
Metodo de busqueda
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 

Similar a Programación modular en Introducción a la Programación

Metodos funciones
Metodos funcionesMetodos funciones
Metodos funciones
eulo10
 
Presen iii 26 funciones
Presen iii  26 funcionesPresen iii  26 funciones
Presen iii 26 funciones
RafaeloRivas
 
Indentificacion de funciones
Indentificacion de funcionesIndentificacion de funciones
Indentificacion de funciones
Julian Bohorquez
 
Funciones
FuncionesFunciones
Funciones
adark
 
Algoritmos y lenjuage de programacion
Algoritmos y  lenjuage de programacionAlgoritmos y  lenjuage de programacion
Algoritmos y lenjuage de programacion
Ysaac Ruiz
 

Similar a Programación modular en Introducción a la Programación (20)

Metodos funciones
Metodos funcionesMetodos funciones
Metodos funciones
 
Guía funciones
Guía funcionesGuía funciones
Guía funciones
 
Presen iii 26 funciones
Presen iii  26 funcionesPresen iii  26 funciones
Presen iii 26 funciones
 
Funciones lenguaje c modulo4
Funciones lenguaje c modulo4Funciones lenguaje c modulo4
Funciones lenguaje c modulo4
 
FUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE CFUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE C
 
Funcionesenlenguaje c
Funcionesenlenguaje cFuncionesenlenguaje c
Funcionesenlenguaje c
 
Indentificacion de funciones
Indentificacion de funcionesIndentificacion de funciones
Indentificacion de funciones
 
P_UNIDAD 4 FUNCIONES.pptx
P_UNIDAD 4 FUNCIONES.pptxP_UNIDAD 4 FUNCIONES.pptx
P_UNIDAD 4 FUNCIONES.pptx
 
Funciones
FuncionesFunciones
Funciones
 
Funcionesclase1
Funcionesclase1Funcionesclase1
Funcionesclase1
 
Tema 7 www.fresymetal.com
Tema 7 www.fresymetal.comTema 7 www.fresymetal.com
Tema 7 www.fresymetal.com
 
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
 
Funciones en c++
Funciones en c++Funciones en c++
Funciones en c++
 
Introducción a las funciones en el lenguaje C
Introducción a las funciones en el lenguaje CIntroducción a las funciones en el lenguaje C
Introducción a las funciones en el lenguaje C
 
Funciones en C.docx
Funciones en C.docxFunciones en C.docx
Funciones en C.docx
 
Acciones funciones
Acciones funcionesAcciones funciones
Acciones funciones
 
8448148681
84481486818448148681
8448148681
 
Funciones
FuncionesFunciones
Funciones
 
Algoritmos y lenjuage de programacion
Algoritmos y  lenjuage de programacionAlgoritmos y  lenjuage de programacion
Algoritmos y lenjuage de programacion
 
Funciones
FuncionesFunciones
Funciones
 

Más de Facultad de Ciencias y Sistemas

Más de Facultad de Ciencias y Sistemas (20)

Ejercicios HTML 5
Ejercicios HTML 5Ejercicios HTML 5
Ejercicios HTML 5
 
CSS3
CSS3CSS3
CSS3
 
09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c
 
08 mas-de-vectores-en-c
08 mas-de-vectores-en-c08 mas-de-vectores-en-c
08 mas-de-vectores-en-c
 
07 vectores-en-c final
07 vectores-en-c final07 vectores-en-c final
07 vectores-en-c final
 
06 clases-en-c
06 clases-en-c06 clases-en-c
06 clases-en-c
 
05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c
 
04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c
 
03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c
 
02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c
 
01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c
 
Procesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con pythonProcesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con python
 
Actividades de aprendizaje en Moodle
Actividades de aprendizaje en MoodleActividades de aprendizaje en Moodle
Actividades de aprendizaje en Moodle
 
Creación de grupos en Moodle
Creación de grupos en MoodleCreación de grupos en Moodle
Creación de grupos en Moodle
 
Introducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con JavaIntroducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con Java
 
Como crear un diagrama de clases
Como crear un diagrama de clasesComo crear un diagrama de clases
Como crear un diagrama de clases
 
Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02
 
Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01
 
Otro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UMLOtro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UML
 
Un ejemplo de diagrama de clases
Un ejemplo de diagrama de clasesUn ejemplo de diagrama de clases
Un ejemplo de diagrama de clases
 

Último

RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
amelia poma
 
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptx
Lineamientos de la Escuela de la Confianza  SJA  Ccesa.pptxLineamientos de la Escuela de la Confianza  SJA  Ccesa.pptx
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptx
Demetrio Ccesa Rayme
 
Apunte clase teorica propiedades de la Madera.pdf
Apunte clase teorica propiedades de la Madera.pdfApunte clase teorica propiedades de la Madera.pdf
Apunte clase teorica propiedades de la Madera.pdf
Gonella
 
COMPENDIO ECE 5 GRADO MATEMÁTICAS DE PRIMARIA
COMPENDIO ECE 5 GRADO MATEMÁTICAS DE PRIMARIACOMPENDIO ECE 5 GRADO MATEMÁTICAS DE PRIMARIA
COMPENDIO ECE 5 GRADO MATEMÁTICAS DE PRIMARIA
Wilian24
 

Último (20)

RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
12 - Planetas Extrasolares - Seminario de las Aulas de la Experiencia UPV/EHU
12 - Planetas Extrasolares - Seminario de las Aulas de la Experiencia UPV/EHU12 - Planetas Extrasolares - Seminario de las Aulas de la Experiencia UPV/EHU
12 - Planetas Extrasolares - Seminario de las Aulas de la Experiencia UPV/EHU
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptx
Lineamientos de la Escuela de la Confianza  SJA  Ccesa.pptxLineamientos de la Escuela de la Confianza  SJA  Ccesa.pptx
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptx
 
GRUPO 2 - LA GRAN TRIBULACIÓN 25-03-2024 vf.pdf
GRUPO 2 - LA GRAN TRIBULACIÓN 25-03-2024 vf.pdfGRUPO 2 - LA GRAN TRIBULACIÓN 25-03-2024 vf.pdf
GRUPO 2 - LA GRAN TRIBULACIÓN 25-03-2024 vf.pdf
 
10-08 Avances tecnológicos del siglo XXI.pdf
10-08 Avances tecnológicos del siglo XXI.pdf10-08 Avances tecnológicos del siglo XXI.pdf
10-08 Avances tecnológicos del siglo XXI.pdf
 
REGLAMENTO FINAL DE EVALUACIÓN 2024 pdf.pdf
REGLAMENTO  FINAL DE EVALUACIÓN 2024 pdf.pdfREGLAMENTO  FINAL DE EVALUACIÓN 2024 pdf.pdf
REGLAMENTO FINAL DE EVALUACIÓN 2024 pdf.pdf
 
Planeacion para 1er Grado - (2023-2024)-1.docx
Planeacion para 1er Grado - (2023-2024)-1.docxPlaneacion para 1er Grado - (2023-2024)-1.docx
Planeacion para 1er Grado - (2023-2024)-1.docx
 
Apunte clase teorica propiedades de la Madera.pdf
Apunte clase teorica propiedades de la Madera.pdfApunte clase teorica propiedades de la Madera.pdf
Apunte clase teorica propiedades de la Madera.pdf
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Presentación de la propuesta de clase.pdf
Presentación de la propuesta de clase.pdfPresentación de la propuesta de clase.pdf
Presentación de la propuesta de clase.pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
FICHA CUENTO BUSCANDO UNA MAMÁ 2024 MAESTRA JANET.pdf
FICHA CUENTO BUSCANDO UNA MAMÁ  2024 MAESTRA JANET.pdfFICHA CUENTO BUSCANDO UNA MAMÁ  2024 MAESTRA JANET.pdf
FICHA CUENTO BUSCANDO UNA MAMÁ 2024 MAESTRA JANET.pdf
 
COMPENDIO ECE 5 GRADO MATEMÁTICAS DE PRIMARIA
COMPENDIO ECE 5 GRADO MATEMÁTICAS DE PRIMARIACOMPENDIO ECE 5 GRADO MATEMÁTICAS DE PRIMARIA
COMPENDIO ECE 5 GRADO MATEMÁTICAS DE PRIMARIA
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
UNIDAD 3 -MAYO - IV CICLO para cuarto grado
UNIDAD 3 -MAYO - IV CICLO para cuarto gradoUNIDAD 3 -MAYO - IV CICLO para cuarto grado
UNIDAD 3 -MAYO - IV CICLO para cuarto grado
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
EFEMERIDES DEL MES DE MAYO PERIODICO MURAL.pdf
EFEMERIDES DEL MES DE MAYO PERIODICO MURAL.pdfEFEMERIDES DEL MES DE MAYO PERIODICO MURAL.pdf
EFEMERIDES DEL MES DE MAYO PERIODICO MURAL.pdf
 

Programación modular en Introducción a la Programación

  • 1. Introducción a la Programación. Tema: Programación Modular. Unidad II: Elementos de Programación .
  • 2. 2.8 Definición de arreglos unidimensionales y bidimensionales. 2.9 Búsqueda, ordenación y mezcla de arreglos. 2.10 Estructura de datos. 2.11 Programación modular. 2.12 Definición de punteros. 2.13 Estructuras dinámicas. Unidad II: Elementos de Programación
  • 3. Bibliografía C++ para Ingeniería y Ciencia. Editorial Cengage Learning Editores S. A. de C. V. Segunda edición. 2007. Gary J. Bronson. Capítulo 6. Página 299 – 322.
  • 4. Programación modular. Los programas profesionales se diseñan, codifican y prueban como una serie de módulos que están integrados para funcionar en conjunto. Cada uno de estos módulos está vinculado entre sí y colocado al final bajo el control principal. El conjunto luego opera como una unidad completa, capaz de hacer trabajo útil. Durante el proceso de montaje, cada módulo se construye, prueba y se encuentra libre de defectos en forma individual antes de ser instalado en el producto final.
  • 5. Programación modular. La comunicación entre módulos está restringida a pasar las entradas necesarias a cada módulo conforme se le llame a ejecutar su tarea, y cada módulo opera en forma interna de una manera relativamente independiente. Este mismo enfoque modular es usado para crear y mantener programas confiables usando funciones. Como se ha visto, cada programa en C++ debe contener una función main(). Además de esta función requerida, también pueden contener cualquier cantidad de funciones adicionales.
  • 6. Programación modular. Debe ponerse atención a la función en sí y en la forma en que interactúa con otras funciones, como main(). Esto incluye transmitir datos a una función y hacer que la función reciba, almacene y procese en forma correcta los datos transmitidos. Ocurre lo mismo con las funciones matemáticas, una función se invoca, o utiliza, dando el nombre de la función y transmitiéndole datos, como argumentos, en el paréntesis que sigue al nombre de la función.
  • 7. Programación modular. nombre-de-la-función(datos transmitidos a la función) Esto identifica la función llamada Esto transmite datos a la función
  • 8. Programación modular. #include <iostream> using namespace std; void encontrarMax(int, int); // Declaración de la función (prototipo) int main() {int primernum, segundonum; cout << “nPor favor introduzca un número: ”; cin >> primernum; cout << “Por favor introduzca un segundo número: ”; cin >> segundonum; encontrarMax(primernum, segundonum); // aquí se llama la funcion return 0;}
  • 9. Programación modular. #include <iostream> using namespace std; void encontrarMax(int, int); // Declaración de la función (prototipo) int main() {int primernum, segundonum; cout << “nPor favor introduzca un número: ”; cin >> primernum; cout << “Por favor introduzca un segundo número: ”; cin >> segundonum; encontrarMax(primernum, segundonum); // aquí se llama la funcion return 0;} La función invocada debe ser capaz de aceptar los datos que le son transmitidos por la función que hace la llamada. Sólo después que la función invocada recibe con éxito los da- tos pueden ser manipulados éstos para producir un resultado útil.
  • 10. Programación modular. #include <iostream> using namespace std; void encontrarMax(int, int); // Declaración de la función (prototipo) int main() {int primernum, segundonum; cout << “nPor favor introduzca un número: ”; cin >> primernum; cout << “Por favor introduzca un segundo número: ”; cin >> segundonum; encontrarMax(primernum, segundonum); // aquí se llama la funcion return 0;} La función encontrarMax() se conoce como la función llamada, en vista que es llamada o invocada a la acción por su referencia en main(). La función que hace la llamada, en este caso main(), se conoce como la función que llama.
  • 11. Programación modular. #include <iostream> using namespace std; void encontrarMax(int, int); // Declaración de la función (prototipo) int main() {int primernum, segundonum; cout << “nPor favor introduzca un número: ”; cin >> primernum; cout << “Por favor introduzca un segundo número: ”; cin >> segundonum; encontrarMax(primernum, segundonum); // aquí se llama la funcion return 0;} La función llamada, en este caso encontrarMax(), es declarada como una función que espera recibir dos números enteros y no devolver ningún valor (void) a main(). Esta declaración se conoce de manera formal como un prototipo de función. La función es invocada entonces por la última instrucción en el programa.
  • 12. Programación modular. Prototipos de función Antes que una función pueda ser llamada, debe ser declarada la función que hará la llamada. La instrucción de declaración para una función se conoce como un prototipo de función. El prototipo de función le indica a la función que llama el tipo de valor que será devuelto formalmente, si es que hay alguno, y el tipo de datos y orden de los valores que la función que llama deberá transmitir a la función llamada.
  • 13. Programación modular. Prototipos de función Por ejemplo, void encontrarMax(int, int); declara que la función encontrarMax() espera que se le envíen dos valores enteros, y que esta función particular devuelve de manera formal ningún valor (void).
  • 14. Programación modular. Prototipos de función La forma general de las instrucciones de prototipo de función es: tipo-de-datos-a-devolver nombre-de-función (lista de tipos de datos para los argumentos); donde el tipo de datos se refiere al tipo del valor que será devuelto de manera formal por la función.
  • 15. Programación modular. Prototipos de función Son ejemplos de prototipos de función: int fmax(int,int); double intercambio(int, char, char, double); void desplegar(double, double);
  • 16. Programación modular. Prototipos de función Son ejemplos de prototipos de función: int fmax(int,int); double intercambio(int, char, char, double); void desplegar(double, double); El prototipo de función para fmax() declara que esta función espera recibir dos argumentos en número entero y devolverá de manera formal un valor en número entero.
  • 17. Programación modular. Prototipos de función Son ejemplos de prototipos de función: int fmax(int,int); double intercambio(int, char, char, double); void desplegar(double, double); El prototipo de función para intercambio() declara que requiere cuatro argumentos consistentes en un número entero, dos caracteres y un argumento de precisión doble, en este orden y formalmente retornará un número de precisión doble.
  • 18. Programación modular. Prototipos de función Son ejemplos de prototipos de función: int fmax(int,int); double intercambio(int, char, char, double); void desplegar(double, double); Por último, el prototipo de función para desplegar() declara que esta función requiere dos argumentos de precisión doble y no devuelve ningún valor.
  • 19. Programación modular. Prototipos de función Su uso permite la verificación de errores en los tipos de datos por el compilador. Si el prototipo no concuerda con los tipos de datos definidos cuando se escribe la función, ocurrirá una advertencia del compilador. También sirve para asegurar la conversión de todos los argumentos transmitidos a la función al tipo de datos del argumento declarado cuando se llama la función.
  • 20. Programación modular. Llamar una función Es una operación bastante fácil. Los únicos requisitos son usar el nombre de la función y que los datos transmitidos a la función estén encerrados dentro de los paréntesis que siguen al nombre de la función usando el mismo orden y tipo que se declaró en el prototipo de función. Los elementos encerrados dentro de los paréntesis se llaman argumentos de la función llamada.
  • 21. Programación modular. encontrarMax (primernum, segundonum); Esto identifica la función llamada. Esto causa que se transmitan dos valores.
  • 22. Programación modular. Si una variable es uno de los argumentos en una llamada a la función, la función llamada recibe una copia del valor almacenado en la variable. Ejemplo: encontrarMax(primernum, segundonum); Invoca a la función encontrarMax y causa que los valores que residen en la actualidad en las variables primernum y segundonum sean transmitidos a encontrarMax().
  • 23. Programación modular. En: encontrarMax(primernum, segundonum); Los nombres de variable entre paréntesis son argumentos que proporcionan valores a la función llamada. Después que se transmiten los valores, el control es transferido a la función llamada.
  • 24. Programación modular. Llamar a una función. C++ para Ingeniería y Ciencia. Bronson 2a Edición. Pág. 303.
  • 25. Programación modular. Llamar a una función. C++ para Ingeniería y Ciencia. Bronson 2a Edición. Pág. 303. La función no recibe las variablesLa función no recibe las variables primernum y segundonum y no tieneprimernum y segundonum y no tiene conocimiento de estos nombres deconocimiento de estos nombres de variables. La función tan sólo recibevariables. La función tan sólo recibe los valores en estas variables y debelos valores en estas variables y debe determinar por sí misma dóndedeterminar por sí misma dónde almacenarlos antes de continuar. Estoalmacenarlos antes de continuar. Esto es un procedimiento de seguridades un procedimiento de seguridad para que una función invocada nopara que una función invocada no cambie de manera inadvertida loscambie de manera inadvertida los datos almacenados en una variable.datos almacenados en una variable. La función obtiene una copia de losLa función obtiene una copia de los datos a usar. Puede cambiar su copiadatos a usar. Puede cambiar su copia y, por supuesto, cambiar cualesquieray, por supuesto, cambiar cualesquiera variables declaradas dentro de sívariables declaradas dentro de sí misma. Sin embargo, a menos que semisma. Sin embargo, a menos que se den pasos específicos para hacerlo,den pasos específicos para hacerlo, no se le permite a una funciónno se le permite a una función cambiar el contenido de las variablescambiar el contenido de las variables declaradas en otras funciones.declaradas en otras funciones.
  • 26. Definición de una función Se define cuando se escribe. Cada función es definida una vez (es decir, escrita una vez) en un programa y puede ser usada entonces por cualquier otra función en el programa que la declare en forma adecuada. Como la función main(), toda función en C++ consta de dos partes, un encabezado de función y un cuerpo de función.
  • 27. Definición de una función Formato general de una función. C++ para Ingeniería y Ciencia. Bronson. 2a Edición. Pág. 304. El encabezado siempre es la primera línea de una función y contiene el tipo de valor devuelto, su nombre y los nombres y tipos de datos de sus argumentos. Yaa que encontrarMax() no devolverá de manera formal ningún valor y recibirá dos argumentos en número entero, puede usarse la siguiente línea de encabezado: void encontrarMax(int x, int y) ← sin punto y coma.
  • 28. Definición de una función El propósito del encabezado de función es identificar el tipo de datos del valor devuelto por la función, proporcionarle un nombre a la función y especificar el número, orden y tipo de los argumentos esperados por ella. El propósito del cuerpo de función es operar sobre los datos transmitidos y devolver en forma directa, cuando mucho, un valor a la función que llama.
  • 29. Definición de una función Almacenar valores en parámetros. C++ para Ingeniería y Ciencia. Bronson. 2a Edición. Pág. 305.
  • 30. Definición de una función Los nombres de argumento en el encabezado se conocen como parámetros formales de la función. Por tanto, el parámetro x se usará para almacenar el primer valor transmitido a encontrarMax() y el parámetro y se utilizará para almacenar el segundo valor transmitido en el momento de la llamada a la función. La función no sabe de dónde provienen los valores cuando se hace la llamada desde main(). La primera parte del procedimiento de llamada ejecutado por la computadora implica ir a las variables primernum y segundonum y recuperar los valores almacenados. Estos valores son transmitidos luego a encontrarMax() y almacenados al final en los parámetros x y y.
  • 31. Definición de una función El nombre de la función y todos los nombres de parámetros en el encabezado, en este caso encontrarMax, x y y , son elegidos por el programador. Pueden usarse los nombres seleccionados de acuerdo con las reglas usadas para elegir nombres de variables. Todos los parámetros enumerados en la línea de encabezado de la función deben separarse con comas y deben tener los tipos de datos individuales declarados por separado.
  • 32. Definición de una función Formato general de una función. C++ para Ingeniería y Ciencia. Bronson. 2a Edición. Pág. 304. Ahora que hemos escrito el encabezado de función para la función encontrarMax(), se puede construir su cuerpo. En el cuerpo de la función encontrarMax(), se declarará una variable para almacenar el máximo de los dos números transmitidos a ella.
  • 33. Definición de una función void encontrarMax(int x, int y) {inicio del cuerpo de funcion int numMax; //declaración de variable if(x>=y) //encuentra el máximo número numMax=x; else numMax=y; cout<<"nEl máximo de los dos números es" <<numMax<<endl; }//fin del cuerpo de la función y fin de la función
  • 34. #include <iostream> using namespacestd; void encontrarMax(int, int); cout << “nIntroduzca un número: ”; cin >> primernum; cout << “Introduzca un segundo número: ”; cin >> segundonum; encontrarMax(primernum, segundonum); return 0;} void encontrarMax(int x, int y) {int numMax; if(x>=y) numMax = x; else numMax = y; cout << “nEl máximo de los dos números es ” <<numMax << endl; return;}
  • 35. directivas del preprocesador prototipos de función intmain() {constantes simbólicas declaraciones de variables otras instrucciones ejecutables return valor} definiciones de función Buenas prácticas en la estructura de programación
  • 36. Funciones con listas de parámetros vacías Pueden ocurrir. El prototipo de esta función requiere escribirle void o no poner nada en absoluto entre los paréntesis que siguen al nombre de la función: ● int despliegue(); ● int despliegue(void); despliegue() no tiene parámetros y devuelve un número entero. Estas funciones son llamadas por su nombre sin nada escrito dentro del paréntesis. Por ejemplo, la instrucción despliegue(); llama en forma correcta a la función despliegue() cuyo prototipo se proporcionó antes.
  • 37. Argumentos por omisión C++ es flexible para proporcionar argumentos por omisión mediante una llamada a la función. Su uso extiende la lista de parámetros de funciones existentes sin requerir algún cambio en las listas de argumentos invocados que ya están en su lugar dentro de un programa. Los valores del argumento por omisión se enlistan en el prototipo de función y son transmitidos en forma automática a la función llamada cuando los argumentos correspondientes son omitidos de la llamada a la función.
  • 38. Argumentos por omisión El prototipo de función: void ejemplo (int, int = 5, double = 6.78); proporciona valores por omisión para los últimos dos argumentos. Si alguno de estos argumentos se omite cuando la función es llamada en realidad, el compilador suministrará estos valores por omisión. Por tanto, todas las siguientes llamadas a la función son válidas: ● ejemplo(7,2,9.3) ● ejemplo(7,2) ● ejemplo(7)
  • 39. Reglas para uso de argumentos por omisión 1.Estos valores deberían asignarse en el prototipo de función. 2.Si a cualquier parámetro se le da un valor por omisión en el prototipo, a todos los parámetros que siguen también deben asignárseles valores por omisión. 3.Si un argumento se omite en la llamada a la función real, entonces todos los argumentos a su derecha también deben omitirse. 4.El valor por omisión utilizado en el prototipo puede ser una expresión consistente en constantes y variables declaradas antes.
  • 40. Reutilización de nombres de función (sobrecarga) C++ proporciona la capacidad de usar el mismo nombre de función para más de una función, lo cual se conoce como sobrecarga de función. El único requisito, es que el compilador debe ser capaz de determinar cuál función usar con base en los tipos de datos de los parámetros (no los tipos de datos del valor devuelto, si es que hay alguno).
  • 41. … sobrecarga de función (reutilizacion) void cdabs(int x) // calcula y despliega el absoluto de un número entero {if(x<0) x=-x; cout << “El absoluto es ” << x << endl;} void cdabs(float x) // calcula y despliega el absoluto de un punto flotante {if(x<0) x=-x; cout << “El absoluto es ” << x << endl;} void cdabs(double x) // calcula y despliega el absoluto con doble precision {if(x<0) x=-x; cout << “El absoluto es ” << x << endl;}
  • 42. … sobrecarga de función (reutilizacion) Por tanto: ● La llamada a la función cdabs(10); causaría que el compilador utilizara la función nombrada cdabs() que espera un argumento de número entero. ● La llamada a la función cdabs(6.28f); causaría que el compilador usara la función nombrada cdabs() que espera un argumento de precisión simple. Sobrecargar un nombre de función tan sólo significa usar el mismo nombre para más de una función.
  • 43. Plantilla de función. Es una función única completa que sirve como modelo para una familia de funciones. Cuál función de la familia se creará en realidad depende de las llamadas a la función subsiguientes. template <class T> //Prefijo de plantilla. void mostrarabs(T numero) {if (numero < 0) numero = -numero; cout << “El valor absoluto del numero ” << “ es ” << numero << endl; return}
  • 44. Plantilla de función. #include <iostream> using namespace std; template <clases T> void mostrarabs(T número) {return;} Int main() { intƒnum1=-4; float num2 = -4.23f; double num3 = -4.23456; mostrarabs(num1); mostrarabs(num2); mostrarabs(num3); return 0;}
  • 45. Plantilla de función. La salida desplegada cuando el programa se ejecuta es: ●El valor absoluto del numero es 4 ●El valor absoluto del numero es 4.23 ●El valor absoluto del numero es 4.23456
  • 46. Plantilla de función. template <clase T> // prefijo de plantilla T abs(T valor) // linea de encabezado {T numabs; // declaracion de variable if (valor < 0) numabs = -valor; else numabs = valor; return numabs;}
  • 47. Plantilla de función. #include <iostream> using namespace std; template <class T> T abs(T valor) { T numabs; if (valor < 0) numabs = -valor; else numabs = valor; return numabs;}
  • 48. Plantilla de función. int main() { int num1 =-4; float num2=-4.23f; double num3 =-4.23456; cout << “El absoluto de ” << num1 <<“ es ” << abs(num1) << endl; cout << “El absoluto de ” << num2 <<“ es ” << abs(num2) << endl; cout << “El absoluto de ” << num3 << “ es ” << abs(num3) << endl; return 0;}
  • 49. Ejercicios. 1.Escriba una función nombrada revisar() que tenga tres parámetros. El primer parámetro deberá aceptar un número entero, el segundo parámetro un número de precisión doble y el tercer parámetro un número de precisión doble. El cuerpo de la función deberá desplegar sólo los valores de los datos transmitidos a la función cuando es llamada. 2.Incluya la función anterior en un programa que funcione. Asegúrese que su función es llamada desde main()