1
07/04/2023
Mg. Edgar Ruiz Lizama
07/04/20232
FUNCIONES
Mg. Edgar Ruiz Lizama
Todo programa en C es una colección de funciones donde main es la función principal.
Las funciones pueden clasificarse como:1) Funciones con valor devuelto: Function2) Funciones que no devuelven valor : Procedure
07/04/20233
Mg. Edgar Ruiz Lizama
1. Funciones con valor devuelto.
Son aquellas funciones que devuelven un valor o resultado a la sección donde se hizo la llamada.
FORMATO:
Tipo_dato Identificador lista_ argumentos de retorno{ . . . . . . .// código de la función return <valor devuelto>}
07/04/20234
Ejemplo 1:
Mg. Edgar Ruiz Lizama
#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);}
07/04/20235
Mg. Edgar Ruiz Lizama
2. Funciones que no devuelven valor
Las funciones que no devuelven valor (o procedimientos) se especifican como funciones de tipo void.
FORMATO:
void identificador lista_ argumentos {
... . . . // código de la función o procedimiento
... }
07/04/20236
Ejemplo 2:
Mg. Edgar Ruiz Lizama
##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;}
07/04/20237
SOBRECARGA DE FUNCIONES
Mg. Edgar Ruiz Lizama
Escribir un programa que solicite el radio y calcule el área, longitud, y el volumen según las siguientes formulas. Resuelva utilizando funciones.
3
2
34
2
rEsferadeVolumen
rnciaCircunferedeLongitud
rCírculodelArea
Ejemplo 3:
07/04/20238
Mg. Edgar Ruiz Lizama
Solución//Ejemplo 3#include <iostream>const float PI=3.141592;//declaracion de funciones prototipofloat 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;}
07/04/20239
Mg. Edgar Ruiz Lizama
Continuación
//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);}
07/04/2023
Mg. Edgar Ruiz Lizama
10
Ejecución del Programa
07/04/202311
UTILIZANDO LA SOBRECARGA DEFUNCIONES
Mg. Edgar Ruiz Lizama
07/04/202312
Mg. Edgar Ruiz Lizama
Segunda solución, utilizando sobrecarga de funciones//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;
07/04/202313
Mg. Edgar Ruiz Lizama
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;
}
Continuación
07/04/202314
Mg. Edgar Ruiz Lizama
double formulas(double r)
{ //circunferencia
return 2*PI*r;
}
long double formulas(long double r)
{ //esfera
return (4/3)*PI*r*r*r;
}
Continuación
07/04/202315
Ejemplo5: Escribir un programa que halle la media de 2 y 3 números. Resuelva sin sobrecarga
#include <iostream>//hallando la media//Declaracion de funciones prototipofloat 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
07/04/2023
Mg. Edgar Ruiz Lizama
16
Ejecución del programa
07/04/202317Ejemplo: Escribir un programa que halle la media de dos y tres números, utilizando el concepto de sobrecarga
#include <iostream>// Declaracion de funciones prototipofloat 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;}
//continuaMg. Edgar Ruiz Lizama
07/04/202318
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
07/04/2023
Mg. Edgar Ruiz Lizama
19
Ejecución del programa:
07/04/2023
Mg. Edgar Ruiz Lizama20
07/04/202321
MACROS
Mg. Edgar Ruiz Lizama
Una macro es una sección de código, generalmente una línea que realiza una labor o cálculo.
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))
07/04/202322
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
07/04/202323
Ejecución del programa:
Mg. Edgar Ruiz Lizama
07/04/202324
EJEMPLO
Mg. Edgar Ruiz Lizama
La sección de código
if(a>b) mayor = a; else mayor = b; Usando una macro se puede escribir como:
#define MAYOR(a,b)((a>b)?(a) : (b))
07/04/202325
Mg. Edgar Ruiz Lizama
Implementación
#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;}
07/04/202326
Mg. Edgar Ruiz Lizama
Ejecución del Programa
07/04/202327
Archivos de Inclusión
Mg. Edgar Ruiz Lizama
Un archivo de inclusión es un archivo que físicamente existe fuera del archivo fuente. Para ser utilizado debe ser llamado desde una directiva de inclusión en el archivo fuente, mediante la directiva include; tal como lo siguiente:
#include “miheader.h”.
Los Archivos de inclusión son definidos del siguiente modo:
07/04/202328
Formato para definir un archivo de inclusión
Mg. Edgar Ruiz Lizama
#define NOMBRE_H
#ifndef NOMBRE_H
...
...//código del archivo
...
#endif
donde NOMBRE_H es un identificador
07/04/202329
Ejemplo: El programa siguiente llama a un archivo de inclusión definido por el usuario.
Archivo Fuente: pascal.cpp
Mg. Edgar Ruiz Lizama
//archivo: macro22.cpp#include "pascal.h"
PROGRAMBEGIN
WRITE<<SALUDO<<WRITELN;READLN;
SALIR;END
07/04/202330
Definición del archivo de inclusión//archivo pascal.h// definiendo mi propia libreria#ifndef PASCAL_H#define PASCAL_H
#include<iostream>using namespace std;
#define SALUDO "Buenos dias C/C++"#define PROGRAM int main()#define BEGIN {#define END }#define WRITE cout#define READLN cin.get()#define SALIR return 0#define WRITELN endl
#endif // fin de la libreriaMg. Edgar Ruiz Lizama
07/04/202331
Ejecución del programa:
Mg. Edgar Ruiz Lizama
07/04/202332
Referencias Deitel H.M. y Deitel P.J., (2008). “Como Programar en
C++". México, 6ta. ed. Prentice Hall: 927p. Kernighan Brian W. & Ritchie Dennis M. (1993) “El
Lenguaje de Programación C”. 2da. Edición. Prentice-Hall Hispanoamericana, 294 p. México.
Parker Alan, (1993). "Algorithms and Data Structures in C++ ". USA CRC Press: 257p.
Ruiz Lizama Edgar, (2009). “Programación con C++” Fondo editorial de la UNMSM, 432p.
Ruiz Lizama Edgar, (1999). "Curso de Lenguaje C". Lima, Facultad de Ingeniería Industrial UNMSM, 234p.
Stroustrup, Bjarne (2002) "El Lenguaje de Programación C++ Edición especial". Addison Wesley – PEARSON EDUCACIÓN S.A. 1050 p. España.
Mg. Edgar Ruiz Lizama