Calculadora versão 2.0
Quarta fase do projecto
Vamos acrescentar à nossa calculadora os restantes dez botões e uma caixa de texto (MemoryField) para apresentar o resultado dos valores guardados em memória. Daremos uma explicação do código Java a adicionar em cada um deles. Primeiramente vamos criar as seguintes variáveis gerais:
double memory=0;double currentSqrt=0;
Os dez botões em falta estão identificados a vermelho na figura:
1) C-ButtonClear2) CE-ButtonClearE
3) MC-ButtonMemoryC
4) BACK-ButtonBack
5) MR-ButtonMemoryR
6) %-ButtonPercent
7) M-MemoryMinus
8) 1/x–ButtonInvertx
9) M+ - ButtonMemoryPlus
10) sqrt – ButtonSquar
1) C-ButtonClear
Este botão serve para limpar o display e o resultado corrente, ou seja, colocar o resultado igual a zero. Assim, o código é bastante fácil:
String dispFieldText=displayField.getText(); // obtém o valor do displayif (!"".equals(dispFieldText)){ // testa se é diferente de vazio
displayField.setText(""); // se é diferente põe o display vazio
}
currentResult=0; // coloca o resultado em zero
2) CE-ButtonClearE
Este botão CE ou CA (como às vezes também aparece nalgumas calculadoras) limpa o display, o resultado e o displayValue, o código é igual ao anterior sendo apenas necessário acrescentar a seguinte linha de código:
displayValue=0;3) MC-ButtonMemoryC
Este botão tem por finalidade efectuar a limpeza da memória e do display da memória, assim o código será:
memory=0;MemoryField.setText("Memory= ");
4) BACK-ButtonBack
Este botão tem a finalidade de apagar o último algarismo digitado (funciona como a tecla de backspace do PC), o código será:
String BackFieldText=displayField.getText();if (!"".equals(BackFieldText)){
String SubStr = BackFieldText.substring(0,BackFieldText.length()-1);
displayField.setText(""+SubStr);
}
A string completa seria do índex 0 até ao final do seu comprimento length(), como fazemos SubStr igual à string BackFieldText do índex 0 até ao comprimento -1 (length()-1), tomamos a string toda com excepção do último algarismo digitado, que é o índex do comprimento da string (length()).
Para ficar mais explicito, imagine que digitou os números 3428 e pressionou BACK, a string completa é BackFieldText.substring (0,BackFieldText.length()); ou seja, 3428. Se o código for BackFieldText.substring (0,BackFieldText.length()-1); a substring retorna apenas 342, desprezando o último número digitado. Se fosse ...length()-2); apenas retornava 34.
5) MR-ButtonMemoryR (Memory Recall)
Ao premir o botão MR, coloca o resultado da memória no display da calculadora, para efectuar outros cálculos. Assim basta colocar o resultado que se encontra na variável memory em displayField.
if (memory!=0){displayField.setText(""+memory);
}
6) %-ButtonPercent
Este botão permite efectuar operações com percentagens, sendo em tudo semelhante ao botão de igual, mas, com a diferença que divide a última parcela por 100. Como referimos o código é o mesmo para o sinal de igual apenas fazendo displayValue/100 (dividir por 100).
7) M-MemoryMinus
Ao pressionar este botão subtrai ao valor acumulado na memória, o valor do display. O código a utilizar é o seguinte:
String dispFieldText=displayField.getText();if (!"".equals(dispFieldText)){
displayValue= Double.parseDouble(dispFieldText);
}
memory-=displayValue; // subtrai ao valor da memória o valor do display
MemoryField.setText("Memory= "+memory); // coloca na memória o novo valor
displayField.setText(""); // limpa o valor do display
8) 1/x – ButtonInvertx
Este botão divide 1 pelo valor introduzido no display, assim pensamos que o código seguinte dispensa grandes explicações:
String dispFieldText=displayField.getText();if (!"".equals(dispFieldText)){
displayValue= Double.parseDouble(dispFieldText);
double invertValue= 1/displayValue;
displayField.setText(""+invertValue);
}
9) M+ - ButtonMemoryPlus
Ao pressionar este botão adiciona ao valor acumulado na memória, o valor do display. O código a utilizar é o mesmo que no botão M-MemoryMinus com excepção do seguinte:
...memory+=displayValue; // em vez de memory-=displayValue;
10) sqrt – ButtonSquar
Ao pressionar este botão calcula a raiz quadrada do número. Apenas salientamos a função Java Math.sqrt() que calcula a raiz quadrada, o resto do código praticamente é idêntico ao anteriormente utilizado.
String dispFieldText=displayField.getText();if (!"".equals(dispFieldText)){
displayValue= Double.parseDouble(dispFieldText);
currentResult=displayValue;
currentResult= Math.sqrt(currentResult); // função raiz quadrada
displayField.setText(""+currentResult);
}
Terminámos, agora temos a nossa calculadora pronta a trabalhar, se encontrou alguma dificuldade em construir a sua calculadora através do NetBeans, mesmo com a ajuda destas notas explicativas, não hesite, entre em contacto connosco, teremos muito gosto em apoiá-lo no que for necessário.
