Problema:

Elabore um programa em Java que leia uma expressão aritmética simples, fornecia pelo usuário através do prompt de comando e calcule seu resultado:

Exemplo de entrada: 25+9

Exemplo de saída:   25+9= 34

 

Objetivo:

Apresentar aos alunos a estrutura de repetição While, introduzir o conceito de manipulação de strings e fixar os conteúdos anteriormente apresentados

 

/**
* Curso de Programação JAVA
*
* Exercício 14- Calculadora 2
*
* @author         Prof. Eric Loque M. Xavier
* @version        1.0.0
* Data            05/01/2017
*
*/

import java.io.IOException;
import java.util.*;

public class exercicio14 {
   public static void main(String[] args) throws IOException{
       
	   //Declaração e inicialização das variáveis
       char ch;
       char operador=' ';
       String x="";
       String y="";
       boolean primeiroAlgarismo=true;
       Integer resultado = null; 

       System.out.println("Digite a expressão com números naturais"); 

       /*
         Lê os caracteres digitados no teclado até que
         a tecla ENTER seja pressionada pelo usuário.
       */

       while ((ch=(char)System.in.read()) != '\n')
       {    
          //Rotina para separa os números
          if( primeiroAlgarismo && (ch>='0') && (ch<='9') )
              x=x+ch;
          else if ( (ch>='0') && (ch<='9') )
              y=y+ch;
                 
          //Identifica o operador a ser utilizado
          switch (ch){
            case '+' : operador = '+';
                       primeiroAlgarismo = false;
                       break; 
            case '-' : operador = '-';
                       primeiroAlgarismo = false;
                       break; 
             case '*' : operador = '*';
                        primeiroAlgarismo = false;
                        break; 
             case '/' : operador = '/';
                        primeiroAlgarismo = false;
                        break;
          }
       }
 
        //Realiza a operação aritmética
        switch (operador) {
           case '+' : resultado = Integer.parseInt(x) + Integer.parseInt(y);
                      break; 
           case '-' : resultado = Integer.parseInt(x) - Integer.parseInt(y);
                      break;
           case '*' : resultado = Integer.parseInt(x) * Integer.parseInt(y);
                      break; 
           case '/' : resultado = (Integer.parseInt(y)!=0) ?
                      Integer.parseInt(x) / Integer.parseInt(y) : null;
                      break;         
       }    

        //Imprime o resultado na tela       
        if(resultado != null)
           System.out.print(x+operador+y+"="+resultado);
        else
           System.out.print("Operação Inválida");
   }
}