GARANTIR DESCONTO

Fórum Operações Matématicas #427926

02/11/2012

0

Quero fazer cálculos matemáticos simples como: somar, subtrair, multiplicar e dividir, com metódos. Mas só falta um detalhe. Vamos supor que o usuário de posse do resultado por exemplo: 2+2 = 4, queira subtrair ou multiplicar ou dividir de outro valor:
10+3-5*6/9;
Alguem pode me ajudar?
Carlos Leonel

Carlos Leonel

Responder

Posts

02/11/2012

Tiago

Boa tarde Carlos,
uma solução poderia ser a seguinte. vamos imaginar o cenário que você colocou.

int total=2; // Vamos supor que o usuário quer tanto somar quanto multiplicar e até mesmo dividir

total+=10+3-5*6/9;// Você tem que manter o valor do seu total e utiliza-lo para cálculos futuros, a não ser que na sua               calculadora possua um botão que resete o valor

a expressão acima equivale a:

total=2+10+3-5*6/9;




Espero ter ajudado.
Responder

Gostei + 0

05/11/2012

Carlos Leonel

Colegas sobre o assunto anteriormente proposto vejam o código abaixo:
import java.util.Scanner;


import java.util.Scanner;


public class calc {

public static int somar( int num1, int num2){
int total;
total = num1+num2;
return total;
}
public static int subtrair( int num1, int num2){
int total;
total = num1-num2;
return total;
}
public static int multiplicar( int num1, int num2){
int total;
total = num1*num2;
return total;
}
public static int dividir( int num1, int num2){
int total;
total = num1/num2;
return total;
}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
	Scanner input = new Scanner(System.in);
	int val1, val2, resultado = 0;
	String continuacao,operacao;
	
	
	do{
		System.out.println("Digite o valor do 1º número:");
		num1 = input.nextFloat();
		System.out.println("Digite o valor do 2º número:");
		num2 = input.nextFloat();
		
		System.out.println("Digite a opção desejada +,-,*,/");
	            
		operacao = input.next();	
	
	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;
	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");
	
		
		
		
		// TODO Auto-generated method stub

	}

}


Com o Código acima caso o usuário queira com o resultado obtido somar, subtrair, dividir, multiplicar ou começar tudo novamente?
Responder

Gostei + 0

05/11/2012

Tiago

Você poderia utilizar a variável com o valor total, nesse bloco while... ou seja enquanto for positivo então a variável será sempre alterada...Precisa ver apenas uma forma de deixa-la dinâmica


while (continuacao.equals("S"));


Espero ter ajudado.
Responder

Gostei + 0

05/11/2012

Eduardo Pessoa

Tiago, tem como vc me explicar esse codigo??? por favor
Responder

Gostei + 0

05/11/2012

Carlos Leonel

Tiago tem como refazer este código. Só falta este detalhe.Obrigado.
Responder

Gostei + 0

05/11/2012

Tiago

Claro farei as modificações e postarei em seguida... eu colei o código no eclipse e me mostrou alguns erros... esse código está funcionando?
Responder

Gostei + 0

06/11/2012

Carlos Leonel

está sim mas se houver seria um grande favor em identificá-los.
Obrigado,
Carlos
Responder

Gostei + 0

06/11/2012

Eduardo Pessoa

Tiago???
Responder

Gostei + 0

07/11/2012

Sidney Tavares

Bom dia a todos, tomei a liberdade de fazer algumas alterações no código, pois também copiei e colei no eclipse e gerou alguns erros, não sei no Java 7, mas no 6 na instrução switch só é aceito como argumento os primitivos char, byte, int ou short, além de um enum, abaixo o meu código:

package teste.calculos.simples;

import java.io.IOException;
import java.util.Scanner;

public class Calc {

	public static int somar(int num1, int num2) {
		int total;
		total = num1 + num2;
		return total;
	}

	public static int subtrair(int num1, int num2) {
		int total;
		total = num1 - num2;
		return total;
	}

	public static int multiplicar(int num1, int num2) {
		int total;
		total = num1 * num2;
		return total;
	}

	public static int dividir(int num1, int num2) {
		int total;
		total = num1 / num2;
		return total;
	}

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		Scanner input = new Scanner(System.in);
		int val1, val2, resultado = 0;
		int continuacao;
		char operacao; 
		
		do {
			System.out.println("Digite o valor do 1º número:");
			val1 = input.nextInt();
			System.out.println("Digite o valor do 2º número:");
			val2 = input.nextInt();

			System.out.println("Digite a opção desejada: " + '+' + '-' + '*' + '/');

			operacao = (char) System.in.read();
			
			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;
			default:
				System.out.println("Operação Inválida");
			}
			System.out.printf("O valor do calculo e: %d\n", resultado);
			System.out.println("Deseja continuar (S/N)?\n");
			continuacao = input.nextInt();
		} while (continuacao == 1);

		
		System.out.println("Operacao Finalizada");

		// TODO Auto-generated method stub

	}

}



Outro erro que notei é que as variáveis são todas do tipo int mas havia chamada a nextFloat() para receber o número, bem, essa resumidamente foi a maneira que encontrei. Abraço.
Responder

Gostei + 0

07/11/2012

Carlos Leonel

Sidney, Obrigado também pela ajuda. Realmente a versão utilizada neste código foi a JSE 1.7 por isso é que você não conseguiu. Quanto aos métodos foram todos modificados para float. A dúvida que eu lancei foi a que se o usuário quiser com o resultado obtido continuar a fazer todas as operações como se fosse uma calculadora tipo: 2+2 = 4-1*3/2^3, claro obdecendo a ordem de precedência.
Responder

Gostei + 0

08/11/2012

Alisson Santos

conseguiu sanar sua duvida
Responder

Gostei + 0

08/11/2012

Carlos Leonel

Pessoal, agradeço a iniciativa de todos. Talvez a minha dúvida seja simples para alguns de resolver para outros, que é o meu caso, complicado. Pelo que sei eu teria que criar outra variável para guardar o resultado obtido e com ele executar tantas ou quantas eu quiser. Acontece que eu não sei como colocar isso no código. Só falta este detalhe para dar finalizar a minha Calculadora.
Responder

Gostei + 0

10/11/2012

Carlos Leonel

pessoal eu so gostaria de saber onde eu coloco o codigo para continuar a efetuar as operacoes ate o usuario finaliza
Responder

Gostei + 0

12/11/2012

Carlos Leonel

Att: Tiago de Oliveira Vale
Tem alguam notícia a respeito do código que lhe passei?

Carlos
Responder

Gostei + 0

12/11/2012

Claudia Nogueira

É pra um exercício de faculdade?
Na minha época quando tinha esses exercícios, pra ficar repetindo alguma coisa, eu usava um while, e enquanto não digitasse alguma tecla, não fechava a aplicação.
Se for isso, poderia fazer um loop infinito e verificando alguma tecla, enquanto o usuário não digitar determinada tecla, continua fazendo as operações que você precisa.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar