Ir para conteúdo
alexdcarvalho

Dúvida sobre um exercício em JS

Recommended Posts

Olá, eu tô tentando concluir um exercício no qual eu tenho que fazer um calculo de multiplicação entre dois números e por pro resultado aparecer num alert. Em seguinda, caso a pessoa queira fazer novamente o calculo, clicar num botão chamado Área, porém tá dando erro e eu não tô conseguindo identificar:

 

            var n1 = parseInt(prompt('Digite um número:'));
            var n2 = parseInt(prompt('Digite outro número:'));
 
            escrever(resultn1n2);
 
            function escrever(resultla) {
                var mensagem = 'O resultado é ' + (l*a);
                parseInt(mensagem);
 
                alert(mensagem);
            }
 
            function calcularArea(laal) {
                var largura = parseInt(prompt('Digite novamente um número:'));
                var altura = parseInt(prompt('Agora outro número:'));
 
                var mens = 'O resultado é ' + (la*al);
                parseInt(mens);
 
                escrever(menslaal);
 
            } 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então @alexdcarvalho, esse é realmente complicado, pelo menos pra mim. O que eu fiz foi o seguinte:


 

<!DOCTYPE html>
<!--Multiplica dois números reais e exibe o resultado na div "demo". 
Caso o usuário queira repetir o cálculo, basta apertar ENTER. A condicional não funciona corretamente pois NaN é um  dado do tipo número-->
<html>
<body onload= "alert('Olá! Vamos calcular a área de um objeto. Clique no botão &quot Calcule a área &quot para começarmos.')">


<p>Para calcularmos a área de uma superfície, geralmente,<br/> multiplicamos a base (b) pela altura (h) do objeto.</p>

<p id="demo"></p>
  
<button onclick ="myFunction();">Calcule a área</button>
  
<script>
function myFunction() {                           
  var x = parseFloat(prompt("Insira um número"));
  var y = parseFloat(prompt("Agora outro número"));
 
 	if (typeof x === 'number' && typeof y === 'number'  ) {document.getElementById("demo").innerHTML = "O resultado é: " + (x*y);}
	else  { document.getElementById("demo").innerHTML = "Por favor, insira números.";}
 	alert('Caso queira repetir o cálculo, aperte ENTER.');
  }
</script>
</body>
</html>

Troquei o parseInt() por parseFloat() para o usuário calcular números reais.
Multiplica dois números reais e exibe o resultado na div "demo". Caso o usuário queira repetir o cálculo, basta apertar ENTER.

Sei que não resolve seu problema, mas é porque ao ler sobre alert() e prompt() e tipos de dados em JavaScript, reparei que o método prompt() irá interpretar o valor recebido como string  e ao colocar parseInt() (ou float())  antes do prompt(), você faz a janela interpretar o string como um number data type. O problema disso está na interpretação final da função condicional: SE x for igual a um número e y também, então calcule, SENÃO diga para o usuário inserir números. Bom, acontece que NaN é um dado do tipo número,  por isso o else não irá funcionar aqui.
"Mas cara, se era pra não mostrar solução, por que então colocar isso aqui?" É que estou aprendendo também. Rode esse novo código, por favor, quem sabe você não chegue a solução primeiro? 

 

Editado por ghostdancing
Reescrevi o código

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque um botão limpar imputs.

Verifique se isso resolve:

function limparDados(){
inputResultado.value = "";
calculo.la= 0;
calculo.al = 0;
calculo.calcularArea = null;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

[RESOLVIDO] @admin

<!DOCTYPE html>
<!--Multiplica dois números reais e exibe o resultado na div "demo". 
Caso o usuário queira repetir o cálculo, basta apertar ENTER.-->
<html>
<body onload= "alert('Olá! Vamos calcular a área de um objeto. Clique no botão &quot Calcule a área &quot para começarmos.')">


<p>Para calcularmos a área de uma superfície, geralmente,<br/> 
  multiplicamos a base (b) pela altura (h) do objeto.</p>

<p id="demo"></p>
  
<button onclick ="myFunction();">Calcule a área</button>
  
<script>
function myFunction() {                           
  var x = parseFloat(prompt("Insira a base do objeto"));
  var y = parseFloat(prompt("Agora a altura do objeto"));
  document.getElementById("demo").innerHTML = "A área do objeto é: " + (x*y);
    
 if (isNaN(x) || isNaN(y) || isNull(x) || isNull(y))
 {  document.getElementById("demo").innerHTML =  "Por favor, insira números.";}

 alert('Caso queira repetir o cálculo, aperte ENTER.');
  }
</script>
</body>
</html>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por juniormatrix
      Olá
       
      Achei esse script aqui no fórum mesmo:
       
      $.validator.addMethod( "customEmail", function (value, element) { return this.optional(element) || /^[\w-\.]+@fulano\.com\.br$/i.test(value); }, "Por favor, insira um e-mail válido com o domínio @fulano.com.br" ); $("#formulario").validate({ ignore: ".ignore", rules: { empresa: { required: true }, nome: { required: true }, contato: { required: true }, celular: { required: true }, email: { required: true, email: true, customEmail: true }, }, }); Testei e funcionou perfeitamente, mas gostaria que liberasse mais e-mails válidos, ao invés de apenas um.

      Tem como fazer? 
       
      Se alguém puder ajudar, fico muito grato.
    • Por Alessandro Bodão
      Salve galerinha, passando pra mostrar pra vocês o novo projeto de marca que a Jatobá Estúdio desenvolveu, espero que gostem.   https://www.behance.net/gallery/166555627/Fernanda-Pinheiro-Nutricionista-Esportiva
    • Por rogerblower
      Boas pessoal, estou precisando de um calendário para agenda com crud para agendamento, mas teria que ser free.
      Obrogado.
    • Por Sapinn
      Fala galera! Tenho um site que possui alguns icones que são puxados da biblioteca flaticon , o problema é que de uma hora pra outra esses icones pararam de aparecer. No meu ambiente local funciona, mas no ambiente de produção eles não aparecem e eu recebo o seguinte erro no console: Failed to load resource: the server responded with a status of 404 () 
       
      Alguém saberia como resolver isso?
    • Por mateus.andriollo
      Carrego um conteudo Ajax e junto com ele vem HTML e JS, existe um marcador que está relacionado a um elemento HTML, quando eu clico e este elemento tem um atributo exemplo data-onload="funcaoOla()" esta função tbm carregada pelo ajax deve ser executada.
       
      Dúvida como eu faço uma chama de função desta forma, seria como exec("funcaoOla")
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.