| <<< Voltar | Avançar >>> |
|
|
Se esta página lhe ajudar, considere fazer uma doação |
10. Funções matemáticas
10.1 Obtendo o valor absoluto de um número inteiro
Para obter o valor absoluto de um número inteiro use a função abs( ). Ela faz parte do arquivo de cabaçalho stdlib.h e sua sintaxe é:
abs(número) |
Exemplo do uso da função abs:
#include <stdio.h>
int main()
{
int nr1 = 5,nr2 = -7;
printf("\n");
printf("nr1=%d\tabs(nr1)=%d\n",nr1,abs(nr1));
printf("nr2=%d\tabs(nr2)=%d\n\n",nr2,abs(nr2));
return(0);
}
|
10.2 Funções trigonométricas
O arquivo de cabeçalho tgmath.h (ou math.h, dependendo do seu compilador) fornece as seguintes funções trigonométricas:
sin(angulo) cos(angulo) tan(angulo) |
Além destas devem ser encontradas as funções:
asin(angulo) acos(angulo) atan(angulo) |
Para o cálculo de arco seno, arco co-seno e arco tangente e:
sinh(angulo) cosh(angulo) tanh(angulo) |
Para o cálculo do seno, co-seno e tangente hiperbólicos. Para maiores detalhes dê uma estudada no arquivo de cabeçalho referente na biblioteca de seu compilador.
10.3 Gerando números aleatórios
Para gerar números aleatórios alguns compiladores possuem em seu arquivo de cabeçalho stdlib.h as funções random( ) e rand( ).
A função random gera um número aleatório entre zero e um número inteiro passado como argumento. Sua sintaxe é:
random(número) |
Já a função rand gera um número aleatório entre zero e RAND_MAX que é definido no próprio arquivo stdlib.h. A sintaxe de rand é:
rand( ) |
Abaixo segue um exemplo do uso destas funções:
/* gerando números aleatórios */
#include <stdio.h>
#include <stdlib.h>
int main()
{
int contador;
printf("Gerando 5 números aleatórios com random\n");
for(contador=1;contador <= 5; contador++)
printf("%d\n",random(10));
printf("Gerando 5 números aleatórios com rand\n");
for(contador=1;contador <= 5; contador++)
printf("%d\n",rand());
return(0);
}
|
Porém, ao executar o programa acima várias vezes, você verá que ele sempre gera os mesmos números aleatórios. Para resolver isso basta utilizar as funções randomize( ) e srand( ) que iniciam o gerador de números aleatórios.
randomize inicia o gerador de números aleatórios usando o relógio do computador para produzir uma semente aleatória e srand( ) lhe permite especificar o valor inicial do gerador de números aleatórios. Sua sintaxe é:
srand(número) |
Veja como fica nosso exemplo inicial usando randomize para iniciar o gerador de números aleatórios:
/* gerando números aleatórios */
#include <stdio.h>
#include <stdlib.h>
int main()
{
int contador;
randomize();
printf("Gerando 5 números aleatórios com random\n");
for(contador=1;contador <= 5; contador++)
printf("%d\n",random(10));
printf("Gerando 5 números aleatórios com rand\n");
for(contador=1;contador <= 5; contador++)
printf("%d\n",rand());
return(0);
}
|
Até aqui tudo bem. Porém ao utilizar este código no gcc obtive uma mensagem de erro dizendo que a função random tinha muitos argumentos. Dei uma olhada no arquivo de cabeçalho stdlib.h e vi que neste compilador as coisas funcionam de maneira um pouco diferente.
random e rand aparentemente tem a mesma função, ou seja, geram números aleatórios entre zero e RAND_MAX.
RAND_MAX é definido como igual a 2147483647. Assim eu dividi o resultado de random por 100000000 e consegui alguns aleatórios com dois dígitos:
/* gerando números aleatórios no gcc */
#include <stdio.h>
#include <stdlib.h>
/* random() gera um long int entre 0 e RAND_MAX = 2147483647
*
* RAND_MAX é definido em stdlib.h */
int main()
{
int contador;
printf("Gerando 5 números aleatórios com random\n");
for(contador=1;contador <= 5; contador++)
printf("%d\n",random()/100000000);
printf("Gerando 5 números aleatórios com rand\n");
for(contador=1;contador <= 5; contador++)
printf("%d\n",rand()/100000000);
return(0);
}
|
Para iniciar o gerador de números aleatórios a função randomize não existe, porém, a função srandom existe. Então eu a utilizei juntamente com a função time e consegui gerar números aleatórios diferentes a cada execução do programa.
O código anterior ficou assim:
/* gerando números aleatórios no gcc */
#include <stdio.h>
#include <stdlib.h>
/* random() gera um long int entre 0 e RAND_MAX = 2147483647
*
* RAND_MAX é definido em stdlib.h */
int main()
{
int contador;
srandom(time(NULL)); /* iniciando o gerador de números aleatórios */
printf("Gerando 5 números aleatórios com random\n");
for(contador=1;contador <= 5; contador++)
printf("%d\n",random()/100000000);
printf("Gerando 5 números aleatórios com rand\n");
for(contador=1;contador <= 5; contador++)
printf("%d\n",rand()/100000000);
return(0);
}
|
|
|
Se esta página lhe ajudou, considere fazer uma doação |
| <<< Voltar | Avançar >>> |