Blog, para facilitar del Lenguaje de Programación C
Antes que nada, trataremos las funciones predefinidas en C. Ya que C, posee ciertas funciones que nos ayudan hacer nuestros programas más fáciles y utilizar menos código.
El lenguaje c, cuenta con una serie de funciones de bibliotecas que realizan operaciones y cálculos de uso frecuente.
Para acceder a una función, se realiza mediante el nombre seguido de los argumentos que le servirán a la función a realizar la tarea específica.
Nombre(arg1, arg2,...argn);
*Funciones Matemáticas
Para acceder a ellas, se debe colocar la directiva #include <math.h> en el encabezado del programa.
| Función (Sintaxis) | Tipo de Dato | Propósito |
| acos(d) | double | Devuelve el arco coseno de d |
| asin(d) | double | Devuelve el arco seno de d |
| atan(d) | double | Devuelve el arco tangente de d |
| atan(d1, d2) | double | Devuelve el arco tangente de d1/d2 |
| ceil(d) | double | Devuelve el valor redondeado por exceso, al siguiente entero mayor |
| cos(d) | double | Devuelve el coseno de d |
| cosh(d) | double | Devuelve coseno hiperbólico de d |
| exp(d) | double | Eleva a la potencia d |
| fabs(d) | double | Devuelve el valor absoluto de d |
| floor(d) | double | Devuelve el valor redondeado por defecto al entero menor más cercano |
| log(d) | double | Devuelve el logaritmo natural de d |
| log10(d) | double | Devuelve el lo. (base10) de d |
| pow(d1, d2) | double | Devuelve d1 elevado a la potencia d2 |
| sin(d) | Double | Devuelve el seno de d |
| sinh(d) | double | Seno hiperbólico de d |
| sqrt(d) | double | Raíz cuadrada de d |
| Tan(d) | double | Devuelve la tangente de d |
| tanh(d) | double | Devuelve la tangente hiperbólica de d |
Las siguientes funciones se encuentran en las librerías: stdid.h ó stdlib.h:
| Función (sintaxis) | Tipo | Propósito |
| abs(i) | int | Devuelve el valor absoluto de i |
| ran() | int | Devuelve un entero aleatorio |
| srand(u) | void | Inicializa el generador de números aleatorios |
| div(d1/d2) | Double/ int | Devuelve el cociente y el resto de la división |
| atuf(s) | Double | Convierte la cadena a una cantidad de doble precisión |
| atoi(s) | int | Convierte cadenas a un entero |
| atol(s) | long | Convierte cadenas a un entero largo |
Serie de ejercicios, en los cuales se hará uso de la funciones predefinidas en c, así como la modularización, es decir; el uso de funciones definidas por el usuario.
Ejemplo 5.5
Se desea conocer el resultado de las siguientes operaciones:
Las variables a y b, son de tipo real, y pueden ser positivas o negativas.
#include <stdio.h>
#include <conio.h>
#include <math.h>
double raiz(float a, float b);
double valor_absoluto(float a, float b);
double exponente (float a, float b);
main()
{
float a, b;
clrscr();
printf("\t\tBIENVENIDO\n\n");
printf("Ingrese el valor de a, por favor:\n");
scanf("%f", &a);
printf("Ahora el valor de b:\n");
scanf("%f", &b);
printf("El resultado de la ra¡z cuadrada de %.2f + %.2f es %.2f\n\n", a,b,raiz(a,b));
printf("|%.2f-%.2f| es igual a %.2f\n\n", a,b,valor_absoluto(a,b));
printf("%.2f^%.2f es igual a %f\n\n", a,b,exponente(a,b));
getch();
return 0;
}
double raiz(float a, float b)
{
float x;
double y;
x=a+b;
y=sqrt(x);
return (y);
}
double valor_absoluto(float a, float b)
{
float x;
double y;
x=a-b;
y=fabs(x);
return (y);
}
double exponente (float a, float b)
{
double x;
x=pow(a,b);
return (x);
}
4. Funciones Combinadas
A continuación veremos un ejemplo de un programa en el cual utilizamos dos funciones de diferente tipo de dato.
Ejemplo 5.5
El valor del número e se puede aproximar sumando n términos de la serie: e = 1 + 1/1! + 1/2! + 1/3! + ... Escribir un programa que solicite el número de términos de la serie a sumar e informe del valor aproximado de e. Téngase en cuenta que el termino i de la anterior serie se obtiene dividiendo por (i-1). (La exclamación es el factorial).
#include <stdio.h> #include <conio.h> #include <stdlib.h> void calculodatos(int numero);
double factorial(int dato);
void main(void)
{ int numero; char respuesta;
printf("\n\n\nINICIO DEL PROGRAMA\n\n\n"); printf("\n\nEl programa te calcula el valor del numero e."); do { do { printf("\n\nIntroduzca un numero de terminos de la serie: "); scanf("%d",&numero); } while (numero<0); calculodatos(numero); printf("\n\n¨Desea introducir mas datos\?\n\n"); respuesta=getch(); system("cls"); } while (respuesta=='s' || respuesta=='S'); printf("\n\n\n\t\tÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ"); printf("\n\t\tÛÛÛ FIN DEL PROGRAMA ÛÛÛ"); printf("\n\t\tÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ\n\n\n"); } void calculodatos(int numero)
{ register int i; register double e=1.; for (i=1;i<=numero;i++) { e=e+1./factorial(i);
} printf("\n\nEl valor de e para %d terminos es %f.",numero,e); }
double factorial(int dato)
{ register int i; register double resultado=1; for (i=dato;i>0;i--) resultado=resultado*i;
return resultado; }