Funciones numéricas y matemáticas en el Lenguaje C

Funciones numéricas


El archivo de cabecera  < math.h> define un grupo de funciones para el manejo numérico.

Funciones matemáticas


Función
Operación que realiza
ceil(x)
Redondea al entero mas cercano
fabs(x)
Devuelve el valor absoluto de x (valor positivo)
floor(x)
Redondea por defecto al entero mas próximo
fmod(x,y)
Calcula el resto en coma flotante de x/y
pow(x,y)
Calcula x elevado a la y donde y es entero
pow10(x)
Calcula 10 a la x donde x debe ser entero
sqrt(x)
Devuelve la raíz cuadrada de x


Funciones trigonométricas


Función
Operación que realiza
acos(x)
Calcula el arco coseno de x, -1< x <1
asin(x)
Calcula el arco seno de x, -1< x < 1
atan(x)
Calcula el arco tangente
atan2(x,y)
Calcula el arco tangente de x dividido por y
cos(x)
Calcula el coseno de x, se expresa en radianes
sin(x)
Calcula el seno de x, se expresa en radianes
tan(x)
Calcula la tangente de x, se expresa en radianes

Funciones logarítmicas y exponenciales


Función
Operación que realiza
exp(x)
Devuelve ex
expl(x)
Devuelve ex utilizando un valor long double
log(x)
Devuelve el logaritmo natural de x
logl(x)
Devuelve el logaritmo natural de x utilizando un valor long double
log10(x)
Devuelve el logaritmo decimal de x
log100l(x)
Devuelve el logaritmo decimal de x utilizando un valor long double

Funciones de carácter en el Lenguaje C

El archivo de cabecera  < type.h> define un grupo de funciones y macros de manipulación de caracteres
Devuelve 0 si es falso u otro valor si es verdadero
Función
Prueba  ( test ) de c
int isalpha (int c)
Devuelve verdadero si c es una letra
int isdigit (int c)
Devuelve verdadero si c es un digito entre 00 y 9
int issupper (int c)
Devuelve verdadero si c es letra mayúscula
int islower (int c)
Devuelve  verdadero si c es letra minúscula
int iscntrl(int c)
Devuelve verdadero si c es un carácter alfabético o un digito entre 0 y 9
int isxdigit (int c)
devuelve verdadero si c es un carácter de control (códigos ASCII de 0 a 31)
int isprint (int c)
Devuelve verdadero si c es un digito hexadecimal
int isgraph (int c)
Devuelve verdadero si c es un código imprimible incluyendo espacio (código ASCII 32 a 127)
int isspace (int c)
Devuelve verdadero si c es un código imprimible excepto espacio
int ispunct (int c)
Devuelve verdadero si c es espacio, nueva línea, retorno de carro, tabulación
int toupper (int c)
Devuelve verdadero si c es un carácter de puntuación
int tolower (int c)
Convierte el carácter c a mayúscula

Convierte el carácter c a minúscula

Bibliotecas básicas en el Lenguaje C

Todas las versiones de C ofrecen una biblioteca estándar de funciones en tiempo de ejecución que proporcionan soporte a las operaciones mas frecuentes y con solo llamarlas permiten realizar operaciones sin necesidad de escribir su código.

Estas funciones estandares o predifinidas se dividen en grupos y se escriben encerrado entre corchetes su nombre
Ej:
< assert.h >
< ctype. H >
< errno. h >
< float. h >
< limits.h >
< math. H>
< setjmp. h >
< signal. h >
< stdarg. h >
< stdef. h >
< stdio. h >
< string. h >
< time. h >
<conio.h>



En los módulos de programa se pueden incluir líneas  # include  con el archivo de cabecera correspondiente
Se pueden incluir tantos archivos de cabecera como sean necesarios.

Tipos de funciones en el Lenguaje C

Tipos de pasaje de parámetros a una función


Paso de parámetros por valor

En este método se realiza una copia de los valores que se vienen manejando en el programa.
Estos dentro de la función podrán ser modificados por medio de cálculos o asignaciones, pero cuando la función devuelve el control a la función llamadora, recuperan los valores originales que tenían antes de ser modificados por la función.

Paso de parámetros por referencia

Este método se utiliza cuando una función debe modificar el valor de un parámetro recibido y devolverlo modificado a la función llamadora.
El compilador pasa la dirección donde se encuentra el valor en cuestión y no una copia del mismo, como lo hacia el pasaje por valor.
La notación en la sintaxis  varia para pasar una variable  por referencia debe preceder al nombre de la misma  el símbolo & y el parámetro correspondiente a la función debe declararse como puntero *.

Float x;
Int y;
Entrada (& x,& y);
.............................
void ( float *  x, float *  y );

Parámetros const  de una función

Para añadir seguridad adicional a las funciones, se puede agregar el especificador const, que indica al compilador que solo es de lectura dentro del interior de la función.
Si se intentase escribir en este parámetro dentro de la función dará error.

Resumen del comportamiento de los diferentes tipos de parámetros


Parámetro especificado como

Item pasado por
Cambia item dentro de la función
Modifica parámetros al exterior
Int item
Valor
Si
No
Const int item
Valor
No
No
Int* item
Por dirección
Si
Si
Const int* item
Por dirección
No su contenido
No


Funciones en el Lenguaje C

Una función es un conjunto de sentencias que pueden ser llamadas desde cualquier parte de un programa.
Las funciones en C no pueden anidarse o sea declarase dentro de otra función.

La estructura de una función es la siguiente

Tipo de resultado  nombre de la función ( lista de parámetros)

{
declaración de las variables
sentencias
valor devuelto
}

analicemos los aspectos mas sobresalientes de una función

Tipo de resultado :                           tipo de dato que devuelve la función
Nombre de la función :                    nombre arbitrario de la función
Lista de parámetros:                                    parámetros tipificados
Cuerpo de la función :                     encerrado entre { } sin “;” final
Paso de parámetros:                        generalmente por valor
Declaración local de variables :       solo se activan en esta función
Valor devuelto por la función:        mediante return devuelve el valor


Una llamada a una función produce su ejecución y luego retorna a donde fue llamada con un valor resultante mediante return.

La longitud de la definición de una  función no debería sobrepasar, en lo posible, el  largo de una pantalla

Nombre de una función


Comienza con una letra o subrayado ( _ ), distinguiendo entre mayúsculas y minúsculas

Ej                Int    Calculo_suma ( int a, int b);
      Int   _suma (int a, int b);
Tipo de dato de retorno

Si la función no devuelve un valor int se debe especificar que tipo de valor devolverá.

·         double
·         float
·         char
·         punteros

si la función   NO  devuelve ningún resultado se colocara Void

Resultados de una función

Una función puede devolver un único resultado  con una sentencia return.

Llamada a una función

Las funciones para poder ser ejecutadas deben ser llamadas o invocadas, normalmente se lo hace desde la función main( ).

La función que llama a otra se denomina llamadora y la función controlada se denomina llamada.

Prototipo de una función

Un prototipo declara una función y proporciona información suficiente al compilador para verificar que la función esta siendo llamada correctamente con respecto al número y tipo de parámetros y el tipo devuelto por la función.
Normalmente se sitúan al principio de un programa, antes de la función main( ).


Cuando una función se declara, se esta proporcionando el nombre y se listan las características de la misma.
Cuando una función se define, se indica el nombre y  se  reserva el espacio de memoria para esa entidad.

Un formato especial de prototipo es aquella con un numero no especificado de parámetros

Int  muestra ( int a, int b,....);

Se representa por medio de puntos suspensivos y es necesario utilizar    # include < stdarg.h >.

Operadores en el Lenguaje C

Operadores


- Operadores de asignación


Símbolo
uso
Descripción
=
A = b
Asigna a A el valor de b
* =
A * = b
Multiplica A por b y guarda en A
/ =
a / = b
Divide a por b y guarda en a
% =
a % = b
Guarda en a el resto de a / b
+ =
a + = b
Suma a + b y lo guarda en a
- =
a - = b
Resta a – b y lo guarda en a


- Operadores aritméticos


operador
Tipo enteros
Tipo reales
+
Suma
Suma
-
Resta
Resta
*
Producto
Producto
/
Cociente
Cociente
%
Resto



     Existen dos operadores especiales y con los que hay que manejarse con cuidado

a = a + 1;  es lo mismo que a + +
a = a –1; es lo mismo que a - -


    Ahora prueben que resultados dan las siguientes operaciones
siendo a = 1 y b = 3

a = + + b;    a = b + +;
a = - - b;      a = b --;

que valor toma a y b en cada caso luego de realizar la operación?

- Operadores relacionales


Operador
Significado
Ejemplo
= =
Igual a
A = = b
! =
Distinto a
A ! = b
>
Mayor que
A > b
<
Menor que
a < b
> =
Mayor e igual que
a >= b
< =
Menor e igual que
a <= b


- Operadores lógicos


Operador
Significado
!
Negación      not
&&
Y                  and
||
O                  or


- Operador condicional

Este operador reemplaza al if else de una estructura condicional normal

a > b ? 5 : 10;      si a es mayor que b devuelve 5 de lo contrario 10

- Operador coma
permite escribir mas de una sentencia en una sola línea

i  = 12, j = 13;   seria lo mismo que    i = 12;
                                                            j = 13;

- Operador sizeof
devuelve el tamaño en bits de una variable, array, etc.

Sizeof ( variable );

- Operación de conversión explicita

C puede convertir el contenido de las variables a otros tipos de datos

Se debe escribir el tipo deseado y luego la variable sobre la que se debe aplicar

( int ) a;
( float ) b;