Preciso de ajuda por favor.
27/07/2020
0
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
Post mais votado
02/08/2020
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()
Linha 5:
Math.random() * 10
Math.random() * 100
Linha 5:
Math.floor(Math.random() * 10)
Math.floor(Math.random() * 10)
Linha 9:
break;
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
Mais Posts
02/08/2020
Lourenço Lima
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!
02/08/2020
Giorgia
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.
02/08/2020
Lourenço Lima
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!
02/08/2020
Lourenço Lima
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!
Clique aqui para fazer login e interagir na Comunidade :)