Por que Temos que Colocar Valores, como: var numeroSorteado = sorteia(10); se o computador é que irá escolher um número aleatório?
Por que Temos que Colocar Valores, como: var numeroSorteado = sorteia(10); se o computador é que irá escolher um número aleatório?
Oi Cláudia!
Pelo que entendi, é porque o programa escolhe um número entre zero e o número que vai ser processado na função "sorteia". Tudo bem que o programa já fazia isso antes, só multiplicando o Math.random pelo número desejado, mas creio que foi passado o exercício para, além de treinarmos construir funções, também pensarmos sobre deixar o programa mais enxuto, menos poluído e mais fácil de alterar.
Essa foi minha duvida também, fiquei analisando a função e não entendi pra que colocar o numero 10 se o numero vai ser processado aleatório pelo próprio programa.
Se eu coloco por exemplo o numero 5 ele mostra "Você errou! Seu chute é maior que o número pensado!"
Isso se deve por causa da função que criamos, veremos essa parte do código:
<script>
function sorteia(n) { // Criamos uma função chamada sorteia que possui um parâmetro (n)
/* Esse " n " é um número qualquer, por enquanto não tem valor algum, mas olhando a instrução
abaixo, que será executada quando chamar a função, sabemos que esse " n " está multiplicando uma outra função
chamada Math.random() e que este Math.random() está dentro de outra função nomeada Math.round(). Então aqui
chamamos duas funções: */
return Math.round(Math.random() * n);
}
var numeroPensado = sorteia(10); // Aqui estamos chamando a função que criamos com um argumento.
/* E estamos atribuindo o valor que sorteia(10) retorna à variável "numeroPensado", o que sorteia(10) retorna?
justamente o resultado da operação matemática que está depois do 'return' -> return Math.round(Math.random() * 10);
Mas agora perceba que o parâmetro ' n ' está sendo substituído pelo nosso agurmento que é 10, agora ' n ', possui um valor!
</script>
Obs:. No JavaScript há algumas funções já pré definidas, como na biblioteca Math há várias funções/métodos que estamos chamando dela, como random() e round(), e todas elas tabém utilizam parâmetros para executar o cálculo delas.
Agora que entendemos o código, basta entender a operação que está sendo realizada:
Então ao multiplicarmos os números acima por 10 (que é foi o nosso argumento em sorteia(10)), temos o seguinte resultado: 4,8498984 - 6,545155656 - 4,984987984 - 8,984984948. E assim temos as casas de unidade que queremos que é de 0 até 9.
Então chamamos Math.round() para arredondadar para o inteiro mais proximo. Aí fica: 5 - 7 - 5 - 9, como round() arredonda para o mais próximo, se o número aleatório ser 0.9885226, teremos o 10!
Concluindo, se queremos um número aleatório de 0 até 100 unidades, basta mudarmos o nosso argumento de 10 para 100:
<script>
// Então a operação que será excecutada no sorteia(100) será assim:
// Math.round(Math.random() * 100);
function sorteia(n) {
return Math.round(Math.random() * n);
}
var numeroPensado = sorteia(100);
</script>
Muitissimo obrigada!!!
Agora eu entendi!!! :)