Curso de Programação C | Como gerar números aleatórios com as funções rand e srand? | aula 103

Curso de Programação C | Como gerar números aleatórios com as funções rand e srand? | aula 103

Geração de Números Aleatórios em C

Visão geral da seção: Nesta aula, o Professor Wagner Gasparini ensina como gerar números aleatórios para preencher um vetor em C, sem a necessidade de digitar os valores manualmente pelo teclado.

Gerando Números Aleatórios

  • Utiliza-se a função rand() para gerar números aleatórios.
  • Exemplo: int numero = rand();
  • Porém, os números gerados são pseudoaleatórios, pois dependem de uma semente padrão.
  • A semente pode ser alterada utilizando a função srand().
  • Exemplo: srand(150);

Evitando Repetição dos Mesmos Valores

  • Para evitar que os mesmos valores sejam gerados repetidamente, é necessário fornecer uma semente diferente a cada execução do programa.
  • Uma opção é utilizar o valor da hora do computador como semente.
  • Exemplo: srand(time(NULL));

Conclusão

Gerar números aleatórios em C requer o uso das funções rand() e srand(). É importante fornecer uma semente diferente para evitar repetição dos mesmos valores. A função time(NULL) pode ser utilizada para obter a hora atual do computador como semente.

Passando a variável que armazena a hora do computador

Visão geral da seção: Nesta seção, o palestrante explica como passar a variável que armazena a hora do computador em um programa.

Inclusão do cabeçalho "time.h"

  • Para acessar a variável que armazena a hora do computador, é necessário incluir o cabeçalho "time.h" no programa.

Passando a hora do computador para uma função

  • Após incluir o cabeçalho "time.h", é possível passar a hora do computador para uma função específica.
  • Utiliza-se a função time() para obter a hora atual e passá-la como parâmetro para essa função.

Retornando a hora do computador

  • Ao chamar a função com o parâmetro da hora do computador, ela retornará esse valor.
  • Esse valor pode ser utilizado como semente para gerar sequências de números pseudoaleatórios.

Geração de números pseudoaleatórios

Visão geral da seção: Nesta seção, o palestrante demonstra como gerar sequências de números pseudoaleatórios utilizando a hora do computador como semente.

Alteração na sequência gerada

  • Ao utilizar a hora do computador como semente, cada execução do programa gera uma sequência diferente de números.
  • A alteração na sequência gerada mostra que agora está sendo feita uma geração de números pseudoaleatórios.

Necessidade de um valor inicial

  • Para gerar números pseudoaleatórios, é necessário ter um valor inicial, conhecido como semente.
  • A hora do computador é utilizada como semente para garantir a geração de sequências diferentes a cada execução.

Conclusão e convite

Visão geral da seção: Nesta seção final, o palestrante conclui o assunto abordado e faz um convite aos espectadores.

Geração de números pseudoaleatórios

  • Ao utilizar a hora do computador como semente, é possível gerar sequências de números pseudoaleatórios.
  • Essa técnica garante que cada execução do programa produza uma sequência diferente.

Convite aos espectadores

  • O palestrante convida os espectadores a deixarem dúvidas nos comentários e a se inscreverem no canal.
  • Encoraja os espectadores a dar like no vídeo.
Video description

Cupons para meus cursos na Udemy https://wagnergaspar.com/cupons_udemy/ Seja muito bem vindo à aula de número 103 do nosso curso gratuito de programação com a linguagem C. Ficar digitando números pelo teclado para testar nossos programas pode ser bem trabalhoso, especialmente com vetores maiores. Uma função muito útil é a função rand() que vamos conhecer nesta aula. Esta função serve para gerar valores aleatórios. Assim, ao fazermos uma repetição para preencher um vetor lendo valores do teclado, podemos apenas gerar valores para preencher nosso vetor, assim: for(i = 0; i menor que tam; i++) vet[i] = rand(); Contudo, ao executar o programa algumas vezes, você irá perceber que são gerados sempre os mesmos valores. Por que isso ocorre? A verdade é que não é possível gerar números completamente aleatórios, gerar números "do nada". Precisamos partir de algo, de algum valor inicial. Quem escreveu essa função definiu algum valor inicial que é utilizado para a geração dos números. São gerados sempre os mesmos valores porque é utilizado sempre esse valor padrão chamado de semente ou "seed" em inglês. Para que seja gerada uma sequência diferente em cada execução, precisamos informar nossa semente, um valor que seja diferente em cada execução do nosso programa. Um valor muito útil como semente é a hora do computador que será diferente em cada execução do programa, mesmo que em milésimos de segundos. Para utilizar a hora do computador como semente, basta utilizar a função srand() uma única vez, como a seguir: #include time.h srand(time(null)); A função srand() altera a semente padrão pela nova semente recebida como parâmetro entre o par de parênteses. Para obter a hora atual do computador, precisamos da biblioteca time.h. É esta biblioteca que possui a função que irá nos retornar a hora do computador: time(null). Código disponível em: https://wagnergaspar.com/