Sie sind auf Seite 1von 22

Programacin I

Unidad 01
Funciones

Profesores
Wilmar Ascue
Vctor Balta
William Bravo
Hugo Caldern
Walter Cueva
Jos Escajadillo
Delicia Lucero
Edson Mendiolaza
Juan Ramrez
Paul Rivas
Richard Rodriguez
Luis Vives

Unidad 01
Funciones
Objetivos

Definicin
Demostracin de uso de funciones
Funcin principal
Funciones comunes
Sintaxis de una funcin en C
Jerarqua de funciones
Valores de retorno
Parmetros de una funcin
Nombres de espacio (namespaces)

Programacin I - 2015-2 - Unidad 1 - Funciones

Definicin
Una funcin es un bloque de cdigo que realiza una tarea determinada.
Ej. Pintar() pinta la pantalla de color negro
Una funcin al realizar una tarea determinada puede ser llamada muchas
veces y siempre realizar la misma tarea.
Ej. Pintar()
Una funcin puede recibir parmetros (valores) que pueden ayudar a la
funcin a realizar una tarea de forma distinta.
Ej. Pintar(Azul), Pintar(Rojo)
Una funcin puede devolver un valor para que as pueda responder algo a la
persona que la llam.
Ej. AreaPintada = Pintar(Azul)
Cuando un conjunto de instrucciones se repiten ms de una vez en un
programa, entonces lo ideal es elaborar una funcin que contenga esas
instrucciones la cual ser utilizada varias veces.

Programacin I - 2015-2 - Unidad 1 - Funciones

Programa sin Funciones y con


Funciones
Se le pide escribir un programa que calcule la suma
dgitos de dos nmeros enteros positivos de 3 dgitos.
Programa
sin Funciones
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{ int c1, d1, u1, c2, d2, u2;
int n1 = 0, n2 = 0, s1=0, s2=0;
cout<<"Ingrese el numero1 y el
numero2:";
cin>>n1 >> n2;
c1 = n1 / 100;
d1 = (n1 / 10) % 10;
u1 = n1 % 10;
s1 = c1 + d1 + u1;
c2 = n2 / 100;
d2 = (n2 / 10) % 10;
u2 = n2 % 10;
s2 = c2 + d2 + u2;
cout<<"La suma de digitos es:
"<<s1+s2;
_getch();
return 0;
}

de los

#include
Programa<iostream>
con Funciones
#include <conio.h>
using namespace std:
int SumaDigitos(int num)
{ int s=0, c, d, u;
c = num / 100;
d = (num / 10) % 10;
u = num % 10;
s = c + d + u;
return s;
}
int main()
{ int n1 = 0, n2 = 0, suma;
cout<<"Ingrese el numero1 y el
numero2:";
cin>>n1 >> n2;
suma = SumaDigitos(n1) +
SumaDigitos(n2);
cout<<"La suma de digitos es: "<<
suma;
_getch();
return 0;

Programacin I - 2015-2 - Unidad 1 - Funciones

Funcin principal (main)


Todos los programas comienzan
siempre por la funcin main.
La funcin main es el bloque
principal y devuelve un tipo de
dato
entero.
Este
valor
representa si el programa
acab con o sin errores. El valor
0 significa que no hubieron
errores y el valor 1 significa que
hubieron errores.
La funcin main puede o no
recibir parmetros. Si recibe
parmetros, argc y argv tienen
significados especiales.

Main sin parmetros


#include <iostream>
int main()
{
// Esta es la primera linea del
programa
return 0;
}
Main con parmetros
#include <iostream>
int main(int argc, char* argv[])
{
// Esta es la primera linea del
programa
return 0;
}

Programacin I - 2015-2 - Unidad 1 - Funciones

Funciones comnes
Funcin

Ejemplo de uso

Descripcin

getchar

char c = getchar();

Espera a que el usuario presione una tecla


y devuelve la tecla presionada. Para usarlo
correctamente la memoria del teclado debe
estar limpia fflush(stdin)

fflush

fflush(stdin); // limpio el teclado

Dependiendo del parmetro que se le pase,


limpiar la memoria asociada un archivo o
dispositivo.

srand y
rand

srand(time(0));
int n1 = rand() % 10 + 1;

Funciones para crear numero aleatorios:


srand inicia el generador de nmeros
aleatorios y rand devuelve un nmero
aleatorio entre 0 y RAND_MAX, si tratamos
el resultado podemos obtener nmeros
entre el rango que nosotros deseemos. Por
ejemplo: n1 toma cualquier valor aleatoria
entre 1 a 10.

sqrt

double raiz = sqrt((double)4.0);

Devuelve la raz cuadrada del nmero.

Programacin I - 2015-2 - Unidad 1 - Funciones

Sintaxis de una funcin en C


<tipo de dato retorno> <nombre funcin> ( <parmetros> )
{ [instrucciones;]
return valorDeRetorno;
}
<tipo de dato
retorno>

int, float, double, long, char, bool, etc.


void

<nombre funcin>

El nombre que se le desee dar a la funcin siempre y


cuando respete las reglas establecidas para nombrar
variables.

<parmetros>

0, 1 o ms parmetros. Cada parmetro debe


especificar el tipo de dato y el nombre. Los parmetros
se deben separar con cmas.

return

Devuelve el valor esperado. Si la funcin tiene como


tipo de dato retorno un int entonces el valorDeRetorno
deber ser un int.
En el caso de que el tipo de dato retorno sea void
bastar con poner return;

Programacin I - 2015-2 - Unidad 1 - Funciones

Ejemplos de funciones
void
ImprimeAlgo()
{

int DameSuma(int a,
void ImprimeNumero(int
int b)
num)
{
{
int suma = a + b;
coutEl numero es: <<
cout<<Algo;
return suma;
num;
return;
}
return;
}
}
double
Promedio(double a, double
void Suma_e_Imprime(int
a, int b)
b, int c)
{
{
int suma = a + b;
double suma = a + b +
cout<<La suma es: << suma;
(double)c;
return;
double prom = suma / 3.0;
}
return prom;
void Combina(int a, int b)
}
bool
Aprobaste(double
{
nota)
int suma = DameSuma(a, b);
{
double prom = Promedio(suma, 15.0, 10);
if (Aprobaste(prom))
if (nota >= 12.5)
cout<<Felicitaciones;
return true;
else
else
cout<<Lo siento;
}
return false;
}

Programacin I - 2015-2 - Unidad 1 - Funciones

Jerarqua de funciones
La funcin main, es la nica que se ejecuta
de forma automtica.
El resto de funciones se ejecutan a medida
que se les vaya llamando.
As como en la funcin main se puede llamar
a otras funciones como el cout, cin, getch,
etc. En las funciones que nosotros
implementemos tambin se puede invocar a
otras funciones.

Programacin I - 2015-2 - Unidad 1 - Funciones

#include <iostream>
#include <conio.h>
using namespace std;

Las
funciones
van antes de la
funcin main

La funcin main
es la que se
ejecuta al inicio
del programa.

int elevaAlCuadrado(int NumeroAElevar)


{
return NumeroAElevar * NumeroAElevar;
}
void imprimeLinea()
{
cout<<--------------------------------\n;
}
int main()
{
int N, cuadrado;
cout<<Ingrese el valor de N:;
cin>>N;
cuadrado = elevaAlCuadrado (N);
cout<<El cuadrado de N es << cuadrado;
imprimeLinea();
imprimeLinea();
cuadrado = elevaAlCuadrado(cuadrado);
cout<<El cuadrado de N2 es << cuadrado;
_getch(); // espero un caracter, ejemplo:enter
}

return 0;

Se utilizan
Las funciones
creadas

Programacin I - 2015-2 - Unidad 1 - Funciones

#include <iostream>
#include <conio.h>
using namespace std;

Tambin se pueden declarar


las
cabeceras
de
las
funciones antes del main

int elevaAlCuadrado(int NumeroAElevar);


void imprimeLinea();
void main()
{
int N, cuadrado;
cout<<Ingrese el valor de N:;
cin>>N;
cuadrado = elevaAlCuadrado (N);
cout<<El cuadrado de N es << cuadrado;
imprimeLinea();
imprimeLinea();

Y la implementacin de las
funciones despus del main

cuadrado = elevaAlCuadrado(cuadrado);
cout<<El cuadrado de N es << cuadrado;
_getch();

int elevaAlCuadrado(int NumeroAElevar)


{
return NumeroAElevar * NumeroAElevar;
}
void imprimeLinea()
{
cout<<--------------------------------\n;
}

Programacin I - 2015-2 - Unidad 1 - Funciones

Valores de retorno
Una funcin puede devolver cualquier tipo de dato
conocido pero hay que tener en cuenta lo siguiente:
Una funcin que devuelve un tipo de dato void no
necesita tener un comando return.
Una funcin que no devuelve void, siempre debe tener un
comando return que devuelva el tipo de dato especificado.
El return marca el fin de ejecucin de la funcin. Una
vez que se ejecuta el comando return, la funcin acaba sin
importar que lneas de cdigo faltan ejecutar, es por ello
que por lo general se pone al final de la funcin.

Programacin I - 2015-2 - Unidad 1 - Funciones

Parmetros de una funcin


n1

n2

20

30

int main()
{
int n1 =
int n2 =

resulta
do
50

20;
30;

int resultado= DameSuma(n1,


n2);
cout<<La suma es <<
resultado;
_getch();
return 0;

Se crean
copias de n1 y
n2 en a y b

20

30

int DameSuma(int a, int


b)
{
int suma = a + b;
return suma;
}
sum
a
50

}
NOTA: Las variables en el main y los parmetros en DameSuma pueden llamarse
igual, pero son diferentes.

Programacin I - 2015-2 - Unidad 1 - Funciones

Consideraciones
No pueden existir 2 funciones con el mismo
nombre y mismos parmetros.
Las funciones o sus cabeceras se deben
declarar antes de la funcin main.
Si la funcin A utiliza a la funcin B, la funcin
B debe estar declarada antes que la funcin A.
No puede declarar variables con el mismo
nombre que las funciones.

Ejemplos

Ejemplo 1
Realizar un programa para calcular las races reales de una ecuacin
cuadrtica:

ax 2 bx c 0

Utilice una funcin para calcular la raz.


#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
float raiz(float a, float b, float d)
{
float res = (-b + d) / (2 * a);
return res;
}

int main()
{

Ejemplo 2

Realice un programa que permita leer 2 valores enteros


y devuelva la suma y resta de estos nmeros.
Utilice una funcin para la suma y una para la resta.
#include <iostream>
#include <conio.h>
using namespace std;
int sumar(int a, int b)
{
return a + b;
}
int restar(int a, int b)
{
int res = a - b;
return res;
}

int main()

Namespaces

Programacin I - 2015-2 - Unidad 1 - Funciones

Nombres de espacio
(namespaces)
Los namespaces se utilizan para agrupar funciones.
No son una caracterstica de C, sino de C++.
Al agrupar funciones podemos tener dos o ms funciones con el mismo
nombre siempre y cuando estn en diferentes namespaces.
Para agrupar a las funciones solo basta colocar a todas las funciones
dentro de un bloque como el que sigue:
namespace <nombre>
{
}

Donde <nombre> es el nombre de la agrupacin de funciones.


Para acceder a las funciones dentro del namespace basta con colocar
<nombre>::<nombre funcion>()

Programacin I - 2015-2 - Unidad 1 - Funciones

Ejemplo de namespace
#include <iostream>
#include <conio.h>
using namespace std;
void ImprimeLinea()
{
cout<<Linea\n";
}
namespace guiones
{
void ImprimeLinea()
{
cout<<"------------------------\n";
}
}

Funciones matemticas

Programacin I - 2015-2 - Unidad 1 - Funciones

Biblioteca
math.h
Contiene funciones para clculos matemticos. Algunas de las
ms tiles son:

Prototipo

fabs(double);
sqrt(double);
pow(double,
double);
exp(double);

Tipo de
retorno
double
double
double
double

log(double);
log10 (double);
ceil (double);

double
double
double

floor (double);

double

acos(double);
asin(double);
atan(double);
cos(double);
sin(double);
tan(double);

double
double
double
double
double
double

Descripcin
Valor absoluto.
Raz cuadrada.
Devuelve el primer argumento elevado a la
potencia del segundo argumento.
Devuelve e (base de los logaritmos naturales)
elevado a la potencia de su argumento).
Logaritmo natural (ln).
Logaritmo base 10.
Devuelve el entero ms pequeo, mayor o igual
que su argumento.
Devuelve el entero ms grande, menor o igual
que su argumento.
Arco coseno.
Arco seno.
Arco tangente.
Coseno.
Seno.
Tangente.

Das könnte Ihnen auch gefallen