2
respostas

Consolidando conhecimento - Calculadora

Acredito que acabei escrevendo demais nesse código hahaha. Seria possível simplificar este código? se sim, como eu poderia ter feito?

<meta charset="UTF-8">

<script>

//funções 
    function pulaLinha() {
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }

    function mostraTitulo(titulo){
        document.write("<hr>");
        pulaLinha();
        document.write("<h1><center>"+ titulo +"</center></h1>")
        pulaLinha();
        document.write("<hr>");
    }

    function mostraFinalR(mostraF, mostraE){
        document.write("<center><big>resultado da sua" + mostraF + "<strong>" + mostraE + "</strong></big></center> ")
        pulaLinha();
    }
 //tela

    mostraTitulo("<i> CALCULADORA</i>")


//calculadora
        function adição(a1,a2){

        return (a1+a2)  
    }

        function subtrai(s1,s2){

            return(s1 - s2);
    }

        function divide(d1,d2){

            return(d1/d2)    
    }
        function multiplica(m1,m2){

            return(m1*m2);
    }


    //#####################################################################//

 //var:
    alert("Olá, sou uma calculadora. Eu posso: dividir, somar, multiplicar e subtrair.")
    alert("É necessário utilizar as teclas A,S,D e M para realizar as funções da calculadora. Caso queira somar digite A, subtrair S, dividir D e multiplicar M.")

    //###################################################################//

    var deseja = prompt(" Adição(A), Subtração(S), Dividisão(D) e Multiplicação(M)")

    if (deseja == "A" ){

        var a1 = parseInt(prompt("Digite um número para fazer a soma."));
        var a2 = parseInt(prompt(a1 + " + ??. Digite outro número para fazer a soma."))
        var resultadosoma = adição(a1,a2);
               mostra("<center><h1>ADIÇÃO</h1></center")
               mostraFinalR(" soma, é de: " , resultadosoma)
    }

    if (deseja == "S"){


        var s1 = parseInt(prompt("Digite um número para fazer a subtração."));
        var s2 = parseInt(prompt(s1 +" - ??. Digite outro número para fazer a subtração."))
        var resultadosubtra = subtrai(s1,s2);
                mostra("<center><h1>SUBTRAÇÃO</h1></center")
                mostraFinalR(" subtração, é de: " , resultadosubtra);
    }
    if (deseja == "D"){


        var nd1 = parseInt(prompt("Digite um número para fazer a divisão."));
        var nd2 = parseInt(prompt(nd1 +" / ??. Digite outro número para fazer a Divisão."))
        var resultadodivisao = divide(nd1,nd2);
               mostra("<center><h1>DIVISÃO</h1></center")
              mostraFinalR(" divisão, é de: " , Math.round (resultadodivisao));
    }

    if (deseja == "M"){


        var nm1 = parseInt(prompt("Digite um número para fazer a Multiplicação."));
        var nm2 = parseInt(prompt(nm1 +" * ??. Digite outro número para fazer a Multiplicação."))
        var resultadomultipli = multiplica(nm1,nm2);
               mostra("<center><h1>MULTIPLICAÇÃO</h1></center")
              mostraFinalR(" multiplicação, é de: " , resultadomultipli);
    }


    mostra("<h1><center>FIM</center<h1>")
</script>


2 respostas

Olá, Gustavo! Tentei encurtar um pouco teu código, acabei me empolgando e fazendo mais algumas alterações, uma delas foi uma nova função que verifica se o usuário selecionou uma opção válida. Consegui reduzir um pouco transformando as funções "mostra" e "mostraFinal" em uma única função, substituindo a função "mostraTitulo" por um "document.write" e solicitando para que o usuário insira os números fora do "if", para que não fosse necessário repetir em cada um deles.Obrigada por compartilhar o código! Foi muito bom para colocar em prática o conteúdo aprendido nessa semana! Espero ter te acrescentado alguma nova informação também, e ajudado de alguma forma! Qualquer dúvida estou à disposição.

<meta charset="UTF-8">

<script>
    //funções ################################
function soma(num1,num2) {              //função que calcula a soma dos números.
    return(num1+num2);
}

function subtrai(num1,num2) {          //função que calcula a subtração dos números.
    return(num1-num2);
}

function multiplica(num1,num2) {      //função que calcula a multiplicação dos números.
    return (num1*num2);
}

function divide(num1,num2) {           //função que calcula a divisão dos números.
    return (num1/num2);
}

function verifica(opção) {             //função que verifica se a opção inserida pelo usuário é válida.
        if (opção == "1" ||opção == "2"||opção == "3"||opção == "4"){
            return (true);
        } else{
            return (false);
        }
    }

function exibeResultado (num1,num2,operador,resultado){        //função que exibe o resultado calculado
 document.write("<h3><center>"+ num1 + operador + num2 + " = " + resultado + "</center><h3>");
}

// Tela ########################################

document.write("<hr><br><h1><center><i> CALCULADORA</i></center></h1><br><hr><br>") // imprime na tela o titulo do programa.

alert("Olá, sou uma calculadora. Eu posso: dividir, somar, multiplicar e subtrair.");  //apresentação e seleção da função desejada
var operação = prompt ("Para começar, insira qual função deseja realizar dentre as opções: \n 1- Soma \n 2- Subtração \n 3- Multiplicação \n 4- Divisão");

if (verifica(operação)==false){     //verificando a seleção do usuário
   do{
       operação= prompt("A opção inserida é inválida, por favor, selecione dentre as opções:\n 1- Soma \n 2- Subtração \n 3- Multiplicação \n 4- Divisão");
   } while (verifica(operação)==false);
}
numero1 = parseInt(prompt("Insira o primeiro número:"));         //solicitando a entrada dos números.
numero2 = parseInt(prompt("Agora insira o segundo número:"));

if (operação == 1){
    resultado = soma (numero1, numero2);                       //calculando de acordo com a opção escolhida
    exibeResultado(numero1, numero2,"+",resultado)
}

if (operação == 2){
    resultado = subtrai (numero1, numero2);
    exibeResultado(numero1, numero2,"-",resultado)
}

if (operação == 3){
    resultado = multiplica (numero1, numero2);
    exibeResultado(numero1, numero2,"*",resultado)
}

if (operação == 4){
    resultado = divide (numero1, numero2);
    exibeResultado(numero1, numero2,"/",resultado)
}
document.write("<center><h4>FIM</center></h4>");           //mostrando que o programa chegou ao fim da execução.
</script>

Ficou incrível! Eu adorei o jeito que você encurtou o código e amei a nova função, ficou realmente muito bom! Muito obrigado por ter disponibilizado a solução, eu fico muito grato por isso e com toda certeza vai me ajudar muito no processo de aprendizado!