FUNCIONES
//Este Programa permite ingresar tres numeros y muestra la suma de esos
//numeros empleando la funcion Sumar. Los parametros se envian como valor
#include<stdio.h>
//Primero Creamos la Funci¢n
//La Funcion se llama Sumar
static int sumar(int b, int a,int c)
{
int s;
//Calcula la suma de los tres numeros
s=a+b+c;
//Retorna la suma de los tres n£meros al programa principal
return(s);
}
//Ahora realizamos el Programa Principal
void main()
{
int n1,n2,n3,r;
clrscr();
//Ingresa los tres numeros
printf("Ingrese el 1er. n£mero : ");scanf("%d",&n1);
printf("Ingrese el 2do. n£mero : ");scanf("%d",&n2);
printf("Ingrese el 3er. n£mero : ");scanf("%d",&n3);
//Llama a la funci¢n y le envia los tres numeros ingresados
//Los parametros se envian por Valor
r=sumar(n1,n2,n3);
//Imprime el resultado
printf("\nLa suma de %d + %d + %d = %d",n1,n2,n3,r);
getch();
}
// PARAMETROS POR VALOR
// Similar al anterior, la diferencia esta en lo siguiente: Dentro de la
//funcion Sumar se asignan cero(0) a los tres parametros, por lo tanto el
//resultado de la suma es cero, pero al regresar al programa principal e
//imprimir los resultados, las variables permanecen con su valor, aunque se
//indica que la suma es 0(cero)
#include<stdio.h>
//Creaci¢n de la Funci¢n
static int sumar(int a, int b,int c)
{
int s;
//Cambia el valor de los par metros asignandoles 0.
a=0;
b=0;
c=0;
//Calcula la suma de los tres numeros
s=a+b+c;
//Retorna la suma de los tres n£meros al programa principal
return(s);
}
void main()
{
int n1,n2,n3,r;
clrscr();
//Ingresa los tres numeros
printf("Ingrese el 1er. n£mero : ");scanf("%d",&n1);
printf("Ingrese el 2do. n£mero : ");scanf("%d",&n2);
printf("Ingrese el 3er. n£mero : ");scanf("%d",&n3);
//Llama a la funci¢n y le envia los tres numeros ingresados
//Los par metros se envian por Valor
r=sumar(n1,n2,n3);
1
//Imprime el contenido de las variables
printf("\nLa suma de %d + %d + %d = %d ",n1,n2,n3,r);
getch();
}
// PARAMETROS POR REFERENCIA
//Similar al anterior, Dentro de la //funcion Sumar se asignan cero(0) a los
//tres parametros, por lo tanto el resultado de la suma tambien es cero, al
//regresar al programa principal las variable han cambiado tambien a cero(0).
//Porque los parametros se envian por referencia
#include<stdio.h>
//Creaci¢n de la Funci¢n
//Las variables que reciben los parametros de declaran como punteros
static int sumar(int *a, int *b,int *c)
{
int s;
//Cambia el valor de los par metros asignandoles 0 utilizando su puntero
*a=0;
*b=0;
*c=0;
//Calcula la suma de los tres numeros utilizando su puntero (*)
s=*a+*b+*c;
//Retorna la suma de los tres n£meros al programa principal
return(s);
}
void main()
{
int n1,n2,n3,r;
//Ingresa los tres numeros
printf("Ingrese el 1er. n£mero : ");scanf("%d",&n1);
printf("Ingrese el 2do. n£mero : ");scanf("%d",&n2);
printf("Ingrese el 3er. n£mero : ");scanf("%d",&n3);
//Llama a la funci¢n y le envia los tres numeros ingresados
//Los par metros se envian por Referencia
r=sumar(&n1,&n2,&n3);
//Imprime el contenido de las variables
printf("\nLa suma de %d + %d + %d = %d ",n1,n2,n3,r);
getchar();
}
//Permite ingresar un numero y mostrar el doble de ese numero, se utiliza una
funcion llamada doble que recibe como parametro el numero ingresado y
devuelve el doble del numero ingresado
#include<stdio.h>
//Definici¢n de la Funci¢n
static int doble(int n)
{
int d;
//Calcula el doble del n£mero que se envia a la funci¢n
d=n + n;
//Retorna el doble del numero almacenado en la variable d
return(d);
}
void main()
{
int numero,r;
//Ingrese el n£mero
printf("Ingrese un n£mero : ");scanf("%d",&numero);
/* Llama a la funci¢n doble
le envia como par metro el n£mero ingresado
y recibe el valor que retorna en la variable r */
r=doble(numero);
//Imprime el resultado
printf("\nEl Doble de %d es %d ",numero,r);
2
getchar();
}
//Similar al anterior, se diferencian porque aquí la funcion Doble se ejecuta
//dentro de la instrucción Printf y porque la funcion no utiliza la variable
//d
#include<stdio.h>
//Definici¢n de la Funci¢n
static int doble(int n)
{
//Retorna el doble del numero
return(n + n);
}
//Prototipo de la funci¢n
int doble(int);
void main()
{
int numero;
printf("Ingrese un n£mero : ");scanf("%d",&numero);
//Llama a la funci¢n doble dentro de la instrucci¢n printf
printf("\nEl Doble de %d es %d ",numero,doble(numero));
getchar();
}
//Permite ingresar dos numeros y mostrar la suma de esos dos numeros
#include<stdio.h>
//Definimos la funci¢n
static int sumar(int b, int a)
{
//Retorna el doble del numero
return(a + b);
}
void main()
{
int n1,n2,r;
//Ingresa los dos numeros
printf("Ingrese el 1er. n£mero : ");scanf("%d",&n1);
printf("Ingrese el 2do. n£mero : ");scanf("%d",&n2);
//Llama a la funci¢n y le envia los dos numeros ingresados
r=sumar(n1,n2);
//Imprime el resultado
printf("\nLa suma de %d + %d = %d",n1,n2,r);
getch();
}
//Calcula e imprime el factorial de un numero que se ingresa por teclado
#include<stdio.h>
//Declaramos la funcion
int factorial(int num)
{
int f,i;
//Inicializa el factorial con 1
f=1;
//Calcula el factorial
for (i=1;i<=num;i++)
f=f*i;
//Devuelve el Factorial
return(f);
}
void main()
{
int numero, fact;
printf("Ingrese un n£mero : ");scanf("%d",&numero);
//Llama a la funci¢n factorial
fact=factorial(numero);
3
//Muestra el factorial
printf("\n\nEl Factorial de %d es %d",numero,fact);
getchar();
}
//Permite ingresar el nombre y dos notas de un alumno, y muestra su promedio,
//un mensaje mostrando si el alumno esta aprobado o desaprobado y la cualidad
//del alumno
//Para cada uno de los datos se muestra una funcion
#include<stdio.h>
//Prototipo de las funciones
float promedio(float a, float b);
char *observacion(float pro);
char *cualidad(float pro);
//Programa Principal
void main()
{
char nomb[35],*obs,*cua;
float n1,n2,pro;
//Ingresa el nombre y las notas del alumno
printf("\t INGRESO DE LOS DATOS\n\n");
printf("Nombre del Alumno : ");gets(nomb);
printf("Nota N§ 01 : ");scanf("%f",&n1);
printf("Nota N§ 02 : ");scanf("%f",&n2);
//Imprime los resultados llamado a las funciones
pro=promedio(n1,n2);
obs=observacion(pro);
cua=cualidad(pro);
printf("\n\n\t RESULTADOS \n");
printf("\nPromedio : %4.2f",pro);
printf("\nObservaci¢n : %s",obs);
printf("\nCualidad : %s",cua);
getchar();
}
//Declarando las funciones
//Funcion Promedio
float promedio(float a, float b)
{
float pro;
pro=(a+b)/2;
return(pro);
}
//Funcion Observacion
char *observacion(float pro)
{
if (pro>=10.5)
return("Aprobado");
else
return("Desaprobado");
}
//Funcion Cualidad
char *cualidad(float pro)
{
if ((pro>=0) && (pro<=4.4))
return("P‚simo");
else if ((pro>=4.5) && (pro<=10.4))
return("Malo");
else if ((pro>=10.5) && (pro<=13.4))
return("Regular");
else if ((pro>=13.5) && (pro<=16.4))
return("Bueno");
4
else if ((pro>=16.4) && (pro<=20))
return("Excelente");
}
//Similar al anterior, aca se llaman a las funciones al momento de imprimir
//los datos
#include<stdio.h>
//Prototipo de las funciones
float promedio(float a, float b);
char *observacion(float pro);
char *cualidad(float pro);
void main()
{
char nomb[35];
float n1,n2;
clrscr();
//Ingresa el nombre y las notas del alumno
printf("\t INGRESO DE LOS DATOS\n\n");
printf("Nombre del Alumno : ");gets(nomb);
printf("Nota N§ 01 : ");scanf("%f",&n1);
printf("Nota N§ 02 : ");scanf("%f",&n2);
//Imprime los resultados llamado a las funciones
printf("\n\n\t RESULTADOS \n");
printf("\nPromedio : %4.2f",promedio(n1,n2));
printf("\nObservaci¢n : %s",observacion(promedio(n1,n2)));
printf("\nCualidad : %s",cualidad(promedio(n1,n2)));
getch();
}
//Declarando las funciones
//Funcion Promedio
float promedio(float a, float b)
{
float pro;
pro=(a+b)/2;
return(pro);
}
//Funcion Observacion
char *observacion(float pro)
{
if (pro>=10.5)
return("Aprobado");
else
return("Desaprobado");
}
//Funcion Cualidad
char *cualidad(float pro)
{
if ((pro>=0) && (pro<=4.4))
return("Pesimo");
else if ((pro>=4.5) && (pro<=10.4))
return("Malo");
else if ((pro>=10.5) && (pro<=13.4))
return("Regular");
else if ((pro>=13.5) && (pro<=16.4))
return("Bueno");
else if ((pro>=16.4) && (pro<=20))
return("Excelente");
}