You are on page 1of 32

C++

12/4/16

FUNCIONES

C++
1

Mg. Edgar Ruiz Lizama

12/4/16

C++

FUNCIONES
Todo programa en C es una coleccin de funciones
donde main es la funcin principal.
Las funciones pueden clasificarse como:
1) Funciones con valor devuelto: Function
2) Funciones que no devuelven valor : Procedure

Mg. Edgar Ruiz Lizama

1.

12/4/16

Funciones con valor devuelto.


Son aquellas funciones que devuelven un valor
o resultado a la seccin donde se hizo la llamada.
FORMATO:

Tipo_dato
Identificador
lista_ argumentos
de retorno
{
. . . . . . .// cdigo de la funcin
return <valor devuelto>
}
Mg. Edgar Ruiz Lizama

12/4/16

Ejemplo 1:
#include <iostream>
#include <cmath>
float RaizCuadrada(int p);
using namespace std;
int main()
//funci2.cpp
{
float r=25;
cout<<"La Raiz cuadrada de "<<r<<" es = "<<RaizCuadrada(r);
cout<<endl;
return 0;
}
float RaizCuadrada (int p)
{
return sqrt(p);
}
Mg. Edgar Ruiz Lizama

12/4/16

2. Funciones que no devuelven valor


Las funciones que no devuelven valor (o procedimientos)
se especifican como funciones de tipo void.
FORMATO:

void
{

identificador

argumentos
lista_

...

. . . // cdigo de la funcin o procedimiento


...

}
Mg. Edgar Ruiz Lizama

12/4/16

Ejemplo 2:
##include <iostream>
#include <cmath>
void RaizCuadrada(float p);
using namespace std;
int main()
//funci3.cpp
{
float r=25;
RaizCuadrada(r); //llamada a la funcion
return 0;
}
void RaizCuadrada (float p)
{
cout<<"La Raiz cuadrada de "<<p<<" es = "<<sqrt(p);
cout<<endl;
}
Mg. Edgar Ruiz Lizama

12/4/16

SOBRECARGA DE FUNCIONES
Ejemplo 3:
Escribir un programa que solicite el radio y calcule el
rea, longitud, y el volumen segn las siguientes
formulas. Resuelva utilizando funciones.

Area del Crculo r


Longitud de Circunferencia 2 r
2

C++

4
3
Volumen de Esfera r
3
Mg. Edgar Ruiz Lizama

12/4/16

Solucin
//Ejemplo 3
#include <iostream>
const float PI=3.141592;
//declaracion de funciones prototipo
float AreaCirculo (float r);
float LongitudCircu(float r);
float VolumenEsfera (float r);
using namespace std;
int main()//areas1.cpp
{
float radio;
cout<<"ingrese valor del radio: ";
cin>>radio;
cout<<"el area del circulo es "<<AreaCirculo(radio)<<endl;
cout<<Longitud de la circunf. es:"<<LongitudCircu(radio)<<endl;
cout<<"el volumen de la esfera es "<<VolumenEsfera(radio)<<endl;
return 0;
}
Mg. Edgar Ruiz Lizama

Continuacin

12/4/16

//definiciones de funciones
float AreaCirculo (float r)
{
return (PI*r*r);
}
float LongitudCircu(float r)
{
return (2*PI*r);
}
float VolumenEsfera (float r)
{
return (4/3*PI*r*r*r);
}

Mg. Edgar Ruiz Lizama

10

12/4/16

Ejecucin del Programa

Mg. Edgar Ruiz Lizama

11

12/4/16

C++

UTILIZANDO LA
SOBRECARGA DE
FUNCIONES

Mg. Edgar Ruiz Lizama

12

Segunda solucin, utilizando sobrecarga de funciones

12/4/16

//Ejemplo 4
#include <iostream>
const double PI=3.14159265;
//funciones overload
float formulas(float r);
double formulas(double r);
long double formulas(long double r);
using namespace std;
int main()
{

//funcs6.cpp

float radio;
float r1;
double r2;
long double r3;
cout<<"ingrese valor del radio:
cin>>radio;

";
Mg. Edgar Ruiz Lizama

13

12/4/16

Continuacin
r3=r2=r1=radio;
cout<<"el area del circulo es "<<formulas(r1)<<endl;
cout<<"La longitud de la circunf. es:"<<formulas(r2)<<endl;
cout<<"el volumen de la esfera es "<<formulas(r3)<<endl;
return 0;
}
float formulas(float r)
{

//circulo
return PI*r*r;

Mg. Edgar Ruiz Lizama

14

12/4/16

Continuacin

double formulas(double r)
{

//circunferencia
return 2*PI*r;

}
long double formulas(long double r)
{

//esfera
return (4/3)*PI*r*r*r;

Mg. Edgar Ruiz Lizama

15

12/4/16

Ejemplo5: Escribir un programa que halle la media


de 2 y 3 nmeros. Resuelva sin sobrecarga
#include <iostream>
//hallando la media
//Declaracion de funciones prototipo
float media2(float n1, float n2);
float media3(float n1,float n2,float n3);
using namespace std;
int main()
//funcs2.cpp
{
float media;
media = media2(2.5,4.7);
cout<<"La media de 2.5 y 4.7 es "<<media<<endl;
media = media3(2.5,4.7,3.2);
cout<<"La media de 2.5, 4.7 y 3.2 es "<<media<<endl;
return 0;

}
float media2(float n1,float n2)
{
return (n1+n2)/2;
}
float media3(float n1,float n2,float n3)
{
return (n1+n2+n3)/3;
}

Mg. Edgar Ruiz Lizama

16

12/4/16

Ejecucin del programa

Mg. Edgar Ruiz Lizama

17

12/4/16

Ejemplo: Escribir un programa que halle la media de


dos y tres nmeros, utilizando el concepto de
sobrecarga
#include <iostream>
// Declaracion de funciones prototipo
float media(float n1, float n2);
float media(float n1,float n2,float n3);
double media(double n1,double n2,double n3);
using namespace std;
int main()
//funcs2.cpp
{
float med;
med = media(2.5,4.7);
cout<<"Media de 2.5 y 4.7 es: "<<med<<endl;
med=media(2.5,4.7,3.2); //tres flotantes
cout<<"Media de 2.5, 4.7 y 3.2 es: "<<med<<endl;
med=media(2.5655,4.7897,3.000568);
//trea dobles
cout<<"Media 2.5, 4.7 y 3.2 es: "<<med<<endl;
return 0;
}
//continua

Mg. Edgar Ruiz Lizama

18

12/4/16

Continuacion:
float media(float n1,float n2)
{
return (n1+n2)/2;
}
float media(float n1,float n2,float n3)
{
return (n1+n2+n3)/3;
}
double media(double n1,double n2,double n3)
{
return (n1+n2+n3)/3;
}

Mg. Edgar Ruiz Lizama

19

12/4/16

Ejecucin del programa:

Mg. Edgar Ruiz Lizama

C++
12/4/16

MACROS

20

Mg. Edgar Ruiz Lizama

21

12/4/16

MACROS
Una macro es una seccin de cdigo, generalmente una
lnea que realiza una labor o clculo.
FORMATO:

<#define> <identificador de la macro> <cuerpo>


Ejemplos:
#define PI 3.141592
#define CUBO(x) (x)*(x)*(x)
#define VOLESFERA(r) ((4/3)*PI*CUBO(r))
Mg. Edgar Ruiz Lizama

22

12/4/16

CODIGO EN C++ :
#include <iostream>
#define PI 3.141592
#define CUBO(x) (x)*(x)*(x)
#define VOLESFERA(r) ((4/3)*PI*CUBO(r))
using namespace std;
int main()
{
int x,r;
cout<<"Ingrese el lado del cubo: "<<endl;
cin>>x;
cout<<"El volumen del cubo es: "<<CUBO(x)<<endl;
cout<<"Ingrese el radio de la esfera: ";
cin>>r;
cout<<"El volumen de la esfera es: <VOLESFERA(r)<<endl;
return 0;
}

Mg. Edgar Ruiz Lizama

23

12/4/16

Ejecucin del programa:

Mg. Edgar Ruiz Lizama

24

12/4/16

EJEMPLO
La seccin de cdigo
if(a>b)
mayor = a;
else
mayor = b;
Usando una macro se puede escribir como:
#define MAYOR(a,b)((a>b)?(a) : (b))
Mg. Edgar Ruiz Lizama

25

12/4/16

Implementacin
#include<iostream>
// macros
#define MAYOR(x,y) ((x>y)? (x):(y))
#define MENOR(x,y) ((x<y)? (x):(y))
using namespace std;
int main()// macro6.cpp
{
int a,b;
cout<<"ingrese dos enteros diferentes:
cin>>a>>b;

";

cout<<"el mayor es "<<MAYOR(a,b)<<endl;


cout<<"el menor es "<<MENOR(a,b)<<endl;
return 0;
}
Mg. Edgar Ruiz Lizama

26

12/4/16

Ejecucin del Programa

Mg. Edgar Ruiz Lizama

27

12/4/16

Archivos de Inclusin
Un archivo de inclusin es un archivo que fsicamente
existe fuera del archivo fuente. Para ser utilizado debe
ser llamado desde una directiva de inclusin en el
archivo fuente, mediante la directiva include; tal
como lo siguiente:
#include miheader.h.
Los Archivos de inclusin son definidos del siguiente
modo:
Mg. Edgar Ruiz Lizama

28

12/4/16

Formato para definir un


archivo de inclusin
#define NOMBRE_H
#ifndef NOMBRE_H
...
...//cdigo del archivo
...
#endif
donde NOMBRE_H es un identificadorMg. Edgar Ruiz Lizama

29

12/4/16

Ejemplo: El programa siguiente llama


a un archivo de inclusin definido por
el usuario.
Archivo Fuente: pascal.cpp
//archivo: macro22.cpp
#include "pascal.h"
PROGRAM
BEGIN
WRITE<<SALUDO<<WRITELN;
READLN;
SALIR;
END
Mg. Edgar Ruiz Lizama

30

12/4/16

Definicin del archivo de inclusin


//archivo pascal.h
// definiendo mi propia libreria
#ifndef PASCAL_H
#define PASCAL_H
#include<iostream>
using namespace std;
#define
#define
#define
#define
#define
#define
#define
#define

SALUDO "Buenos dias C/C++"


PROGRAM int main()
BEGIN {
END }
WRITE cout
READLN cin.get()
SALIR return 0
WRITELN endl

#endif // fin de la libreria


Mg. Edgar Ruiz Lizama

31

12/4/16

Ejecucin del programa:

Mg. Edgar Ruiz Lizama

32

12/4/16

Referencias

Deitel H.M. y Deitel P.J., (2008). Como Programar en


C++". Mxico, 6ta. ed. Prentice Hall: 927p.
Kernighan Brian W. & Ritchie Dennis M. (1993) El
Lenguaje de Programacin C. 2da. Edicin. PrenticeHall Hispanoamericana, 294 p. Mxico.
Parker Alan, (1993). "Algorithms and Data Structures
in C++ ". USA CRC Press: 257p.
Ruiz Lizama Edgar, (2009). Programacin con C++
Fondo editorial de la UNMSM, 432p.
Ruiz Lizama Edgar, (1999). "Curso de Lenguaje C".
Lima, Facultad de Ingeniera Industrial UNMSM, 234p.
Stroustrup, Bjarne (2002) "El Lenguaje de
Programacin C++ Edicin especial". Addison Wesley
PEARSON EDUCACIN S.A. 1050 p. Espaa.
Mg. Edgar Ruiz Lizama

You might also like