Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mylla D.

Calculadora em HTML/Javascript sem eval function

Recommended Posts

Oi gente ^^

 

Tenho que fazer uma calculadora em javascript que só faça soma e subtração, sem usar a função eval!

Já olhei em 8475853443753450642 fóruns e não encontrei nada que pudesse me ajudar efetivamente. O pessoal pra resolver o problema de ter duas variáveis somando, acaba usando dois <input type="text"> só que eu só posso usar um... realmente não estou conseguindo desenvolver esse código, se alguém puder ajudar POR FAVOR AJUDE hahaha tenho até as 22:00 pra entregar esta bagaça.

 

O que eu tenho por enquanto é isso (com eval):

 

-----------------HTML-----------------

 

<form name="form">
<table>
<tr>
<input type="text" id="tela">
</tr>
<tr>
<td><input type="button" value="7" onclick="verConta(value);"></td>
<td><input type="button" value="8" onclick="verConta(value);"></td>
<td><input type="button" value="9" onclick="verConta(value);"></td>
</tr>
<tr>
<td><input type="button" value="4" onclick="verConta(value);"></td>
<td><input type="button" value="5" onclick="verConta(value);"></td>
<td><input type="button" value="6" onclick="verConta(value);"></td>
</tr>
<tr>
<td><input type="button" value="1" onclick="verConta(value);"></td>
<td><input type="button" value="2" onclick="verConta(value);"></td>
<td><input type="button" value="3" onclick="verConta(value);"></td>
</tr>
<tr>
<td><input type="button" value="-" onclick="verConta(value);"></td>
<td><input type="button" value="0" onclick="verConta(value);"></td>
<td><input type="button" value="+" onclick="verConta(value);"></td>
</tr>
<tr>
<td><input type="button" value="CL" onclick="CL()"></td>
<td><input type="button" value="=" onclick="verResultado();"></td>
<td><input type="button" value=""></td>
</tr>
</table>
</form>
-----------------JAVASCRIPT-----------------
function verConta(valor){
document.getElementById('tela').value += valor;
}
function CL(){
document.getElementById('tela').value ="";
}
function verResultado(valor){
var total = 0;
total = document.getElementById('tela').value;
CL();
document.getElementById('tela').value = eval(total);
}
:(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não foi muito específico. Digitei um bloco de comandos adicionais no seu código para ver se entende ele. (este é um método um pouco amplo para o usuário declarar o número digitado - fiz um tamanho limitado que aceita apenas 5 números)

var numberOrder=[0,0,0,0,0];//5. Pode mais se quiser, de acordo com os loops.

function verConta(valor){
    var i;
    valor=parseFloat(valor);
    for(i=0;5>i;i++){
        if(numberOrder[i]===0){
            if(numberOrder[i+1]!==0){
                //Valor adicionado à sequência...
                numberOrder[i]=valor;
                break
            }
        }else{
            break
        }
    }
    var numberToAdd,
        parsedNumber=0;
    //Interpretando a sequência.
    //quinta ordem (dezena de milhar)
    numberToAdd=[0,10000,20000,30000,40000,50000,60000,70000,80000,90000];
    parsedNumber+=numberToAdd[numberOrder[0]];
    //quarta ordem (milhar)
    numberToAdd=[0,1000,2000,3000,4000,5000,6000,7000,8000,9000];
    parsedNumber+=numberToAdd[numberOrder[1]];
    //terceira ordem (centena)
    numberToAdd=[0,100,200,300,400,500,600,700,800,900];
    parsedNumber+=numberToAdd[numberOrder[2]];
    //segunda ordem (dezena)
    numberToAdd=[0,10,20,30,40,50,60,70,80,90];
    parsedNumber+=numberToAdd[numberOrder[3]];
    //primeira ordem (unidade)
    parsedNumber+=numberOrder[4];
    document.getElementById("tela").value=parsedNumber
}

function CL(){
    numberOrder=[0,0,0,0,0];
    document.getElementById("tela").value=""
}


function verResultado(valor){
    CL()
    //...
}

Isso é base para digitar o número. PS: o exemplo do usuário acima tem um código diferente, talvez seja mais prático.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
    • Por Giovanird
      Olá a todos!
      Tenho uma pagina que possui uma DIV onde coloquei uma pagina PHP.
      Uso a função setInterval para atualizar a pagina inclusa dentro da DIV.
      O problema é que ao acessar o site , a DIV só me mostra a pagina inclusa somente quando completo o primeiro minuto.
      Preciso que a pagina inclusa já inicie carregada
       
      Meu código JavaScript e a DIV com a pagina PHP
       
      <script> function atualiza(){ var url = 'direita.php'; $.get(url, function(dataReturn) { $('#direita').html(dataReturn); }); } setInterval("atualiza()",60000); </script> <div> <span id="direita"></span> </div>  
    • Por Thiago Duarte
      Oi, gostaria de arrastar imagem e ao soltar formar bloco html, meu bloco de html ficaria com nome, content-1.html, content-2.html, etc
       
      Alguem pode me ajudar?
    • Por juliosonic
      Boa noite..
      Estou desenvolvendo um site de https://www.maithunatantra.com.br/ e estou com um duvida sobre o menu de navegação da versão mobile.
      O menu que tem o dropdown "Terapeutas" e "Terapias" quando clico em cima ele expande como deve ser, mas quando clico denovo para recolher os submenus
      nao acontece nada.. segue o trecho do codigo do menu..
      <div class="collapse navbar-collapse" id="navbarsExample09">             <ul class="navbar-nav ml-auto">               <li class="nav-item  active"><a class="nav-link" href="index.html">Home</a></li>               <li class="nav-item  active"><a class="nav-link" href="about-us.html">Quem Somos</a></li>               <li class="nav-item dropdown1">                     <a class="nav-link dropdown-toggle" data-toggle="dropdown1" href="#">Terapeutas</a>                     <ul class="dropdown-menu">                         <li><a class="dropdown-item" href="terapeuta-julio-cezar.html">Julio Cezar</a></li>                         <li><a class="dropdown-item" href="terapeuta-pamela-priscila.html">Pamela Priscila</a></li>                     </ul>                                    </li>               <li class="nav-item dropdown">                     <a class="nav-link dropdown-toggle" data-toggle="dropdown1" href="#">Terapias</a>                     <ul class="dropdown-menu" aria-labelledby="dropdown01">                         <li><a class="dropdown-item" href="o-que-e-reiki.html">O que é Reiki</a></li>                         <li><a class="dropdown-item" href="beneficios-reiki.html">Benefícios do Reiki</a></li>                         <li><a class="dropdown-item" href="principios-reiki.html">Princípios do Reiki</a></li>                         <li><a class="dropdown-item" href="animais-reiki.html">Reiki em Animais</a></li>                         <li><a class="dropdown-item" href="animais-reiki.html">Estudos Sobre Reiki</a></li>                         <li><a class="dropdown-item" href="terapia-massagem-tantrica.html">Terapia Tântrica</a></li>                     </ul>               </li>               <li class="nav-item  active"><a class="nav-link" href="blog.html">Blog</a></li>                <li class="nav-item"><a class="nav-link" href="contato.html">Contato</a></li>             </ul>         </div>  
      Massagem Tantrica em Curitiba
      Tantra Curitiba
      Massagem Tântrica
      Tantra
      Julio Darshan

      Obrigado
      Att
      Julio Cezar
       
       
       
    • Por belann
      Olá!
       
      Estou fazendo o upload de arquivos com fetch dessa forma
      fetch(url, {
              method: 'POST',
              headers: {'Content-Type': 'multipart/form-data',},
              body: formData 
          }).catch((error) => (console.log("Problemas com o Upload"), error));
       
      estou usando input type=file
      e criando uma const formData = new FormData(); 
      mas não faz e não dá nenhum erro.
      estou fazendo o upload com a url="http://localhost/dashboard/dados".
×

Informação importante

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