Operações Matemáticas

2 respostas
C
Vejam o código:
import java.util.Scanner;;
public class Calculadora {
public static float somar(float num1, float num2){
	float total;
	total = num1 + num2;
	return total;
}
public static float subtrair (float num1, float num2){
	float total;
	total = num1 - num2;
	return total;
}
public static float multiplicar (float num1,float num2){
	float total;
	total = num1*num2;
	return total;
}
public static float dividir (float num1, float num2){
	float total;
	total = num1/num2;
	return total;
}
public static float potencia (float num1){
	float total;
	total = num1*num1;
	return total;
			
}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		float val1, val2, resultado = 0, valortotal = 0;
		String continuacao,operacao;
		
		System.out.println("Digite o valor do 1º número:");
		val1 = input.nextFloat();
		System.out.println("Digite o valor do 2º número:");
		val2 = input.nextFloat();
		
		System.out.println("Digite a opção desejada +,-,*,/,^");
	            
		operacao = input.next();	
		do{
			
				
		switch(operacao){
		case "+":
			    resultado = somar(val1,val2);
				break;
		case "-":
			    resultado = subtrair(val1,val2);
				break;
		case "*":
			    resultado = multiplicar(val1,val2);
				break;
		case "/":
			    resultado = dividir(val1,val2);
				break;
		case "^":
			    resultado = potencia(val1);
			    break;
		default:
			    System.out.println("Operação Inválida");
			}
		System.out.printf("O valor do calculo e: %.2f\n",resultado);
		System.out.println("Deseja continuar (S/N)?\n");
		continuacao = input.next();
		}while (continuacao.equals("S"));
		System.out.println("Operacao Finalizada");
Eu quero com resultado obtido somar, subtrair, dividir, multiplicar, enfim continuar a operação. Só não sei como e onde colocar no código isto. Alguém pode me ajudar?

2 Respostas

MarkKnopfler

solicite o 1º número fora do loop, aí dentro do loop vc faz:

  • pede operador
  • pede 2º número
  • calcula e atribui o resultado ao 1º número
  • volta o loop até cansar :wink:

algoritmo besta, besta.

T

Boa noite.

É o seguinte
fiz algumas alterações no seu código e está funcionando

você só tem que ver qual é a linha correta para colocar em

operacao = input.toString();

pois aqui ele tem que ler a entrada padrão
e eu esqueci qual que é

estou na facul e vou entrar para aula agora mas tipo assim
você colocou os códigos no lugar certinho
só o do{
que estava no lugar errado pois ele não ia repetir o loop e ia
sair toda hora

falta só colocar a linha correta para funcionar

sobre switch não tenho certeza 100%
mas acredito fortemente que ele só funcione
se você passar números inteiros

por isso eu li a opção que a pessoa digitou
comparei com if e atribui um número em ordem
crescente relativo a qual operação a pessoa escolheu.
vou indo
se tiver dificuldade posta aí

abraço e sucesso

package pacoteA;

import java.util.Scanner;;  
public class Calculadora {  
public static float somar(float num1, float num2){  
    float total;  
    total = num1 + num2;  
    return total;  
}  
public static float subtrair (float num1, float num2){  
    float total;  
    total = num1 - num2;  
    return total;  
}  
public static float multiplicar (float num1,float num2){  
    float total;  
    total = num1*num2;  
    return total;  
}  
public static float dividir (float num1, float num2){  
    float total;  
    total = num1/num2;  
    return total;  
}  
public static float potencia (float num1){  
    float total;  
    total = num1*num1;  
    return total;  
              
}  
  
    /** 
     * @param args 
     */  
    public static void main(String[] args) {  
        Scanner input = new Scanner(System.in);  
        float val1, val2, resultado = 0, valortotal = 0;  
        String continuacao, operacao;  
        int opcao = 0;
          
        do{ 
        System.out.println("Digite o valor do 1º número:");  
        val1 = input.nextFloat();  
        System.out.println("Digite o valor do 2º número:");  
        val2 = input.nextFloat();  
          
        System.out.println("Digite a opção desejada +,-,*,/,^");  
                  
        operacao = input.toString();
        
        if(operacao == "+"){        	
        	opcao = 1;
        }
        else{
        	if(operacao == "-")
        		opcao = 2;
        	else{
        		if(operacao == "*")
        			opcao = 3;
        		else{
        			if(operacao == "/")
        				opcao = 4;
        			else{
        				if(operacao == "^")
        					opcao = 5;
        				}
        			}
        		}
        	}
        			
              
                  
        switch(opcao){  
        case 1:  
                resultado = somar(val1,val2);  
                break;  
        case 2:  
                resultado = subtrair(val1,val2);  
                break;  
        case 3:  
                resultado = multiplicar(val1,val2);  
                break;  
        case 4:  
                resultado = dividir(val1,val2);  
                break;  
        case 5:  
                resultado = potencia(val1);  
                break;  
        default:  
                System.out.println("Operação Inválida");  
            }  
        System.out.println("O valor do calculo e: "+resultado);  
        System.out.println("Deseja continuar (S/N)?\n");  
        continuacao = input.next();  
        }while (continuacao.equals("S"));  
        System.out.println("Operacao Finalizada");  
}
}
Criado 8 de novembro de 2012
Ultima resposta 8 de nov. de 2012
Respostas 2
Participantes 3