Prévia do material em texto
Gerando Valores aleatórios em C. Vamos precisar das bibliotecas: <stdilib.h> <time.h> Com stdlib, iremos usar a função rand() para gerar valores aleatórios de 0 ao rand_max que é o maior inteiro possível. Como usar: int num = rand(); //onde num é a variável que vai estar recebendo um número aleatório trazido pela função rand(). O grande problema aqui é que ao usar apenas essa função você só irá obter o mesmo valor, aleatório, mas o mesmo. Então para mudar isso faremos uso de uma outra função: srand(). Essa função é uma configuração para a rand(), onde irá gerar valores aleatórios com auxilio do que chamamos de semente. //Semente nada mais é que uma informação que será passada para gerar valores aleatórios. O que pode ser essa semente? O tempo da máquina, pois o tempo está em constante mudança, ne? Isso irá possibilitar a geração de valores aleatórios, mas ainda gigantes. Para usarmos o tempo da máquina iremos fazer uso da biblioteca time.h importando a função time(). Com um tempo NULL (nulo) inicialmente. Logo, teremos: Sintaxe de uso: srand(time(NULL)); //importante que antes de usar a função rand(), você configure com srand()! int num = rand(); //agora sim os valores gerados serão aleatórios mas enormes. Para estabelecer um limite iremos modularizar esse valor randômico gerado, isto é, iremos pegar o resto da divisão inteira do valor randômico gerado pelo limite que queremos. Não é complicado, rlx. Vejamos: La no momento de uso da função rand(), você irá usar o % e o número de limite desejado + 1, pois o rand desconsidera o ultimo número. Veja exemplos: //teste para valores entre 0 e 100. int num = rand() % 101; //desta forma nossa variável “num” receberá o resto da divisão inteira de um valor randômico qualquer por 101. Gerando assim valores entre 0 e 100, pois a função desconsidera o último valor. //outro ex num = 2 + rand() % 10; //aqui num receberá valores aleatórios entre 2 e 10, pois ao randomizar um numero gigante a gente apenas terá o resto da divisão deste número por 10. Priorizando o pegar o resto primeiro e depois somar este resto + 2.