jueves, 24 de febrero de 2011

Capitulo 2. Funciones Estándar

Fuente:
Programación en C++ / Principios y Aplicaciones (resumen)
Carlos Romero Shollande 

1. Introducción 

Sintaxis      :  double nomb_func (double lista_variables);
Propósito  :  Tomar argumentos double y devolver valores double. Son subrutinas de tipo estándar incluidas en el C++ 
Estas funciones se pueden clasificar como:
- Funciones aritméticas
- Funciones exponenciales y logarítmicas
- Funciones trigonométricas e hiperbólicas
- Funciones aleatorias 

1.1. Funciones Aritméticas 

Tabla 1. Funciones aritméticas.

FUNCION
DESCRIPCION
EJEMPLOS
ceil(x)

floor(x)

fabs(x)
pow(x, y)



sqrt(x)

Fmod(x, y)
Redondea x al entero más próximo hacia arriba
Redondea x al entero más próximo hacia abajo
Valor absoluto de un número flotante x
x elevado a la potencia y (xy)



Raíz cuadrada de x

Residuo de x/y como número de punto flotante
ceil(9.91) = 10.0
ceil(-9.91) = -9.0
floor(-1.02) = -2.0
floor(1.02) = 1.0
fabs(-5.34) = 5.34
pow(3, 4) = 81
     - Error si x < 0 e y £ 0
     - Error si x < 0 e y no entero
     - Desbordamiento >= error rango
sqrt (9.0) = 3.0
Error si x < 0
fmod (13.657, 2.333) = 1.992
Siendo el cociente = 5

Requieren de la directiva #include<math.h>

Tabla 2. Otras funciones aritméticas
 
FUNCION
DESCRIPCION
EJEMPLOS
Abs(x)
Labs(x)
Valor absoluto de un número entero
Valor absoluto de un número entero largo
abs(-4) = 4
labs(-44582) = 44582

Requieren de la directiva #include <stdlib.h>

1.2. Funciones Exponenciales y Logarítmicas 

Tabla 3. Funciones exponenciales y logarítmicas
 
FUNCION
DESCRIPCION
EJEMPLOS
exp(x)
log(x)

Log10(x)
Eleva el número neperiano e a la potencia x
Logaritmo natural de x

Logaritmo decimal de x
exp(2.0) = 7.38906
log(7.38906) = 2.0
Error cuando x < 0 (base e)
log10(100.0) = 2.0
Error cuando x < 0 (base 10)

Requieren de la directiva #include<math.h> 

1.3. Funciones Trigonométricas e Hiperbólicas

Tabla 4. Funciones trigonométricas e hiperbólicas

FUNCION
DESCRIPCION
OBSERVACIONES
sin(x)
cos(x)
tan(x)
asin(x)
acos(x)
atan(x)
sinh(x)
cosh(x)
tanh(x)
Seno de x
Coseno de x
Tangente de x
Arco seno de x
Arco coseno de x
Arco tangente de x
Seno hiperbólico de x
Coseno hiperbólico de x
Tangente hiperbólica de x
Angulo x en radianes
Angulo x en radianes
Angulo x en radianes
-1 < x < 1
-1 < x < 1

Angulo x en radianes
Angulo x en radianes
Angulo x en radianes

Requieren de la directiva #include<math.h>
Transformación de grados sexagesimales a radianes:

Gráfica 1. Sistemas de medición de los ángulos

 

Como tangente(pi/4) = 1.
Entonces   pi = 4* atan(1.0)

1.4. Funciones Aleatorias 

Tabla 5. Funciones aleatorias

FUNCION
DESCRIPCION
rand(void)


randomize(void)
srand(unsigned seed)
Genera una secuencia de números pseudo aleatorios.
Cada vez que se llama a rand() devuelve un entero al azar entre 0 y RAND_MAX (32767)
Selecciona aleatoriamente el generador de números aleatorios.
Establece el punto de arranque para la secuencia que genera rand().
Permite ejecutar múltiples programas que usen números aleatorios

Requieren de la directiva #include<stdlib.h>

Gráfica 2. Generación de Números Aleatorios

Para generar un número aleatorio (r) comprendido dentro de un rango predefinido se sugiere usar la fórmula:

r = rand()%(s-i+1)+1;
i :  límite inferior del rango
s :  límite superior del rango

2. Especificación de la Hora

Sintaxis      :   variable = time (argumento)
Propósito  :  Devolver la hora real del calendario del sistema en segundos. Si no tiene hora el sistema, la función devuelve -1.
Requiere de la directiva #include<time.h> y definir una variable de tipo time_t.
Ejemplo     :   time_t hora;
                      hora = time(NULL);

El argumento NULL significa nulo. Si se usa otro argumento, entonces la función asignará también la hora del calendario de dicho argumento.

Ejemplo: 
Ingresar la velocidad inicial (Vi) con que es lanzado un proyectil y el ángulo de inclinación del cañón con respecto a la horizontal (a). Calcular y reportar el alcance horizontal (x), la altura máxima (h) y los tiempos empleados para lograr la altura máxima (th) y el alcance horizontal (tx).











#include <iostream.h>  // ALTURA Y ALCANCE DE UN PROYECTIL
#include <conio.h> 
#include <math.h> 
main()  { 
int Vi; 
float a, x, h, tx, th, g=9.81; 
clrscr(); 
cout<<"Velocidad inicial :  "; cin>>Vi; 
cout<<"Angulo de inclinación del cañón  : "; cin>>a; 
a = 4 * atan(1.0) * a / 180; 
x = pow(Vi, 2) * sin(2 * a) / g;
h = pow(Vi * sin(a), 2) / (2 * g); 
th = Vi * sin(a) / g;
tx = 2 * Vi * sin(a) / g; 
cout<<"\n\nAltura máxima (m)  : "<<h<<"\n"; 
cout<<"\Alcance horizontal máximo (m)  : "<<x<<"\n"; 
cout<<"Tiempo para la altura máxima (seg)  : "<<th<<"\n"; 
cout<<"Tiempo para el alcance horizontal (seg)  : "<<tx<<"\n"; 
getch(); 
}

No hay comentarios:

Publicar un comentario