Está en la página 1de 13

Ejercicios de Funciones

“En C”

Semestre de Otoño 2006

Claudio Gutiérrez-Soto
Destrezas Esperadas
 Solucionar un problema utilizando
funciones, sin preocuparse de su
implementación.
Ejercicios 1
 Utilizando funciones resolver:

 (ii/i!)
i=1
Solución 1
#include<stdio.h>
#include<conio.h>
int potencia(int base, int exp);
int factorial(int valor); Note que se utiliza (float)pot , el
void main( ) cual se conoce con el nombre de
{ cast. Los cast se utilizan para
int i,fact,pot,N; cambiar el tipo de dato de una
float suma=0; variable , en este caso específico
clrscr( ); cambiamos la variable pot ,de tipo
de entero por tipo flotante.
printf("Ingrese N \n");
scanf("%d",&N);
if(N>0)
{
for(i=1;i <=N ; i++)
{
pot=potencia(i,i);
fact=factorial(i);
suma=suma+(((float)pot) / ((float)fact));
}
printf("El resultado es : %f \n",suma);
}
else printf("Ha ingresado un valor no valido \n");
}
Ejercicio 2
 Utilizando funciones resolver:

N i

  ( (i+j)i / (i+1)! )
i=1 j=1
Solución 2
#include<stdio.h>
#include<conio.h>
float potencia(int a,int b);
float factorial(int valor);
void main()
{
int i,j,N;
float suma=0.0;
clrscr( );
printf("Ingrese N \n");
scanf("%d",&N);
if(N>0)
{
for(i=1;i<=N ;i++)
for(j=1;j<=i;j++)
suma=suma+(potencia(i+j,i)/factorial(i+1));

printf("El resultado de la suma es %f \n"suma);


}
else
printf("Ingreso un valor no valido \n");
}
Ejercicio 3
 Implemente las funciones potencia y
factorial, considere las funciones de tipo
float
Solución 3
float potencia(int a,int b) float factorial(int valor)
{
{
int i,pot=1;
if(b>=0) int i;
{ float fact=1;
for(i=1;i<=b ; i++) for(i=1;i<=valor;i++)
pot=pot*a; fact=fact*i;
pot=(float)pot;
}
else return(fact);
{ }
for(i=1;i<=(b*-1) ; i++)
pot=pot*a;
pot=1/float(pot);
}
return(pot);
}
Ejercicio 4
 Crear una función que calcule el largo de
una cadena.
Solución 4
int largo_cadena(char cadena[ ])
{
int largo;

for(largo=0 ; cadena[largo]!= '\0' ;largo++)


return(largo);
}

Note que las cadenas


recibidas como parámetro no
necesitan ser dimensionadas
Ejercicio 5
 Crear una función que verifique si dos
cadenas son iguales. Si las cadenas son
iguales entonces retorna 1, si las cadenas
son distintas entonces retorna 0.
Solución 5
int CompararCadena(char cadena1[ ],char cadena2[ ])
{
int i,largo1,largo2,iguales=1;
largo1=largo_cadena(cadena1);
largo2=largo_cadena (cadena2);
if(largo1==largo2)
{
for(i=0 ; i<largo2 && iguales ;i++)
if(cadena1[i]!=cadena2[i])
iguales=0;
else continue;
return(iguales);
}
else
return(0);
}
Note que las cadenas
recibidas como parámetro no
necesitan ser dimensionadas
Conclusiones
•Las cadenas recibidas como
parámetro no necesitan especificar un
valor.
•Los argumentos son tratados como
variables, y estas sólo existen en
dicha función. Por lo que pueden
existir variables en el main con el
mismo en las funciones.

También podría gustarte