Unidad IV: Funciones
Librerías estándar
Todos los compiladores C y C++ disponen de ciertas librerías de funciones estándar que facilitan el acceso a la pantalla, al teclado, a los discos, la manipulación de cadenas, y muchas otras cosas, de uso corriente.
Ficheros Funcionalidad/funciones
Funciones mas usadas de librerías
Función "sqrt(x)"
Devuelve la raiz cuadrada de x. Requiere la librería "math.h".
Sintaxis: sqrt(x);
Función "exp(x)"
Devuelve el exponencial de x. Requiere la librería "math.h".
Sintaxis: exp(x);
Función "pow(x,y)"
Devuelve la potencia de x elevada a y. Requiere la librería "math.h".
Sintaxis: pow(x,y);
Función "floor(x)"
Devuelve el Nro x redondeado al mas grande. Requiere la librería "math.h".
Sintaxis: floor(x);
Función "max()"
Devuelve el mayor de dos valores. Requiere la librería "stdio.h".
Sintaxis:
Función "min()"
Devuelve el menor de dos valores. Requiere la librería "stdio.h".
Sintaxis:
Función "abs()"
Devuelve el valor absoluto de un entero. Requiere la librería "stdio.h".
Sintaxis: int abs(int x);
Función "rand()"
Generador de números aleatorios. Requiere la librería "stdlib.h".
La función "rand" devuelve un número aleatorio entre 0 y RAND_MAX. La constante RAND_MAX está definida en stdlib.h.
Valor de retorno: "rand" devuelve un número entre 0 y RAND_MAX.
Sintaxis: int rand(void);
Ejemplo: i = 1 + rand () % 6 /* Crea un numero entre 1 y 6 */
Función "srand()"
Inicializa el generador de números aleatorios. Requiere la librería "stdlib.h".
La función "srand" sirve para cambiar el origen del generador de números aleatorios.
Valor de retorno: "srand" no devuelve ningún valor.
Sintaxis: void srand(unsigned semilla);
Ejemplo: srand (time (0)) /* Inicializa */
Tiro de dados, calcula la suma y despliega los resultados
# include
# include
# include
int main ( void )
{
int dado1; /* primer dado */
int dado2; /* segundo dado */
int sumaTemp; /* suma de los dados */
srand (time (0)); /* Inicializa el generador de números aleatorios */
dado1 = 1 + ( rand() % 6 ); /* toma el aleatorio para el dado1 */
dado2 = 1 + ( rand() % 6 ); /* toma el aleatorio para el dado2 */
sumaTemp = dado1 + dado2; /* suma el dado1 y el dado2 */
printf("El jugador tiro %d + %d = %d\n", dado1, dado2, sumaTemp); /* despliega los resultados */
return sumaTemp; /* devuelve la suma de los dados */
}
Verificación de las funciones matemáticas de la biblioteca
#include
#include
int main() /* la función main inicia la ejecución del programa */
{
printf( "sqrt(%.1f) = %.1f\n", 900.0, sqrt( 900.0 ) ); /* calcula y despliega la raiz cuadrada */
printf( "sqrt(%.1f) = %.1f\n", 9.0, sqrt( 9.0 ) );
printf( "exp(%.1f) = %f\n", 1.0, exp( 1.0 ) ); /* calcula y despliega la función exponencial e a la x */
printf( "exp(%.1f) = %f\n", 2.0, exp( 2.0 ) );
printf( "log10(%.1f) = %.1f\n", 1.0, log10( 1.0 ) ); /* calcula y despliega el logaritmo (base 10) */
printf( "log10(%.1f) = %.1f\n", 10.0, log10( 10.0 ) );
printf( "log10(%.1f) = %.1f\n", 100.0, log10( 100.0 ) );
printf( "fabs(%.1f) = %.1f\n", 13.5, fabs( 13.5 ) ); /* calcula y despliega el valor absoluto */
printf( "fabs(%.1f) = %.1f\n", 0.0, fabs( 0.0 ) );
printf( "fabs(%.1f) = %.1f\n", -13.5, fabs( -13.5 ) );
printf( "ceil(%.1f) = %.1f\n", 9.2, ceil( 9.2 ) ); /* calcula y despliega ceil( x ) */
printf( "ceil(%.1f) = %.1f\n", -9.8, ceil( -9.8 ) );
printf( "floor(%.1f) = %.1f\n", 9.2, floor( 9.2 ) ); /* calcula y despliega floor( x ) */
printf( "floor(%.1f) = %.1f\n", -9.8, floor( -9.8 ) );
printf( "pow(%.1f, %.1f) = %.1f\n", 2.0, 7.0, pow( 2.0, 7.0 ) ); /* calcula y despliega pow( x, y ) */
printf( "pow(%.1f, %.1f) = %.1f\n", 9.0, 0.5, pow( 9.0, 0.5 ) );
printf( "sin(%.1f) = %.1f\n", 0.0, sin( 0.0 ) ); /* calcula y despliega sin( x ) */
printf( "cos(%.1f) = %.1f\n", 0.0, cos( 0.0 ) ); /* calcula y despliega cos( x ) */
printf( "tan(%.1f) = %.1f\n", 0.0, tan( 0.0 ) ); /* calcula y despliega tan( x ) */
return 0; /* indica terminación exitosa */
}
Escala y cambio de enteros producidos por 1 + rand() % 6
#include
#include
int main()
{
int i; /* contador */
int fin;
for ( i = 1; i <= 20; i++ ) { /* repite 20 veces */
printf( "%10d", 1 + ( rand() % 100 ) ); /* obtiene un número aleatorio entre 1 y 6 y lo despliega */
if ( i % 5 == 0 ) { /* si el contador es divisible entre 5, comienza una nueva línea de salida */
printf( "\n" );
} /* fin de if */
} /* fin de for */
scanf ("%d", &fin);
return 0; /* indica terminación exitosa */
}

No hay comentarios:
Publicar un comentario