Preciso de ajuda por favor.

27/07/2020

0

Gente pelo amor de Deus! o professor passou esse exercicio e não faço a menor ideia nem de como começar, vejam só.


criar um sistema, onde o usuário devera inserir um numero inteiro.

O sistema ira executar uma função que gerara um numero randômico, e apresentar em quantas tentativas o sistema precisou para o numero randômico ser igual ao numero que foi inserido pelo usuário.

os números deverão aparecer no console.log e a quantidade de vezes executado devera ser apresentado para o usuário.

criar 2 cenários, o primeiro onde a aposta devera ser entre os números de 0 ate 9 (0,1,2,3,4,5,6,7,8,9) e o segundo onde a aposta devera ser entre os números 0 ate 99 (0,1,2,3,4,5...96,97,98,99).
Giorgia

Giorgia

Responder

Post mais votado

02/08/2020

Boa noite,

Primeiro cenário:
var numeroDigitado = parseInt(prompt("Digite um número entre 0 e 9"));
var contagem = 0;

while(true){  
    var numeroSorteado = Math.floor(Math.random() * 10); 
    console.log(numeroSorteado);
    contagem++;
    if(numeroDigitado == numeroSorteado)
        break;
}
console.log("Quantidade de vezes executado: " + contagem);


Segundo cenário:
var numeroDigitado = parseInt(prompt("Digite um número entre 0 e 99"));
var contagem = 0;

while(true){  
    var numeroSorteado = Math.floor(Math.random() * 100); 
    console.log(numeroSorteado);
    contagem++;
    if(numeroDigitado == numeroSorteado)
        break;
}
console.log("Quantidade de vezes executado: " + contagem);


Explicação do código:
Linha 5:
Math.random()
-> Gera um número aleatório entre o valor 0 (incluso) e 1 (não incluso).

Linha 5:
Math.random() * 10 
Math.random() * 100 
-> Não há segredos, multiplica esse valor gerado por 10 / 100.

Linha 5:
Math.floor(Math.random() * 10)
Math.floor(Math.random() * 10)
-> Arredonda para um número inteiro menor mais próximo. Exemplo: Math.floor(9,7) = 9.

Linha 9:
break;
-> Nesse caso, ele vai encerrar o while quando o número digitado pelo usuário for igual ao número sorteado.

Espero que tenha te ajudado, qualquer coisa só perguntar!
Caso queira conversar comigo no particular, me chame no Discord (Lourenço#0486). Assim consigo te ajudar melhor e mais rapidamente no que você precisar!

Até mais!

Lourenço Lima

Lourenço Lima
Responder

Mais Posts

02/08/2020

Lourenço Lima

Caso o usuário digite um número decimal, não há problema algum porque como eu converti para int (utilizando o parseInt()), será armazenado na variável somente o número inteiro. Exemplo: se o usuário digitar 5,7, será atribuído o valor 5 para a variável.

Mas esse código que eu enviei apresenta o seguinte problema:
- Caso o usuário digite uma letra ou um número inteiro que não esteja nesse intervalo dos números sorteados, ocorrerá um loop infinito, já que jamais o número digitado será igual ao número sorteado para, então, encerrar o while.

Não coloquei isso no código anterior porque acredito que não seja o objetivo desse exercício realizar esse tipo de validação e impedir qualquer possível falha no programa. No entanto, de qualquer maneira, estou enviando com as validações e, mesmo que não tenha que ser feito no exercício, recomendo que você estude e entenda isso porque são validações básicas e é de extrema importância impedir possíveis falhas e erros nos programas.

Primeiro cenário:
var numeroDigitado = parseInt(prompt("Digite um número entre 0 e 9"));

if(isNaN(numeroDigitado) || numeroDigitado < 0 || numeroDigitado > 9)
    alert("ERRO: Você deve digitar um número entre 0 e 9!");
else{
    var contagem = 0;
    while(true){  
        var numeroSorteado = Math.floor(Math.random() * 10); 
        console.log(numeroSorteado);
        contagem++;
        if(numeroDigitado == numeroSorteado)
            break;
    }
    console.log("Quantidade de vezes executado: " + contagem);
}


Segundo cenário:
var numeroDigitado = parseInt(prompt("Digite um número entre 0 e 99"));

if(isNaN(numeroDigitado) || numeroDigitado < 0 || numeroDigitado > 99)
    alert("ERRO: Você deve digitar um número entre 0 e 99!");
else{
    var contagem = 0;
    while(true){  
        var numeroSorteado = Math.floor(Math.random() * 100); 
        console.log(numeroSorteado);
        contagem++;
        if(numeroDigitado == numeroSorteado)
            break;
    }
    console.log("Quantidade de vezes executado: " + contagem);
}


Agora aquele código que apresentei no post anterior só será executado caso o valor digitado pelo usuário seja considerado um número (essa validação é feita pelo método isNaN(numeroDigitado)), seja maior ou igual a 0 e, necessariamente, menor ou igual a 9 (primeiro cenário) / 99 (segundo cenário).
Caso ALGUMA(S) (ou todas, óbvio) dessas TRÊS validações não sejam válidas, o resto do programa não será executado e será exibido um alert() sobre o erro ocorrido!
Explicarei melhor o método isNaN()... Bom, esse método serve para verificarmos se o valor que passamos como argumento NÃO é um número. Então caso NÃO seja um número, o retorno será TRUE e caso SEJA um número o retorno será FALSE. Acho válido ressaltar o seguinte:
- if(isNaN(numeroDigitado)) é o mesmo do que if(isNaN(numeroDigitado) == true)
- if(!isNaN(numeroDigitado)) é o mesmo do que if(isNaN(numeroDigitado) == false)
Isso se aplica para qualquer método dentro de um if e é valido em inúmeras linguagens de programação.

Bons estudos!
Responder

02/08/2020

Giorgia

Caso o usuário digite um número decimal, não há problema algum porque como eu converti para int (utilizando o parseInt()), será armazenado na variável somente o número inteiro. Exemplo: se o usuário digitar 5,7, será atribuído o valor 5 para a variável.

Mas esse código que eu enviei apresenta o seguinte problema:
- Caso o usuário digite uma letra ou um número inteiro que não esteja nesse intervalo dos números sorteados, ocorrerá um loop infinito, já que jamais o número digitado será igual ao número sorteado para, então, encerrar o while.

Não coloquei isso no código anterior porque acredito que não seja o objetivo desse exercício realizar esse tipo de validação e impedir qualquer possível falha no programa. No entanto, de qualquer maneira, estou enviando com as validações e, mesmo que não tenha que ser feito no exercício, recomendo que você estude e entenda isso porque são validações básicas e é de extrema importância impedir possíveis falhas e erros nos programas.

Primeiro cenário:
var numeroDigitado = parseInt(prompt("Digite um número entre 0 e 9"));

if(isNaN(numeroDigitado) || numeroDigitado < 0 || numeroDigitado > 9)
    alert("ERRO: Você deve digitar um número entre 0 e 9!");
else{
    var contagem = 0;
    while(true){  
        var numeroSorteado = Math.floor(Math.random() * 10); 
        console.log(numeroSorteado);
        contagem++;
        if(numeroDigitado == numeroSorteado)
            break;
    }
    console.log("Quantidade de vezes executado: " + contagem);
}


Segundo cenário:
var numeroDigitado = parseInt(prompt("Digite um número entre 0 e 99"));

if(isNaN(numeroDigitado) || numeroDigitado < 0 || numeroDigitado > 99)
    alert("ERRO: Você deve digitar um número entre 0 e 99!");
else{
    var contagem = 0;
    while(true){  
        var numeroSorteado = Math.floor(Math.random() * 100); 
        console.log(numeroSorteado);
        contagem++;
        if(numeroDigitado == numeroSorteado)
            break;
    }
    console.log("Quantidade de vezes executado: " + contagem);
}


Agora aquele código que apresentei no post anterior só será executado caso o valor digitado pelo usuário seja considerado um número (essa validação é feita pelo método isNaN(numeroDigitado)), seja maior ou igual a 0 e, necessariamente, menor ou igual a 9 (primeiro cenário) / 99 (segundo cenário).
Caso ALGUMA(S) (ou todas, óbvio) dessas TRÊS validações não sejam válidas, o resto do programa não será executado e será exibido um alert() sobre o erro ocorrido!
Explicarei melhor o método isNaN()... Bom, esse método serve para verificarmos se o valor que passamos como argumento NÃO é um número. Então caso NÃO seja um número, o retorno será TRUE e caso SEJA um número o retorno será FALSE. Acho válido ressaltar o seguinte:
- if(isNaN(numeroDigitado)) é o mesmo do que if(isNaN(numeroDigitado) == true)
- if(!isNaN(numeroDigitado)) é o mesmo do que if(isNaN(numeroDigitado) == false)
Isso se aplica para qualquer método dentro de um if e é valido em inúmeras linguagens de programação.

Bons estudos!


Lourenço muito obrigada mesmo, comecei a estudar isso esse ano, mas com essa pendemia só estamos tendo aula online e eu to tendo realmente muita dificuldade de aprender a programar, muito obrigada por sua ajuda tão preciosa, Deus abençoe muito voce. Um abraço.
Responder

02/08/2020

Lourenço Lima

Giorgia, imagina! Qualquer coisa que eu puder ajudar, só chamar!
Como eu disse, se quiser pode me mandar mensagem no Discord (Lourenço#0486).

Aproveita para estudar bastante, veja cursos, leia artigos, assista vídeos, etc...
Aqui na DevMedia tem muito conteúdo de qualidade sobre JavaScript e tem também em outras plataformas...

Até mais e bons estudos!
Responder

02/08/2020

Lourenço Lima

Giorgia, imagina! Qualquer coisa que eu puder ajudar, só chamar!
Como eu disse, se quiser pode me mandar mensagem no Discord (Lourenço#0486).

Aproveita para estudar bastante, veja cursos, leia artigos, assista vídeos, etc...
Aqui na DevMedia tem muito conteúdo de qualidade sobre JavaScript e tem também em outras plataformas...

Até mais e bons estudos!
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar