Jump to content

POWERED BY:

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);
 
            } 

Share this post


Link to post
Share on other 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? 

 

Edited by ghostdancing
Reescrevi o código

Share this post


Link to post
Share on other sites

Coloque um botão limpar imputs.

Verifique se isso resolve:

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

Share this post


Link to post
Share on other 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>

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By 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.
    • By 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
    • By rogerblower
      Boas pessoal, estou precisando de um calendário para agenda com crud para agendamento, mas teria que ser free.
      Obrogado.
    • By 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?
    • By 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")
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.