Ir para conteúdo
Fórum Script Brasil
  • 0

Pra quem têm paciência e tempo livre, uma calculadora!


LucasConstantino

Pergunta

EDITEI TODO O CÓDIGO, É INTEIRAMENTE NOVO, MAS TRATA-SE DA MESMA IDÉIA

_______________________

A calculadora possui algumas poucas imagens, então, ta aqui a hospedada completa:

http://recalculator.webs.com/

_______________________

Olá! Sou novo em JavaScript e em programação no geral. Fiz uma calculadora com a linguagem e gostaria que vocês dessem uma olhada, e, se encontrarem erros ou coisas a melhorar, me avisem!

o código vem junto com o código HTML, assim você pode colar num texto e salvar em HTML e visualizar no seu browser!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="PT-BR"><meta http-equiv="Content-Language" content="PT-BR">
<meta name="description" content="&Oacutetima e din&acircmica calculadora on-line">
<meta name="keywords" content="calculadora calucadora calculator recalculator recalculadora soma subtracao divisao multiplicacao raiz quadrado potencia subtrair dividir multiplicar sum plus divide times count conta calculo calc online">
<meta name="URL" content="http://www.recalculator.webs.com">
<title>Calculadora do Lucas</title>
<style type="text/css">
<!--
body {
    background-color: #000000;
    background-image: url(images/backpattern.jpg);
    background-repeat: repeat;
    margin-left: 0px;
    margin-top: 0px;
}
.button {
    background-image: url(images/normal.jpg);
    height: 53px;
    width: 80px;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 24px;
    color: #FFFFFF;
    line-height: 50px;
    text-align: center;
    cursor: default;
}
.button:hover { background-image: url(images/rollover.jpg); }
.button:active { background-image: url(images/clicked.jpg); }

.plusbutton {
    background-image: url(images/+normal.jpg);
    height: 109px;
    width: 80px;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 24px;
    color: #FFFFFF;
    line-height: 108px;
    text-align: center;
    cursor: default;
}
.plusbutton:hover { background-image: url(images/+rollover.jpg); }
.plusbutton:active { background-image: url(images/+clicked.jpg); }

.equalsbutton {
    background-image: url(images/eqnormal.jpg);
    height: 53px;
    width: 162px;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 24px;
    color: #FFFFFF;
    line-height: 50px;
    text-align: center;
    cursor: default;
}
.equalsbutton:hover { background-image: url(images/eqrollover.jpg); }
.equalsbutton:active { background-image: url(images/eqclicked.jpg); }

.bfbutton {
    background-image: url(images/bfnormal.jpg);
    height: 53px;
    width: 40px;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 18px;
    color: #FFFFFF;
    line-height: 50px;
    text-align: center;
    float: left;
    cursor: default;
}
.bfbutton:hover { background-image: url(images/bfrollover.jpg); }
.bfbutton:active { background-image: url(images/bfclicked.jpg); }

#rightside {
    width: 330px;
    padding: 10px;
    height: 386px;
    background-image: url(images/backcalc.png);
    float: left;
}

.semborda {border-collapse:collapse}
.semborda tr td {border:0px;}

#formin {
    border-width: 0;
    background-color: #000000;
    width: 240px;
    height: 50px;
    float: right;
    clip: rect(auto,auto,auto,auto);
    font-family: "Comic Sans MS", "BankGothic Lt BT";
    font-size: 26px;
    color: #F3F3F3;
    text-align: right;
    letter-spacing: 5px;
    padding-top: 0px;
}
#posformin {
    height: 53px;
}
#container {
    margin-right: auto;
    margin-left: auto;
    width: 920px;
}
#resultsdiv {
    width: 230px;
    height: 346px;
    margin-top: 20px;
    background-image: url(images/backresults.png);
    padding-top: 10px;
    padding-right: 12px;
    padding-bottom: 10px;
    padding-left: 8px;
}
#bottom {
    clear: both;
    width: 600px;
}
#leftside {
    height: 406px;
    width: 250px;
    float: left;
}
#marcacao {
    border-width: 0;
    background-color: #000000;
    float:left;
    width: 47px;
    height: 340px;
    color: #EAEAEA;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 18px;
    text-align: center;
    overflow: hidden;
}
#resultados {
    border-width: 0;
    background-color: #000000;
    float:right;
    width: 160px;
    height: 340px;
    color: #EAEAEA;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 18px;
    text-align: center;
    scrollbar-face-color: gray;/*face*/
    scrollbar-arrow-color:white;/*a seta*/
    scrollbar-track-color:black;/*no meio*/
    scrollbar-3dlight-color: black;/*como highlight(mas sempre boto outra*/
    scrollbar-highlight-color:black;/*como 3dligh*/
    scrollbar-shadow-color:black;/*sombra*/
    scrollbar-darkshadow-color:black;/*sombra escura*/
}
.style2 {
    color: #666666;
    font-family: Geneva, Arial, Helvetica, sans-serif;
}
.style3 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    color: #666666;
    font-size: 16px;
}
#ad_down {
    width: 730px;
    margin-top: 20px;
    margin-right: auto;
    margin-left: auto;
}
#adsearch {
    margin-bottom: 20px;
}
#ad_left {
    float: left;
    height: 600px;
    width: 120px;
}
#ad_right {
    float: left;
    height: 600px;
    width: 120px;
    margin-left: 40px;
}
#calculadora {
    float: left;
    margin-left: 40px;
}


-->
</style>

<script type="text/javascript">
//Inicia o código JavaScript

    //Declarando variáveis globais:
    
    calculofinal = undefined
    x = undefined
    y = undefined
    segundo = 0
    minuto = 0
    go = 0
    num = 0
    tempoatual = "00:00"
    //fim das variáveis globais.
    
    
    //Declarando GRAVADOR
    
    gravador = new Array()
    pos = 0
    posfinal = 0
    
    gravador[pos] = new dados (calculofinal, x, y, segundo, minuto, go, num, tempoatual, "", "", "", "")    

function dados(tcalculofinal,tx,ty,tsegundo,tminuto,tgo,tnum,ttempoatual,tequals,tformin,tresultados, tmarcacao) {

    this.tcalculofinal = tcalculofinal;
    this.tx = tx;
    this.ty = ty;
    this.tsegundo = tsegundo;
    this.tminuto = tminuto;
    this.tgo = tgo;
    this.tnum = tnum;
    this.ttempoatual = ttempoatual;
    this.tequals = tequals;
    this.tformin = tformin;
    this.tresultados = tresultados;
    this.tmarcacao = tmarcacao;

}

function set() {
    pos = pos+1
    posfinal = pos
    gravador[pos] = new dados(calculofinal,x,y,segundo,minuto,go,num,tempoatual,document.getElementById("equals").onclick,document.getElementById("formin").value,document.getElementById("resultados").value,document.getElementById("marcacao").value)
}

function back() {
    if (pos > 0){
pos = pos-1
     calculofinal = gravador[pos].tcalculofinal
    x = gravador[pos].tx
    y = gravador[pos].ty
    segundo = gravador[pos].tsegundo
    minuto = gravador[pos].tminuto
    go = gravador[pos].tgo
    num = gravador[pos].tnum
    tempoatual = gravador[pos].ttempoatual
if (pos == 0) {document.getElementById("equals").onclick = undefined}
if (pos !== 0){document.getElementById("equals").onclick = gravador[pos].tequals}
    document.getElementById("formin").value = gravador[pos].tformin
    document.getElementById("resultados").value = gravador[pos].tresultados
    document.getElementById("marcacao").value = gravador[pos].tmarcacao

    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Focar no painél
    document.getElementById("formin").focus()
}
}

function forward() {
    if (pos < posfinal){
pos = pos+1
    calculofinal = gravador[pos].tcalculofinal
    x = gravador[pos].tx
    y = gravador[pos].ty
    segundo = gravador[pos].tsegundo
    minuto = gravador[pos].tminuto
    go = gravador[pos].tgo
    num = gravador[pos].tnum
    tempoatual = gravador[pos].ttempoatual
    document.getElementById("equals").onclick = gravador[pos].tequals
    document.getElementById("formin").value = gravador[pos].tformin
    document.getElementById("resultados").value = gravador[pos].tresultados
    document.getElementById("marcacao").value = gravador[pos].tmarcacao
    
    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Focar no painél
    document.getElementById("formin").focus()
}
}

    //Fim de GRAVADOR
    


    //MARCACAOPOS function. Ajusta a posição do marcador com relação ao "resultados".
function marcacaopos () {
    document.getElementById("marcacao").scrollTop = document.getElementById("resultados").scrollTop
}




    //KEYPRESSED function. Retorna ou não a letra digitada no formin.
function keypressed( obj , e ) {
    var tecla = ( window.event ) ? e.keyCode : e.which;
    var texto = document.getElementById("formin").value
    var indexvir = texto.indexOf(",")
    var indexpon = texto.indexOf(".")

    if (tecla == 43) {
         getplus()
         return false;
    }
    if (tecla == 45) {
         getdiff()
         return false;
    }    
    if (tecla == 42) {
         gettimes()
         return false;
    }    
    if (tecla == 47) {
         getdiv()
         return false;
    }
    if (tecla == 37) {
         getpcent()
         return false;
    }    

    else if ( tecla == 8 || tecla == 0)
        return true;
    else if ( tecla != 44 && tecla != 46 && tecla < 48 || tecla > 57 )
        return false;
    if (tecla == 44) { if (indexvir !== -1 || indexpon !== -1) {return false} }
    if (tecla == 46) { if (indexvir !== -1 || indexpon !== -1) {return false} }
}


    
    
    
    //TIME function. Cronometra o tempo desde a primeira aplicação. <---------------------------------------------
function time() {
    if (go == 1) {
        if (segundo < 59){
            segundo++
        }
        else if (segundo == 59) {
            segundo = 0
            if (minuto < 59) {
                minuto++
            }
            else if (minuto == 59) {
                minuto = 0
            }
        }
        
        if(segundo < 10 && minuto < 10) {
            tempoatual = "0" + minuto + ":0" + segundo
        }
        else if(segundo > 9 && minuto < 10) {
            tempoatual = "0" + minuto + ":" + segundo
        }
        else if(segundo < 10 && minuto > 9) {
            tempoatual = minuto + ":0" + segundo
        }   
        else if(segundo > 9 && minuto > 9) {
            tempoatual = minuto + ":" + segundo
        }
    }
}
    //STARTTIME function. Faz rodar ou parar a função TIME. <-----------------------------------------------------
function starttime (id) {
    go = id
}
    
    
    
    
    
    //FOCARPAINEL function. Foca o painél. <----------------------------------------------------------------------
function focarpainel() {
    document.getElementById("formin").focus()
}


    //CLEANPAINEL function. Limpa apenas o que estiver escrito no painél nesse exato momento. <-------------------
function cleanpainel() {

    document.getElementById("formin").value = ""
    
    //Focar no painél
    document.getElementById("formin").focus()
}


    //CLEANALL function. Limpa todos os dados concebidos até agora. <---------------------------------------------
function cleanall() {
    calculofinal = undefined
    x = undefined
    y = undefined
    segundo = 0
    minuto = 0
    go = 0
    num = 0
    tempoatual = "00:00"
    pos = 0
    posfinal = 0
    
    document.getElementById("resultados").value = ""
    document.getElementById("formin").value = ""

    document.getElementById("equals").onclick = undefined

    //Limpar MARCACAO
    document.getElementById("marcacao").value = ""
    //Focar no painél
    document.getElementById("formin").focus()
}


    //INSERNUMBER function. Insere o número clicado no painél. <--------------------------------------------------
function insertnumber(n) {

    var texto = document.getElementById("formin").value
    
    if (texto.length < 10) {
        var texto = texto + n
        document.getElementById("formin").value = texto
    }
    
    //Focar no painél
    document.getElementById("formin").focus()
}


    //DECIMAR function. Adiciona a vírgula ao número no painél. <-------------------------------------------------
function decimar() {
    
    var texto = document.getElementById("formin").value
    
    if (texto == "") {
        var texto = "0,"
    }
    else if (texto !== "") {
        var posicao = texto.indexOf(",")
        if (posicao == -1) {
            var texto = texto + ","
        }
    }
    
    document.getElementById("formin").value = texto
    
    //Focar no painél
    document.getElementById("formin").focus()
}


    //NEGATIVAR function. Multiplica o número em formin por -1. <-------------------------------------------------
function negativar() {

    var texto = document.getElementById("formin").value
    var firstchar = texto.charAt(0)
    
    if (firstchar !== "-") {
        var texto = "-" + texto
    }
    else if (firstchar == "-") {
        var texto = texto.substring(1,texto.length)
    }
    document.getElementById("formin").value = texto
    
    //Focar no painél
    document.getElementById("formin").focus()
}





//----------------------------------------------------------------------------------------------------    GETPLUS function. Pega o valor para somar ao próximo.

function getplus() {
    
    go = 1
    
    var texto = document.getElementById("formin").value
    var result = document.getElementById("resultados").value
    
    //Verificando se operação passada está finalizada
        var sizeresult = result.length
        var sizecalc = calculofinal+""
        var sizecalc = sizecalc.length
        var calctext = result.substring(sizeresult-sizecalc, sizeresult)
        var calctext = parseFloat(calctext)
        if (calctext == calculofinal) {
            if (texto !== "") {
                document.getElementById("equals").onclick = undefined
            }
        }
        
    if (document.getElementById("equals").onclick == undefined) {
        if (texto == "-") {
            alert("Valor invalido!")
        }
        else if (texto == "0,") {
            x = 0
            texto = 0
        }
        else if (texto !== "") {
            var numero = texto.replace(",",".")
            x = parseFloat(numero)
        }
        else if (texto == "") {
            alert ("O valor não foi colocado")
        }
        
        if (texto !== "-" && texto !== ""){
            
            if (calctext == calculofinal) {
                var result = result + "\n\n"
                calculofinal = undefined
            }
            
            var result = result + texto + " +"
            
            document.getElementById("resultados").value = result
            
            document.getElementById("equals").onclick = plus
            
            //Adicionar ao MARCACAO
            if (num == 0) {
                num = num+1
                document.getElementById("marcacao").value = num + "\n"
            }
            else if (num !== 0) {
                num = num+1
                document.getElementById("marcacao").value = document.getElementById("marcacao").value + "\n\n" + num + "\n"
            }
        }
        
    }
    else if (document.getElementById("equals").onclick !== undefined) {
        
        var sizeresult = result.length
        var letra = result.charAt(sizeresult-1)
        
        if (letra !== "-" && letra !== "+" && letra !== "/" && letra !== "x" && letra !== "a" && letra !== "z" && letra !== "e") {
            if (texto == "-") {
                alert("Valor invalido")
            }
            else if (texto !== "") {
                var numero = texto.replace(",",".")
                x = parseFloat(numero)
            }
            else if (texto == "") {
                x = calculofinal
            }
            
            if (texto !== "-") {    
                var result = result + "\n\n" + x + " +"
                
                document.getElementById("resultados").value = result
                
                document.getElementById("equals").onclick = plus
                
                //Adicionar ao MARCACAO
                num = num+1
                document.getElementById("marcacao").value = document.getElementById("marcacao").value+"\n\n" + num + "\n"                
            }
        }        
        else if (letra == "-" || letra == "+" || letra == "/" || letra == "x" || letra == "a" || letra == "z" || letra == "e") {
            if (texto == "-") {
                alert ("Valor invalido!")
            }
            else if (texto !== "") {
                if (calculofinal !== undefined) {
                    x = calculofinal
                }
                
                var numero = texto.replace(",",".")
                y = parseFloat(numero)
                
                if (letra == "+") {calculofinal = x + y}
                else if (letra == "-") {calculofinal = x - y}
                else if (letra == "/") {calculofinal = x / y}
                else if (letra == "x") {calculofinal = x * y}
                else if (letra == "a") {calculofinal = Math.pow(x, y)}
                else if (letra == "z") {calculofinal = Math.pow(x, 1/y)}
                else if (letra == "e") {calculofinal = x*(y/100)}
                
                if (letra == "e") {
                    var result = result + " " + y + "%" + "\n" + "=" + "\n" + calculofinal + "\n\n" + calculofinal + " +"
                }
                else {
                    var result = result + " " + y + "\n" + "=" + "\n" + calculofinal + "\n\n" + calculofinal + " +"
                }
                
                document.getElementById("resultados").value = result
                
                document.getElementById("equals").onclick = plus
                
                //Adicionar ao MARCACAO
                num = num+1
                document.getElementById("marcacao").value = document.getElementById("marcacao").value + tempoatual + "\n\n\n" + num + "\n"        
            }
            else if (texto == "") {
                if (letra == "-" || letra == "+" || letra == "/" || letra == "x"){
                    var result = result.substring(0, sizeresult-1) + "+"
                }
                else if (letra == "a"){
                    var result = result.substring(0, sizeresult-9) + "+"
                }
                else if (letra == "z"){
                    var result = result.substring(0, sizeresult-4) + "+"
                }
                else if (letra == "e"){
                    var result = result.substring(0, sizeresult-5) + "+"
                }
                
                document.getElementById("resultados").value = result
                
                document.getElementById("equals").onclick = plus
            }
        }
    }    
    
    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Limpar painél.
    document.getElementById("formin").value = ""
    //Focar no painél
    document.getElementById("formin").focus()
    //set BACK
    set()
}

    //PLUS function. Soma o valor "x" ao valor "y". <-------------------------------------------------------------
function plus() {

    var texto = document.getElementById("formin").value
    var result = document.getElementById("resultados").value
    
    if (texto == "-"){
        alert ("Valor invalido")
    }
    else if (texto !== "") {
        var numero = texto.replace(",",".")
        y = parseFloat(numero)
    }
    else if (texto == "") {
        if (y == undefined) {
            y = x
        }
    }
    
    if (texto !== "-") {    
        if (calculofinal == undefined) {
            var calculo = x + y
            calculofinal = calculo
        }
        else if (calculofinal !== undefined) {
            x = calculofinal
            var calculo = x + y
            calculofinal = calculo
        }

        var result = document.getElementById("resultados").value
        var result = result + " " + y + "\n" + "=" + "\n" + calculo
        
        document.getElementById("resultados").value = result
        
        document.getElementById("equals").onclick = plusagain
    }

    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Limpar painél.
    document.getElementById("formin").value = ""
    //Focar no painél
    document.getElementById("formin").focus()
    //Ajustar MARCACAO
    document.getElementById("marcacao").value = document.getElementById("marcacao").value + tempoatual + "\n"
    //set BACK
    set()
}

    //PLUSAGAIN function. Permite repitir a operação PLUS. <------------------------------------------------------
function plusagain(){
    x = calculofinal
    var calculoanterior = calculofinal
    
    var texto = document.getElementById("formin").value
    
    if (texto == "-"){
        alert ("Valor inválido")
    }
    else if (texto !== "") {
        var numero = texto.replace(",",".")
        y = parseFloat(numero)
    }
    
    if (texto !== "-") {
        var calculo = x+y
        calculofinal = calculo
        
        var result = document.getElementById("resultados").value
        var result = result + "\n\n" + calculoanterior + " + " + y + "\n" + "=" + "\n" + calculo
        
        document.getElementById("resultados").value = result
    }

    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Limpar painél.
    document.getElementById("formin").value = ""
    //Focar no painél
    document.getElementById("formin").focus()
    //Ajustar MARCACAO
    num = num+1
    document.getElementById("marcacao").value = document.getElementById("marcacao").value + "\n\n" + num + "\n" + tempoatual + "\n"
    //set BACK
    set()
}




//----------------------------------------------------------------------------------------------------    GETDIFF function. Pega o valor para subtrair ao próximo.

function getdiff() {
    
    go = 1
    
    var texto = document.getElementById("formin").value
    var result = document.getElementById("resultados").value
    
    //Verificando se operação passada está finalizada
        var sizeresult = result.length
        var sizecalc = calculofinal+""
        var sizecalc = sizecalc.length
        var calctext = result.substring(sizeresult-sizecalc, sizeresult)
        var calctext = parseFloat(calctext)
        if (calctext == calculofinal) {
            if (texto !== "") {
                document.getElementById("equals").onclick = undefined
            }
        }
        
    if (document.getElementById("equals").onclick == undefined) {
        if (texto == "-") {
            alert("Valor invalido!")
        }
        else if (texto == "0,") {
            x = 0
            texto = 0
        }
        else if (texto !== "") {
            var numero = texto.replace(",",".")
            x = parseFloat(numero)
        }
        else if (texto == "") {
            alert ("O valor não foi colocado")
        }
        
        if (texto !== "-" && texto !== ""){
            
            if (calctext == calculofinal) {
                var result = result + "\n\n"
                calculofinal = undefined
            }
            
            var result = result + texto + " -"
            
            document.getElementById("resultados").value = result
            
            document.getElementById("equals").onclick = diff
            
            //Adicionar ao MARCACAO
            if (num == 0) {
                num = num+1
                document.getElementById("marcacao").value = num + "\n"
            }
            else if (num !== 0) {
                num = num+1
                document.getElementById("marcacao").value = document.getElementById("marcacao").value + "\n\n" + num + "\n"
            }
        }
        
    }
    else if (document.getElementById("equals").onclick !== undefined) {
        
        var sizeresult = result.length
        var letra = result.charAt(sizeresult-1)
        
        if (letra !== "-" && letra !== "+" && letra !== "/" && letra !== "x" && letra !== "a" && letra !== "z" && letra !== "e") {
            if (texto == "-") {
                alert("Valor invalido")
            }
            else if (texto !== "") {
                var numero = texto.replace(",",".")
                x = parseFloat(numero)
            }
            else if (texto == "") {
                x = calculofinal
                
            }
            
            if (texto !== "-") {    
                var result = result + "\n\n" + x + " -"
                
                document.getElementById("resultados").value = result
                
                document.getElementById("equals").onclick = diff
                
                //Adicionar ao MARCACAO
                num = num+1
                document.getElementById("marcacao").value = document.getElementById("marcacao").value+"\n\n" + num + "\n"                
            }
        }        
        else if (letra == "-" || letra == "+" || letra == "/" || letra == "x" || letra == "a" || letra == "z" || letra == "e") {
            
            if (texto == "-") {
                alert ("Valor invalido!")
            }
            else if (texto !== "") {
                if (calculofinal !== undefined) {
                    x = calculofinal
                }
                
                var numero = texto.replace(",",".")
                y = parseFloat(numero)
                
                if (letra == "+") {calculofinal = x + y}
                else if (letra == "-") {calculofinal = x - y}
                else if (letra == "/") {calculofinal = x / y}
                else if (letra == "x") {calculofinal = x * y}
                else if (letra == "a") {calculofinal = Math.pow(x, y)}
                else if (letra == "z") {calculofinal = Math.pow(x, 1/y)}
                else if (letra == "e") {calculofinal = x*(y/100)}
                
                if (letra == "e") {
                    var result = result + " " + y + "%" + "\n" + "=" + "\n" + calculofinal + "\n\n" + calculofinal + " -"
                }
                else {
                    var result = result + " " + y + "\n" + "=" + "\n" + calculofinal + "\n\n" + calculofinal + " -"
                }
                
                document.getElementById("resultados").value = result
                
                document.getElementById("equals").onclick = diff
                
                //Adicionar ao MARCACAO
                num = num+1
                document.getElementById("marcacao").value = document.getElementById("marcacao").value + tempoatual + "\n\n\n" + num + "\n"        
            }
            else if (texto == "") {
                if (letra == "-" || letra == "+" || letra == "/" || letra == "x"){
                    var result = result.substring(0, sizeresult-1) + "-"
                }
                else if (letra == "a"){
                    var result = result.substring(0, sizeresult-9) + "-"
                }
                else if (letra == "z"){
                    var result = result.substring(0, sizeresult-4) + "-"
                }
                else if (letra == "e"){
                    var result = result.substring(0, sizeresult-5) + "-"
                }
                
                document.getElementById("resultados").value = result
                
                document.getElementById("equals").onclick = diff
            }
        }
    }    
    
    //--------------------    Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //--------------------    Limpar painél.
    document.getElementById("formin").value = ""
    //-------------------- Focar no painél
    document.getElementById("formin").focus()
    //set BACK
    set()
}

    //DIFF function. Subtrai do valor "x" o valor "y". <----------------------------------------------------------
function diff() {

    var texto = document.getElementById("formin").value
    var result = document.getElementById("resultados").value
    
    if (texto == "-"){
        alert ("Valor invalido")
    }
    else if (texto !== "") {
        var numero = texto.replace(",",".")
        y = parseFloat(numero)
    }
    else if (texto == "") {
        if (y == undefined) {
            y = x
        }
    }
    
    if (texto !== "-") {    
        if (calculofinal == undefined) {
            var calculo = x - y
            calculofinal = calculo
        }
        else if (calculofinal !== undefined) {
            x = calculofinal
            var calculo = x - y
            calculofinal = calculo
        }

        var result = document.getElementById("resultados").value
        var result = result + " " + y + "\n" + "=" + "\n" + calculo
        
        document.getElementById("resultados").value = result
        
        document.getElementById("equals").onclick = diffagain
    }

    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Limpar painél.
    document.getElementById("formin").value = ""
    //Focar no painél
    document.getElementById("formin").focus()
    //Ajustar MARCACAO
    document.getElementById("marcacao").value = document.getElementById("marcacao").value + tempoatual + "\n"
    //set BACK
    set()
}

    //DIFFAGAIN function. Permite repitir a operação DIFF. <------------------------------------------------------
function diffagain(){
    x = calculofinal
    var calculoanterior = calculofinal
    
    var texto = document.getElementById("formin").value
    
    if (texto == "-"){
        alert ("Valor inválido")
    }
    else if (texto !== "") {
        var numero = texto.replace(",",".")
        y = parseFloat(numero)
    }
    
    if (texto !== "-") {
        var calculo = x - y
        calculofinal = calculo
        
        var result = document.getElementById("resultados").value
        var result = result + "\n\n" + calculoanterior + " - " + y + "\n" + "=" + "\n" + calculo
        
        document.getElementById("resultados").value = result
    }

    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Limpar painél.
    document.getElementById("formin").value = ""
    //Focar no painél
    document.getElementById("formin").focus()
    //Ajustar MARCACAO
    num = num+1
    document.getElementById("marcacao").value = document.getElementById("marcacao").value + "\n\n" + num + "\n" + tempoatual + "\n"
    //set BACK
    set()
}




//----------------------------------------------------------------------------------------------------    GETTIMES function. Pega o valor para multiplicar ao próximo.

function gettimes() {
    
    go = 1
    
    var texto = document.getElementById("formin").value
    var result = document.getElementById("resultados").value
    
    //Verificando se operação passada está finalizada
        var sizeresult = result.length
        var sizecalc = calculofinal+""
        var sizecalc = sizecalc.length
        var calctext = result.substring(sizeresult-sizecalc, sizeresult)
        var calctext = parseFloat(calctext)
        if (calctext == calculofinal) {
            if (texto !== "") {
                document.getElementById("equals").onclick = undefined
            }
        }
        
    if (document.getElementById("equals").onclick == undefined) {
        if (texto == "-") {
            alert("Valor invalido!")
        }
        else if (texto == "0,") {
            x = 0
            texto = 0
        }
        else if (texto !== "") {
            var numero = texto.replace(",",".")
            x = parseFloat(numero)
        }
        else if (texto == "") {
            alert ("O valor não foi colocado")
        }
        
        if (texto !== "-" && texto !== ""){
            
            if (calctext == calculofinal) {
                var result = result + "\n\n"
                calculofinal = undefined
            }
            
            var result = result + texto + " x"
            
            document.getElementById("resultados").value = result
            
            document.getElementById("equals").onclick = times
            
            //Adicionar ao MARCACAO
            if (num == 0) {
                num = num+1
                document.getElementById("marcacao").value = num + "\n"
            }
            else if (num !== 0) {
                num = num+1
                document.getElementById("marcacao").value = document.getElementById("marcacao").value + "\n\n" + num + "\n"
            }
        }
        
    }
    else if (document.getElementById("equals").onclick !== undefined) {
        
        var sizeresult = result.length
        var letra = result.charAt(sizeresult-1)
        
        if (letra !== "-" && letra !== "+" && letra !== "/" && letra !== "x" && letra !== "a" && letra !== "z" && letra !== "e") {
            if (texto == "-") {
                alert("Valor invalido")
            }
            else if (texto !== "") {
                var numero = texto.replace(",",".")
                x = parseFloat(numero)
            }
            else if (texto == "") {
                x = calculofinal
                
            }
            
            if (texto !== "-") {    
                var result = result + "\n\n" + x + " x"
                
                document.getElementById("resultados").value = result
                
                document.getElementById("equals").onclick = times
                
                //Adicionar ao MARCACAO
                num = num+1
                document.getElementById("marcacao").value = document.getElementById("marcacao").value+"\n\n" + num + "\n"                
            }
        }        
        else if (letra == "-" || letra == "+" || letra == "/" || letra == "x" || letra == "a" || letra == "z" || letra == "e") {
            
            if (texto == "-") {
                alert ("Valor invalido!")
            }
            else if (texto !== "") {
                if (calculofinal !== undefined) {
                    x = calculofinal
                }
                
                var numero = texto.replace(",",".")
                y = parseFloat(numero)
                
                if (letra == "+") {calculofinal = x + y}
                else if (letra == "-") {calculofinal = x - y}
                else if (letra == "/") {calculofinal = x / y}
                else if (letra == "x") {calculofinal = x * y}
                else if (letra == "a") {calculofinal = Math.pow(x, y)}
                else if (letra == "z") {calculofinal = Math.pow(x, 1/y)}
                else if (letra == "e") {calculofinal = x*(y/100)}
                
                if (letra == "e") {
                    var result = result + " " + y + "%" + "\n" + "=" + "\n" + calculofinal + "\n\n" + calculofinal + " x"
                }
                else {
                    var result = result + " " + y + "\n" + "=" + "\n" + calculofinal + "\n\n" + calculofinal + " x"
                }
                
                document.getElementById("resultados").value = result
                
                document.getElementById("equals").onclick = times
                
                //Adicionar ao MARCACAO
                num = num+1
                document.getElementById("marcacao").value = document.getElementById("marcacao").value + tempoatual + "\n\n\n" + num + "\n"        
            }
            else if (texto == "") {
                if (letra == "-" || letra == "+" || letra == "/" || letra == "x"){
                    var result = result.substring(0, sizeresult-1) + "x"
                }
                else if (letra == "a"){
                    var result = result.substring(0, sizeresult-9) + "x"
                }
                else if (letra == "z"){
                    var result = result.substring(0, sizeresult-4) + "x"
                }
                else if (letra == "e"){
                    var result = result.substring(0, sizeresult-5) + "x"
                }
                
                document.getElementById("resultados").value = result
                
                document.getElementById("equals").onclick = times
            }
        }
    }    
    
    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Limpar painél.
    document.getElementById("formin").value = ""
    //Focar no painél
    document.getElementById("formin").focus()
    //set BACK
    set()
}

    //TIMES function. Multiplica o valor "x" ao valor "y". <------------------------------------------------------
function times() {

    var texto = document.getElementById("formin").value
    var result = document.getElementById("resultados").value
    
    if (texto == "-"){
        alert ("Valor invalido")
    }
    else if (texto !== "") {
        var numero = texto.replace(",",".")
        y = parseFloat(numero)
    }
    else if (texto == "") {
        if (y == undefined) {
            y = x
        }
    }
    
    if (texto !== "-") {    
        if (calculofinal == undefined) {
            var calculo = x * y
            calculofinal = calculo
        }
        else if (calculofinal !== undefined) {
            x = calculofinal
            var calculo = x * y
            calculofinal = calculo
        }

        var result = document.getElementById("resultados").value
        var result = result + " " + y + "\n" + "=" + "\n" + calculo
        
        document.getElementById("resultados").value = result
        
        document.getElementById("equals").onclick = timesagain
    }

    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Limpar painél.
    document.getElementById("formin").value = ""
    //Focar no painél
    document.getElementById("formin").focus()
    //Ajustar MARCACAO
    document.getElementById("marcacao").value = document.getElementById("marcacao").value + tempoatual + "\n"
    //set BACK
    set()
}

    //TIMESAGAIN function. Permite repitir a operação TIMES. <----------------------------------------------------
function timesagain(){
    x = calculofinal
    var calculoanterior = calculofinal
    
    var texto = document.getElementById("formin").value
    
    if (texto == "-"){
        alert ("Valor inválido")
    }
    else if (texto !== "") {
        var numero = texto.replace(",",".")
        y = parseFloat(numero)
    }
    
    if (texto !== "-") {
        var calculo = x * y
        calculofinal = calculo
        
        var result = document.getElementById("resultados").value
        var result = result + "\n\n" + calculoanterior + " x " + y + "\n" + "=" + "\n" + calculo
        
        document.getElementById("resultados").value = result
    }

    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Limpar painél.
    document.getElementById("formin").value = ""
    //Focar no painél
    document.getElementById("formin").focus()
    //Ajustar MARCACAO
    num = num+1
    document.getElementById("marcacao").value = document.getElementById("marcacao").value + "\n\n" + num + "\n" + tempoatual + "\n"
    //set BACK
    set()
}




//----------------------------------------------------------------------------------------------------    GETDIV function. Pega o valor para dividir ao próximo.

function getdiv() {
    
    go = 1
    
    var texto = document.getElementById("formin").value
    var result = document.getElementById("resultados").value
    
    //Verificando se operação passada está finalizada
        var sizeresult = result.length
        var sizecalc = calculofinal+""
        var sizecalc = sizecalc.length
        var calctext = result.substring(sizeresult-sizecalc, sizeresult)
        var calctext = parseFloat(calctext)
        if (calctext == calculofinal) {
            if (texto !== "") {
                document.getElementById("equals").onclick = undefined
            }
        }
        
    if (document.getElementById("equals").onclick == undefined) {
        if (texto == "-") {
            alert("Valor invalido!")
        }
        else if (texto == "0,") {
            x = 0
            texto = 0
        }
        else if (texto !== "") {
            var numero = texto.replace(",",".")
            x = parseFloat(numero)
        }
        else if (texto == "") {
            alert ("O valor não foi colocado")
        }
        
        if (texto !== "-" && texto !== ""){
            
            if (calctext == calculofinal) {
                var result = result + "\n\n"
                calculofinal = undefined
            }
            
            var result = result + texto + " /"
            
            document.getElementById("resultados").value = result
            
            document.getElementById("equals").onclick = div
            
            //Adicionar ao MARCACAO
            if (num == 0) {
                num = num+1
                document.getElementById("marcacao").value = num + "\n"
            }
            else if (num !== 0) {
                num = num+1
                document.getElementById("marcacao").value = document.getElementById("marcacao").value + "\n\n" + num + "\n"
            }
        }
        
    }
    else if (document.getElementById("equals").onclick !== undefined) {
        
        var sizeresult = result.length
        var letra = result.charAt(sizeresult-1)
        
        if (letra !== "-" && letra !== "+" && letra !== "/" && letra !== "x" && letra !== "a" && letra !== "z" && letra !== "e") {
            if (texto == "-") {
                alert("Valor invalido")
            }
            else if (texto !== "") {
                var numero = texto.replace(",",".")
                x = parseFloat(numero)
            }
            else if (texto == "") {
                x = calculofinal
                
            }
            
            if (texto !== "-") {    
                var result = result + "\n\n" + x + " /"
                
                document.getElementById("resultados").value = result
                
                document.getElementById("equals").onclick = div
                
                //Adicionar ao MARCACAO
                num = num+1
                document.getElementById("marcacao").value = document.getElementById("marcacao").value+"\n\n" + num + "\n"                
            }
        }        
        else if (letra == "-" || letra == "+" || letra == "/" || letra == "x" || letra == "a" || letra == "z" || letra == "e") {
            
            if (texto == "-") {
                alert ("Valor invalido!")
            }
            else if (texto !== "") {
                if (calculofinal !== undefined) {
                    x = calculofinal
                }
                
                var numero = texto.replace(",",".")
                y = parseFloat(numero)
                
                if (letra == "+") {calculofinal = x + y}
                else if (letra == "-") {calculofinal = x - y}
                else if (letra == "/") {calculofinal = x / y}
                else if (letra == "x") {calculofinal = x * y}
                else if (letra == "a") {calculofinal = Math.pow(x, y)}
                else if (letra == "z") {calculofinal = Math.pow(x, 1/y)}
                else if (letra == "e") {calculofinal = x*(y/100)}
                
                if (letra == "e") {
                    var result = result + " " + y + "%" + "\n" + "=" + "\n" + calculofinal + "\n\n" + calculofinal + " /"
                }
                else {
                    var result = result + " " + y + "\n" + "=" + "\n" + calculofinal + "\n\n" + calculofinal + " /"
                }
                
                document.getElementById("resultados").value = result
                
                document.getElementById("equals").onclick = div
                
                //Adicionar ao MARCACAO
                num = num+1
                document.getElementById("marcacao").value = document.getElementById("marcacao").value + tempoatual + "\n\n\n" + num + "\n"        
            }
            else if (texto == "") {
                if (letra == "-" || letra == "+" || letra == "/" || letra == "x"){
                    var result = result.substring(0, sizeresult-1) + "/"
                }
                else if (letra == "a"){
                    var result = result.substring(0, sizeresult-9) + "/"
                }
                else if (letra == "z"){
                    var result = result.substring(0, sizeresult-4) + "/"
                }
                else if (letra == "e"){
                    var result = result.substring(0, sizeresult-5) + "/"
                }
                
                document.getElementById("resultados").value = result
                
                document.getElementById("equals").onclick = div
            }
        }
    }    
    
    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Limpar painél.
    document.getElementById("formin").value = ""
    //Focar no painél
    document.getElementById("formin").focus()
    //set BACK
    set()
}

    //DIV function. Divide o valor "x" pelo valor "y". <----------------------------------------------------------
function div() {

    var texto = document.getElementById("formin").value
    var result = document.getElementById("resultados").value
    
    if (texto == "-"){
        alert ("Valor invalido")
    }
    else if (texto !== "") {
        var numero = texto.replace(",",".")
        y = parseFloat(numero)
    }
    else if (texto == "") {
        if (y == undefined) {
            y = x
        }
    }
    
    if (texto !== "-") {    
        if (calculofinal == undefined) {
            var calculo = x / y
            calculofinal = calculo
        }
        else if (calculofinal !== undefined) {
            x = calculofinal
            var calculo = x / y
            calculofinal = calculo
        }

        var result = document.getElementById("resultados").value
        var result = result + " " + y + "\n" + "=" + "\n" + calculo
        
        document.getElementById("resultados").value = result
        
        document.getElementById("equals").onclick = divagain
    }

    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Limpar painél.
    document.getElementById("formin").value = ""
    //Focar no painél
    document.getElementById("formin").focus()
    //Ajustar MARCACAO
    document.getElementById("marcacao").value = document.getElementById("marcacao").value + tempoatual + "\n"
    //set BACK
    set()
}

    //DIVAGAIN function. Permite repitir a operação DIV. <--------------------------------------------------------
function divagain(){
    x = calculofinal
    var calculoanterior = calculofinal
    
    var texto = document.getElementById("formin").value
    
    if (texto == "-"){
        alert ("Valor inválido")
    }
    else if (texto !== "") {
        var numero = texto.replace(",",".")
        y = parseFloat(numero)
    }
    
    if (texto !== "-") {
        var calculo = x / y
        calculofinal = calculo
        
        var result = document.getElementById("resultados").value
        var result = result + "\n\n" + calculoanterior + " / " + y + "\n" + "=" + "\n" + calculo
        
        document.getElementById("resultados").value = result
    }

    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Limpar painél.
    document.getElementById("formin").value = ""
    //Focar no painél
    document.getElementById("formin").focus()
    //Ajustar MARCACAO
    num = num+1
    document.getElementById("marcacao").value = document.getElementById("marcacao").value + "\n\n" + num + "\n" + tempoatual + "\n"
    //set BACK
    set()
}




//----------------------------------------------------------------------------------------------------    GETPOW function. Pega o valor elevar ao próximo.

function getpow() {
    
    go = 1
    
    var texto = document.getElementById("formin").value
    var result = document.getElementById("resultados").value
    
    //Verificando se operação passada está finalizada
        var sizeresult = result.length
        var sizecalc = calculofinal+""
        var sizecalc = sizecalc.length
        var calctext = result.substring(sizeresult-sizecalc, sizeresult)
        var calctext = parseFloat(calctext)
        if (calctext == calculofinal) {
            if (texto !== "") {
                document.getElementById("equals").onclick = undefined
            }
        }
        
    if (document.getElementById("equals").onclick == undefined) {
        if (texto == "-") {
            alert("Valor invalido!")
        }
        else if (texto == "0,") {
            x = 0
            texto = 0
        }
        else if (texto !== "") {
            var numero = texto.replace(",",".")
            x = parseFloat(numero)
        }
        else if (texto == "") {
            alert ("O valor não foi colocado")
        }
        
        if (texto !== "-" && texto !== ""){
            
            if (calctext == calculofinal) {
                var result = result + "\n\n"
                calculofinal = undefined
            }
            
            var result = result + texto + " elevado a"
            
            document.getElementById("resultados").value = result
            
            document.getElementById("equals").onclick = pow
            
            //Adicionar ao MARCACAO
            if (num == 0) {
                num = num+1
                document.getElementById("marcacao").value = num + "\n"
            }
            else if (num !== 0) {
                num = num+1
                document.getElementById("marcacao").value = document.getElementById("marcacao").value + "\n\n" + num + "\n"
            }
        }
        
    }
    else if (document.getElementById("equals").onclick !== undefined) {
        
        var sizeresult = result.length
        var letra = result.charAt(sizeresult-1)
        
        if (letra !== "-" && letra !== "+" && letra !== "/" && letra !== "x" && letra !== "a" && letra !== "z" && letra !== "e") {
            if (texto == "-") {
                alert("Valor invalido")
            }
            else if (texto !== "") {
                var numero = texto.replace(",",".")
                x = parseFloat(numero)
            }
            else if (texto == "") {
                x = calculofinal
                
            }
            
            if (texto !== "-") {    
                var result = result + "\n\n" + x + " elevado a"
                
                document.getElementById("resultados").value = result
                
                document.getElementById("equals").onclick = pow
                
                //Adicionar ao MARCACAO
                num = num+1
                document.getElementById("marcacao").value = document.getElementById("marcacao").value+"\n\n" + num + "\n"                
            }
        }        
        else if (letra == "-" || letra == "+" || letra == "/" || letra == "x" || letra == "a" || letra == "z" || letra == "e") {
            
            if (texto == "-") {
                alert ("Valor invalido!")
            }
            else if (texto !== "") {
                if (calculofinal !== undefined) {
                    x = calculofinal
                }
                
                var numero = texto.replace(",",".")
                y = parseFloat(numero)
                
                if (letra == "+") {calculofinal = x + y}
                else if (letra == "-") {calculofinal = x - y}
                else if (letra == "/") {calculofinal = x / y}
                else if (letra == "x") {calculofinal = x * y}
                else if (letra == "a") {calculofinal = Math.pow(x, y)}
                else if (letra == "z") {calculofinal = Math.pow(x, 1/y)}
                else if (letra == "e") {calculofinal = x*(y/100)}
                
                if (letra == "e") {
                    var result = result + " " + y + "%" + "\n" + "=" + "\n" + calculofinal + "\n\n" + calculofinal + " elevado a"
                }
                else {
                    var result = result + " " + y + "\n" + "=" + "\n" + calculofinal + "\n\n" + calculofinal + " elevado a"
                }
                
                document.getElementById("resultados").value = result
                
                document.getElementById("equals").onclick = pow
                
                //Adicionar ao MARCACAO
                num = num+1
                document.getElementById("marcacao").value = document.getElementById("marcacao").value + tempoatual + "\n\n\n" + num + "\n"        
            }
            else if (texto == "") {
                if (letra == "-" || letra == "+" || letra == "/" || letra == "x"){
                    var result = result.substring(0, sizeresult-1) + "elevado a"
                }
                else if (letra == "a"){
                    var result = result.substring(0, sizeresult-9) + "elevado a"
                }
                else if (letra == "z"){
                    var result = result.substring(0, sizeresult-4) + "elevado a"
                }
                else if (letra == "e"){
                    var result = result.substring(0, sizeresult-5) + "elevado a"
                }
                
                document.getElementById("resultados").value = result
                
                document.getElementById("equals").onclick = pow
            }
        }
    }    
    
    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Limpar painél.
    document.getElementById("formin").value = ""
    //Focar no painél
    document.getElementById("formin").focus()
    //set BACK
    set()
}

    //POW function. Eleva o valor "x" ao valor "y". <-------------------------------------------------------------
function pow() {

    var texto = document.getElementById("formin").value
    var result = document.getElementById("resultados").value
    
    if (texto == "-"){
        alert ("Valor invalido")
    }
    else if (texto !== "") {
        var numero = texto.replace(",",".")
        y = parseFloat(numero)
    }
    else if (texto == "") {
        if (y == undefined) {
            y = 2
        }
    }
    
    if (texto !== "-") {    
        if (calculofinal == undefined) {
            var calculo = Math.pow(x, y)
            calculofinal = calculo
        }
        else if (calculofinal !== undefined) {
            x = calculofinal
            var calculo = Math.pow(x, y)
            calculofinal = calculo
        }

        var result = document.getElementById("resultados").value
        var result = result + " " + y + "\n" + "=" + "\n" + calculo
        
        document.getElementById("resultados").value = result
        
        document.getElementById("equals").onclick = powagain
    }

    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Limpar painél.
    document.getElementById("formin").value = ""
    //Focar no painél
    document.getElementById("formin").focus()
    //Ajustar MARCACAO
    document.getElementById("marcacao").value = document.getElementById("marcacao").value + tempoatual + "\n"
    //set BACK
    set()
}

    //POWAGAIN function. Permite repitir a operação POW. <--------------------------------------------------------
function powagain(){
    x = calculofinal
    var calculoanterior = calculofinal
    
    var texto = document.getElementById("formin").value
    
    if (texto == "-"){
        alert ("Valor inválido")
    }
    else if (texto !== "") {
        var numero = texto.replace(",",".")
        y = parseFloat(numero)
    }
    
    if (texto !== "-") {
        var calculo = Math.pow(x, y)
        calculofinal = calculo
        
        var result = document.getElementById("resultados").value
        var result = result + "\n\n" + calculoanterior + " elevado a " + y + "\n" + "=" + "\n" + calculo
        
        document.getElementById("resultados").value = result
    }

    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Limpar painél.
    document.getElementById("formin").value = ""
    //Focar no painél
    document.getElementById("formin").focus()
    //Ajustar MARCACAO
    num = num+1
    document.getElementById("marcacao").value = document.getElementById("marcacao").value + "\n\n" + num + "\n" + tempoatual + "\n"
    //set BACK
    set()
}




//----------------------------------------------------------------------------------------------------    GETROOT function. Achar, do primeiro valor, a raiz 'segundo valor'.

function getroot() {
    
    go = 1
    
    var texto = document.getElementById("formin").value
    var result = document.getElementById("resultados").value
    
    //Verificando se operação passada está finalizada
        var sizeresult = result.length
        var sizecalc = calculofinal+""
        var sizecalc = sizecalc.length
        var calctext = result.substring(sizeresult-sizecalc, sizeresult)
        var calctext = parseFloat(calctext)
        if (calctext == calculofinal) {
            if (texto !== "") {
                document.getElementById("equals").onclick = undefined
            }
        }
        
    if (document.getElementById("equals").onclick == undefined) {
        if (texto == "-") {
            alert("Valor invalido!")
        }
        else if (texto == "0,") {
            x = 0
            texto = 0
        }
        else if (texto !== "") {
            var numero = texto.replace(",",".")
            x = parseFloat(numero)
        }
        else if (texto == "") {
            alert ("O valor não foi colocado")
        }
        
        if (texto !== "-" && texto !== ""){
            
            if (calctext == calculofinal) {
                var result = result + "\n\n"
                calculofinal = undefined
            }
            
            var result = result + texto + " raíz"
            
            document.getElementById("resultados").value = result
            
            document.getElementById("equals").onclick = root

            //Adicionar ao MARCACAO
            if (num == 0) {
                num = num+1
                document.getElementById("marcacao").value = num + "\n"
            }
            else if (num !== 0) {
                num = num+1
                document.getElementById("marcacao").value = document.getElementById("marcacao").value + "\n\n" + num + "\n"
            }
        }
        
    }
    else if (document.getElementById("equals").onclick !== undefined) {
        
        var sizeresult = result.length
        var letra = result.charAt(sizeresult-1)
        
        if (letra !== "-" && letra !== "+" && letra !== "/" && letra !== "x" && letra !== "a" && letra !== "z" && letra !== "e") {
            if (texto == "-") {
                alert("Valor invalido")
            }
            else if (texto !== "") {
                var numero = texto.replace(",",".")
                x = parseFloat(numero)
            }
            else if (texto == "") {
                x = calculofinal
                
            }
            
            if (texto !== "-") {    
                var result = result + "\n\n" + x + " raíz"
                
                document.getElementById("resultados").value = result
                
                document.getElementById("equals").onclick = root
                
                //Adicionar ao MARCACAO
                num = num+1
                document.getElementById("marcacao").value = document.getElementById("marcacao").value+"\n\n" + num + "\n"                
            }
        }        
        else if (letra == "-" || letra == "+" || letra == "/" || letra == "x" || letra == "a" || letra == "z" || letra == "e") {
            
            if (texto == "-") {
                alert ("Valor invalido!")
            }
            else if (texto !== "") {
                if (calculofinal !== undefined) {
                    x = calculofinal
                }
                
                var numero = texto.replace(",",".")
                y = parseFloat(numero)
                
                if (letra == "+") {calculofinal = x + y}
                else if (letra == "-") {calculofinal = x - y}
                else if (letra == "/") {calculofinal = x / y}
                else if (letra == "x") {calculofinal = x * y}
                else if (letra == "a") {calculofinal = Math.pow(x, y)}
                else if (letra == "z") {calculofinal = Math.pow(x, 1/y)}
                else if (letra == "e") {calculofinal = x*(y/100)}
                
                if (letra == "e") {
                    var result = result + " " + y + "%" + "\n" + "=" + "\n" + calculofinal + "\n\n" + calculofinal + " raíz"
                }
                else {
                    var result = result + " " + y + "\n" + "=" + "\n" + calculofinal + "\n\n" + calculofinal + " raíz"
                }
                
                document.getElementById("resultados").value = result
                
                document.getElementById("equals").onclick = root
                
                //Adicionar ao MARCACAO
                num = num+1
                document.getElementById("marcacao").value = document.getElementById("marcacao").value + tempoatual + "\n\n\n" + num + "\n"        
            }
            else if (texto == "") {
                if (letra == "-" || letra == "+" || letra == "/" || letra == "x"){
                    var result = result.substring(0, sizeresult-1) + "raíz"
                }
                else if (letra == "a"){
                    var result = result.substring(0, sizeresult-9) + "raíz"
                }
                else if (letra == "z"){
                    var result = result.substring(0, sizeresult-4) + "raíz"
                }
                else if (letra == "e"){
                    var result = result.substring(0, sizeresult-5) + "raíz"
                }
                
                document.getElementById("resultados").value = result
                
                document.getElementById("equals").onclick = root
            }
        }
    }    
    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Limpar painél.
    document.getElementById("formin").value = ""
    //Focar no painél
    document.getElementById("formin").focus()
    //set BACK
    set()
}

    //ROOT function. Pega, do valor "x", a raíz "y". <------------------------------------------------------------
function root() {

    var texto = document.getElementById("formin").value
    var result = document.getElementById("resultados").value
    
    if (texto == "-"){
        alert ("Valor invalido")
    }
    else if (texto !== "") {
        var numero = texto.replace(",",".")
        y = parseFloat(numero)
    }
    else if (texto == "") {
        if (y == undefined) {
            y = 2
        }
    }
    
    if (texto !== "-") {
        if (calculofinal == undefined) {
            var calculo = Math.pow(x, 1/y)
            calculofinal = calculo
        }
        else if (calculofinal !== undefined) {
            x = calculofinal
            var calculo = Math.pow(x, 1/y)
            calculofinal = calculo
        }

        var result = document.getElementById("resultados").value

        var result = result + " " + y + "\n" + "=" + "\n" + calculo

        document.getElementById("resultados").value = result
        
        document.getElementById("equals").onclick = rootagain
    }
    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Limpar painél.
    document.getElementById("formin").value = ""
    //Focar no painél
    document.getElementById("formin").focus()
    //Ajustar MARCACAO
    document.getElementById("marcacao").value = document.getElementById("marcacao").value + tempoatual + "\n"
    //set BACK
    set()
}

    //ROOTAGAIN function. Permite repitir a operação ROOT. <------------------------------------------------------
function rootagain(){
    x = calculofinal
    var calculoanterior = calculofinal
    
    var texto = document.getElementById("formin").value
    
    if (texto == "-"){
        alert ("Valor inválido")
    }
    else if (texto !== "") {
        var numero = texto.replace(",",".")
        y = parseFloat(numero)
    }
    
    if (texto !== "-") {
        var calculo = Math.pow(x, 1/y)
        calculofinal = calculo

        var result = document.getElementById("resultados").value
        var result = result + "\n\n" + calculoanterior + " raíz " + y + "\n" + "=" + "\n" + calculo
        
        document.getElementById("resultados").value = result
    }

    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Limpar painél.
    document.getElementById("formin").value = ""
    //Focar no painél
    document.getElementById("formin").focus()
    //Ajustar MARCACAO
    num = num+1
    document.getElementById("marcacao").value = document.getElementById("marcacao").value + "\n\n" + num + "\n" + tempoatual + "\n"
    //set BACK
    set()
}




//----------------------------------------------------------------------------------------------------    GETPCENT function. Pega 'segundo valor'% do primeiro valor.

function getpcent() {
    
    go = 1
    
    var texto = document.getElementById("formin").value
    var result = document.getElementById("resultados").value
    
    //Verificando se operação passada está finalizada
        var sizeresult = result.length
        var sizecalc = calculofinal+""
        var sizecalc = sizecalc.length
        var calctext = result.substring(sizeresult-sizecalc, sizeresult)
        var calctext = parseFloat(calctext)
        if (calctext == calculofinal) {
            if (texto !== "") {
                document.getElementById("equals").onclick = undefined
            }
        }
        
    if (document.getElementById("equals").onclick == undefined) {
        if (texto == "-") {
            alert("Valor invalido!")
        }
        else if (texto == "0,") {
            x = 0
            texto = 0
        }
        else if (texto !== "") {
            var numero = texto.replace(",",".")
            x = parseFloat(numero)
        }
        else if (texto == "") {
            alert ("O valor não foi colocado")
        }
        
        if (texto !== "-" && texto !== ""){
            
            if (calctext == calculofinal) {
                var result = result + "\n\n"
                calculofinal = undefined
            }
            
            var result = result + texto + " pegue"
            
            document.getElementById("resultados").value = result
            
            document.getElementById("equals").onclick = pcent
            
            //Adicionar ao MARCACAO
            if (num == 0) {
                num = num+1
                document.getElementById("marcacao").value = num + "\n"
            }
            else if (num !== 0) {
                num = num+1
                document.getElementById("marcacao").value = document.getElementById("marcacao").value + "\n\n" + num + "\n"
            }
        }
        
    }
    else if (document.getElementById("equals").onclick !== undefined) {
        
        var sizeresult = result.length
        var letra = result.charAt(sizeresult-1)
        
        if (letra !== "-" && letra !== "+" && letra !== "/" && letra !== "x" && letra !== "a" && letra !== "z" && letra !== "e") {
            if (texto == "-") {
                alert("Valor invalido")
            }
            else if (texto !== "") {
                var numero = texto.replace(",",".")
                x = parseFloat(numero)
            }
            else if (texto == "") {
                x = calculofinal
                
            }
            
            if (texto !== "-") {    
                var result = result + "\n\n" + x + " pegue"
                
                document.getElementById("resultados").value = result
                
                document.getElementById("equals").onclick = pcent
                
                //Adicionar ao MARCACAO
                num = num+1
                document.getElementById("marcacao").value = document.getElementById("marcacao").value+"\n\n" + num + "\n"                
            }
        }        
        else if (letra == "-" || letra == "+" || letra == "/" || letra == "x" || letra == "a" || letra == "z" || letra == "e") {
            
            if (texto == "-") {
                alert ("Valor invalido!")
            }
            else if (texto !== "") {
                if (calculofinal !== undefined) {
                    x = calculofinal
                }
                
                var numero = texto.replace(",",".")
                y = parseFloat(numero)
                
                if (letra == "+") {calculofinal = x + y}
                else if (letra == "-") {calculofinal = x - y}
                else if (letra == "/") {calculofinal = x / y}
                else if (letra == "x") {calculofinal = x * y}
                else if (letra == "a") {calculofinal = Math.pow(x, y)}
                else if (letra == "z") {calculofinal = Math.pow(x, 1/y)}
                else if (letra == "e") {calculofinal = x*(y/100)}
                
                if (letra == "e") {
                    var result = result + " " + y + "%" + "\n" + "=" + "\n" + calculofinal + "\n\n" + calculofinal + " pegue"
                }
                else {
                    var result = result + " " + y + "\n" + "=" + "\n" + calculofinal + "\n\n" + calculofinal + " pegue"
                }
                
                document.getElementById("resultados").value = result
                
                document.getElementById("equals").onclick = pcent
                
                //Adicionar ao MARCACAO
                num = num+1
                document.getElementById("marcacao").value = document.getElementById("marcacao").value + tempoatual + "\n\n\n" + num + "\n"        
            }
            else if (texto == "") {
                if (letra == "-" || letra == "+" || letra == "/" || letra == "x"){
                    var result = result.substring(0, sizeresult-1) + "pegue"
                }
                else if (letra == "a"){
                    var result = result.substring(0, sizeresult-9) + "pegue"
                }
                else if (letra == "z"){
                    var result = result.substring(0, sizeresult-4) + "pegue"
                }
                else if (letra == "e"){
                    var result = result.substring(0, sizeresult-5) + "pegue"
                }
                
                document.getElementById("resultados").value = result
                
                document.getElementById("equals").onclick = pcent
            }
        }
    }    
    
    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Limpar painél.
    document.getElementById("formin").value = ""
    //Focar no painél
    document.getElementById("formin").focus()
    //set BACK
    set()
}

    //PCENT function. Pega, do valor "x", "y"%. <-----------------------------------------------------------------
function pcent() {

    var texto = document.getElementById("formin").value
    var result = document.getElementById("resultados").value
    
    if (texto == "-"){
        alert ("Valor invalido")
    }
    else if (texto !== "") {
        var numero = texto.replace(",",".")
        y = parseFloat(numero)
    }
    else if (texto == "") {
        alert ("Você não definiu a porcentágem desejada!")
    }
    
    if (texto !== "-" && texto !== "") {    
        if (calculofinal == undefined) {
            var calculo = x * y / 100
            calculofinal = calculo
        }
        else if (calculofinal !== undefined) {
            x = calculofinal
            var calculo = x * y / 100
            calculofinal = calculo
        }

        var result = document.getElementById("resultados").value
        var result = result + " " + y + "%" + "\n" + "=" + "\n" + calculo
        
        document.getElementById("resultados").value = result
        
        document.getElementById("equals").onclick = pcentagain
    }

    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Limpar painél.
    document.getElementById("formin").value = ""
    //Focar no painél
    document.getElementById("formin").focus()
    //Ajustar MARCACAO
    document.getElementById("marcacao").value = document.getElementById("marcacao").value + tempoatual + "\n"
    //set BACK
    set()
}

    //PCENTAGAIN function. Permite repitir a operação PCENT. <----------------------------------------------------
function pcentagain(){
    x = calculofinal
    var calculoanterior = calculofinal
    
    var texto = document.getElementById("formin").value
    
    if (texto == "-"){
        alert ("Valor inválido")
    }
    else if (texto !== "") {
        var numero = texto.replace(",",".")
        y = parseFloat(numero)
    }
    
    if (texto !== "-") {
        var calculo = x * y / 100
        calculofinal = calculo
        
        var result = document.getElementById("resultados").value
        var result = result + "\n\n" + calculoanterior + " + " + y + "%" + "\n" + "=" + "\n" + calculo
        
        document.getElementById("resultados").value = result
    }

    //Ajustar scroll do RESULTADOS.
    document.getElementById("resultados").scrollTop = document.getElementById("resultados").value.split('\n').length*30
    //Limpar painél.
    document.getElementById("formin").value = ""
    //Focar no painél
    document.getElementById("formin").focus()
    //Ajustar MARCACAO
    num = num+1
    document.getElementById("marcacao").value = document.getElementById("marcacao").value + "\n\n" + num + "\n" + tempoatual + "\n"
    //set BACK
    set()
}
</script>

<script type="text/javascript">

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

</script>


</head>

<body onload="setInterval('time()',1000); setInterval('marcacaopos()', 10); MM_preloadImages('images/rollover.jpg','images/clicked.jpg','images/+rollover.jpg','images/+clicked.jpg','images/eqrollover.jpg','images/eqclicked.jpg','images/bfrollover.jpg','images/bfclicked.jpg')">

<div id="container">

<div id="ad_left">
  <script type="text/javascript"><!--
google_ad_client = "pub-2175826998548900";
/* calculadora, esquerda */
google_ad_slot = "8250859561";
google_ad_width = 120;
google_ad_height = 600;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>

<div id="calculadora">
   <h1 align="center"><span class="style2">ReCalculator</span>   </h1>
   <div id="leftside">
     
     <div id="resultsdiv">
          <textarea name="marcacao" id="marcacao" readonly="readonly"></textarea>
       <textarea name="resultados" id="resultados" readonly="readonly"></textarea>
     </div>

     
   </div>
<!-- ends LEFTSIDE -->
   
   <div id="rightside">
     <table id="table" border="0" class="semborda">
       <tr>
         <td>
           <div class="bfbutton" id="back" onclick="back()" title="Retorna Opera&ccedil;&atilde;o / Step Back"><<</div>  
          <div class="bfbutton" id="forward" onclick="forward()" title="Avan&ccedil;a Opera&ccedil;&atilde;o / Step Forward">>></div>            </td>

          <td colspan="3" align="center">
            <div id="posformin"><input type="text" name="formin" id="formin" maxlength="10" onkeypress="return keypressed( this , event );"/></div></td>
      </tr>
       
       <tr>
         <td>
           <div class="button" id="cleanall" onclick="cleanall()"  title="Limpa todos os Dados / Clean all data">CA</div>                      </td>
          <td>
            <div class="button" id="cleanpainal" onclick="cleanpainel()" title="Limpa o pain&eacute;l de Digitos / Clean the Digits">C</div>            </td>

          <td colspan="2">
            <div class="equalsbutton" id="equals" onfocus="focarpainel()" title="Processa o Resultado / Get the Result">=</div>          </td>
      </tr>
       
       <tr>
         <td align="center">
           <div class="button" id="number7" onclick="insertnumber(7)" title="Insira o n&uacute;mero 7 / Insert number 7">7</div>            </td>
          <td align="center">

            <div class="button" id="number8" onclick="insertnumber(8)" title="Insira o n&uacute;mero 8 / Insert number 8">8</div>            </td>
          <td align="center">
            <div class="button" id="number9" onclick="insertnumber(9)" title="Insira o n&uacute;mero 9 / Insert number 9">9</div>            </td>
             <td align="center">
               <div class="button" id="difop" onclick="getdiff()" title="Subtra&ccedil;&atilde;o / Difference">-</div>            </td>
      </tr>

       
       <tr>
         <td align="center">
           <div class="button" id="number4" onclick="insertnumber(4)" title="Insira o n&uacute;mero 4 / Insert number 4">4</div>            </td>
          <td align="center">
            <div class="button" id="number5" onclick="insertnumber(5)" title="Insira o n&uacute;mero 5 / Insert number 5">5</div>            </td>
          <td align="center">
            <div class="button" id="number6" onclick="insertnumber(6)" title="Insira o n&uacute;mero 6 / Insert number 6">6</div>            </td>

          <td rowspan="2" align="center">
            <div class="plusbutton" id="pluop" onclick="getplus()" title="Adi&ccedil;&atilde;o / Plus">+</div>             </td>
      </tr>
       
       <tr>
         <td align="center">
           <div class="button" id="number1" onclick="insertnumber(1)" title="Insira o n&uacute;mero 1 / Insert number 1">1</div>            </td>
          <td align="center">

            <div class="button" id="number2" onclick="insertnumber(2)" title="Insira o n&uacute;mero 2 / Insert number 2">2</div>            </td>
          <td align="center">
            <div class="button" id="number3" onclick="insertnumber(3)" title="Insira o n&uacute;mero 3 / Insert number 3">3</div>            </td>
      </tr>
       
       <tr>
         <td align="center">
           <div class="button" id="negativop" onclick="negativar()" title="Negativo / Negative">&plusmn;</div>            </td>

          <td align="center">
            <div class="button" id="number0" onclick="insertnumber(0)" title="Insira o n&uacute;mero 0 / Insert number 0">0</div>            </td>
          <td align="center">
            <div class="button" id="decimal" onclick="decimar()" title="Decimal">,</div>            </td>
          <td align="center">
            <div class="button" id="timop" onclick="gettimes()" title="Multiplica&ccedil;&atilde;o / Times">x</div>            </td>

      </tr>
       <tr>
         <td align="center">
           <div class="button" id="quadrado" onclick="getpow()" title="Potencia&ccedil;&atilde;o / Power">n&sup2;</div>            </td>
          <td align="center">
            <div class="button" id="raiz" onclick="getroot()" title="Raiz / Root">√</div>            </td>
          <td align="center">

            <div class="button" id="percent" onclick="getpcent()" title="Porcentagem / Percent">%</div>            </td>
          <td align="center">
            <div class="button" id="divop" onclick="getdiv()" title="Divis&atilde;o / Division">&divide;</div>            </td>
      </tr>
  </table>
    </div>
   <!-- ends RIGHTSIDE -->

   
   <div class="style3" id="bottom">
     <div align="right">made by Lucas</div>
   </div>
   <!-- ends BOTTOM -->
  
  </div><!-- ends CALCULADORA -->
  
<div id="ad_right">
  <script type="text/javascript"><!--
google_ad_client = "pub-2175826998548900";
/* calculadora, esquerda */
google_ad_slot = "8250859561";
google_ad_width = 120;
google_ad_height = 600;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

</script>
</div>

</div>
 <!-- ends CONTAINER -->

<div id="ad_down">
<script type="text/javascript"><!--
            google_ad_client = "pub-2175826998548900";
            /* A baixo da calculadora */
            google_ad_slot = "3485255974";
            google_ad_width = 728;
            google_ad_height = 90;
            //-->
            </script>

  <script type="text/javascript"
            src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
            </script>
</div>

<!-- --><script type="text/javascript" src="http://staticthumbs.freewebs.com/i.js"></script><script type="text/javascript">if(typeof(urchinTracker)=='function'){_uacct="UA-230305-2";_udn="none";_uff=false;urchinTracker();}</script> <script type="text/javascript" src="http://edge.quantserve.com/quant.js"></script> <script type="text/javascript">_qacct="p-44naSaXtNJt26";quantserve();</script> </body>

</html>

Bom, agora posso dizer que não encontro mais tantos erros... mas ainda estou para resolver o problema de números com muitos digitos... esses atrapalham não as operações, mas o painél que mostra o tempo :/ outra hora posto aqui o resultado!

Valeu!

Editado por LucasConstantino
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

AE Lucas!!!

Que sensacional!

Eu admito que nunca tive coragem de fazer uma calculadora em Javascript, dá MUITO trabalho.

Parabéns!

Abraço.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...