Duvida Operações

20 respostas
LucasAdri07

Olá pessoal.

Estou lendo o livro Java Como Programar da Deitel.

Fiz esse exemplo.

import javax.swing.JOptionPane;

public class Addition {

    public static void main(String args[]) {
        String firstNumber,
                secondNumber;
        int number1;
        int number2;
        int sum;
           firstNumber = 
           JOptionPane.showInputDialog( "Coloque um numero inteiro");

        secondNumber = 
                JOptionPane.showInputDialog("Coloque outro numero inteiro");

        number1 = Integer.parseInt(firstNumber);
        number2 = Integer.parseInt(secondNumber);

        sum = number1 + number2;

        JOptionPane.showMessageDialog(
                null, "O resultado é " + sum, "Resultado",
                JOptionPane.QUESTION_MESSAGE);

        System.exit(0);
    }
}

Porem invés de ser uma soma que o programa ira realizar, eu queria que o usuario escolhece qual seria a operação, ,+, -, *, /.
Como ficaria, se alguem puder ajudar...
Valeu :D

20 Respostas

thiago.correa

É um exemplo básico, mas para fins de entendimento:
Antes ou após o usuário digitar o par de números, mostre um outro JOptionPane, mostrando as operações que podem ser executadas pelo seu programa, e após ele clicar em ok, faça um if (ou até mesmo um switch) para executar a operação de acordo com a opção digitada pelo usuário!

fernandofavari
LucasAdri07:
Olá pessoal.

Estou lendo o livro Java Como Programar da Deitel.

Fiz esse exemplo.

import javax.swing.JOptionPane;

public class Addition {

    public static void main(String args[]) {
        String firstNumber,
                secondNumber;
        int number1;
        int number2;
        int sum;
           firstNumber = 
           JOptionPane.showInputDialog( "Coloque um numero inteiro");

        secondNumber = 
                JOptionPane.showInputDialog("Coloque outro numero inteiro");

        number1 = Integer.parseInt(firstNumber);
        number2 = Integer.parseInt(secondNumber);

        sum = number1 + number2;

        JOptionPane.showMessageDialog(
                null, "O resultado é " + sum, "Resultado",
                JOptionPane.QUESTION_MESSAGE);

        System.exit(0);
    }
}

Porem invés de ser uma soma que o programa ira realizar, eu queria que o usuario escolhece qual seria a operação, ,+, -, *, /.
Como ficaria, se alguem puder ajudar...
Valeu :D

Você pode resolver por meio de if/else
Tipo, vc pergunta para ele qual operação deseja
Se acaso for soma "+", entra em um "if", fazendo num1 + num2... e assim por diante.
Entendeu?

LucasAdri07

thiago.correa:
É um exemplo básico, mas para fins de entendimento:
Antes ou após o usuário digitar o par de números, mostre um outro JOptionPane, mostrando as operações que podem ser executadas pelo seu programa, e após ele clicar em ok, faça um if (ou até mesmo um switch) para executar a operação de acordo com a opção digitada pelo usuário!

No caso, faria um JOptionPane Mostrando.

Operações:

Soma
Subtração
Multipicação
Divisão.

E depois faria um if dizendo o que?

Precisaria criar outras variavéis?

LucasAdri07
fjfj:
LucasAdri07:
Olá pessoal.

Estou lendo o livro Java Como Programar da Deitel.

Fiz esse exemplo.

import javax.swing.JOptionPane;

public class Addition {

    public static void main(String args[]) {
        String firstNumber,
                secondNumber;
        int number1;
        int number2;
        int sum;
           firstNumber = 
           JOptionPane.showInputDialog( "Coloque um numero inteiro");

        secondNumber = 
                JOptionPane.showInputDialog("Coloque outro numero inteiro");

        number1 = Integer.parseInt(firstNumber);
        number2 = Integer.parseInt(secondNumber);

        sum = number1 + number2;

        JOptionPane.showMessageDialog(
                null, "O resultado é " + sum, "Resultado",
                JOptionPane.QUESTION_MESSAGE);

        System.exit(0);
    }
}

Porem invés de ser uma soma que o programa ira realizar, eu queria que o usuario escolhece qual seria a operação, ,+, -, *, /.
Como ficaria, se alguem puder ajudar...
Valeu :D

Você pode resolver por meio de if/else
Tipo, vc pergunta para ele qual operação deseja
Se acaso for soma "+", entra em um "if", fazendo num1 + num2... e assim por diante.
Entendeu?

+ / - Assim?

Ex: Soma:

if num1 + num2

Subtração:

if num1 - num2

Multiplicação:

if num1 * num2

Divisão:

if num1 / num2

fernandofavari

LucasAdri07:
thiago.correa:
É um exemplo básico, mas para fins de entendimento:
Antes ou após o usuário digitar o par de números, mostre um outro JOptionPane, mostrando as operações que podem ser executadas pelo seu programa, e após ele clicar em ok, faça um if (ou até mesmo um switch) para executar a operação de acordo com a opção digitada pelo usuário!

No caso, faria um JOptionPane Mostrando.

Operações:

Soma
Subtração
Multipicação
Divisão.

E depois faria um if dizendo o que?

Precisaria criar outras variavéis?

No JOptionPane vc pergunta se ele quer +, -, *, / . Não esqueça de atribuir uma variável para receber a operação, suponhamos que vc atribua op

E dentro dos if, vc faz assim:

if(op == +){

result = num1 + num2;}

else if(op == *){ e assim por diante!! entendeu??
LucasAdri07

fjfj:
LucasAdri07:
thiago.correa:
É um exemplo básico, mas para fins de entendimento:
Antes ou após o usuário digitar o par de números, mostre um outro JOptionPane, mostrando as operações que podem ser executadas pelo seu programa, e após ele clicar em ok, faça um if (ou até mesmo um switch) para executar a operação de acordo com a opção digitada pelo usuário!

No caso, faria um JOptionPane Mostrando.

Operações:

Soma
Subtração
Multipicação
Divisão.

E depois faria um if dizendo o que?

Precisaria criar outras variavéis?

No JOptionPane vc pergunta se ele quer +, -, *, / . Não esqueça de atribuir uma variável para receber a operação, suponhamos que vc atribua op

E dentro dos if, vc faz assim:

if(op == +){

num1 + num2;}

else if(op == *){ e assim por diante!! entendeu??

</blockquote>

Tipo, pensei em algo mais simples, só mostrando quais operações ele quer executar, não ele clicar na qual ele deseja pra ser realizada…

fernandofavari

LucasAdri07:
fjfj:
LucasAdri07:
thiago.correa:
É um exemplo básico, mas para fins de entendimento:
Antes ou após o usuário digitar o par de números, mostre um outro JOptionPane, mostrando as operações que podem ser executadas pelo seu programa, e após ele clicar em ok, faça um if (ou até mesmo um switch) para executar a operação de acordo com a opção digitada pelo usuário!

No caso, faria um JOptionPane Mostrando.

Operações:

Soma
Subtração
Multipicação
Divisão.

E depois faria um if dizendo o que?

Precisaria criar outras variavéis?

No JOptionPane vc pergunta se ele quer +, -, *, / . Não esqueça de atribuir uma variável para receber a operação, suponhamos que vc atribua op

E dentro dos if, vc faz assim:

if(op == +){

num1 + num2;}

else if(op == *){ e assim por diante!! entendeu??

</blockquote>

Tipo, pensei em algo mais simples, só mostrando quais operações ele quer executar, não ele clicar na qual ele deseja pra ser realizada…

Se acaso no JOptionPane vc perguntar para ele se ele quer saber o resultado de uma soma ou sibtraçao… o jeito que vc fez da certo, mas se caso ele quiser uma “calculadora”, o jeito que to te explicando é facil… e desenvolvi um assim semana passada e deu certo… é que nao tenho netbeans aqui no serviço senao eu postava.

LucasAdri07

fjfj:
LucasAdri07:
fjfj:
LucasAdri07:
thiago.correa:
É um exemplo básico, mas para fins de entendimento:
Antes ou após o usuário digitar o par de números, mostre um outro JOptionPane, mostrando as operações que podem ser executadas pelo seu programa, e após ele clicar em ok, faça um if (ou até mesmo um switch) para executar a operação de acordo com a opção digitada pelo usuário!

No caso, faria um JOptionPane Mostrando.

Operações:

Soma
Subtração
Multipicação
Divisão.

E depois faria um if dizendo o que?

Precisaria criar outras variavéis?

No JOptionPane vc pergunta se ele quer +, -, *, / . Não esqueça de atribuir uma variável para receber a operação, suponhamos que vc atribua op

E dentro dos if, vc faz assim:

if(op == +){

num1 + num2;}

else if(op == *){ e assim por diante!! entendeu??

</blockquote>

Tipo, pensei em algo mais simples, só mostrando quais operações ele quer executar, não ele clicar na qual ele deseja pra ser realizada…

Se acaso no JOptionPane vc perguntar para ele se ele quer saber o resultado de uma soma ou sibtraçao… o jeito que vc fez da certo, mas se caso ele quiser uma “calculadora”, o jeito que to te explicando é facil… e desenvolvi um assim semana passada e deu certo… é que nao tenho netbeans aqui no serviço senao eu postava.

Sim, entendi, é que eu acho que calculadora ainda é um pouco mais além do que estou vendo, por isso e melhor só mostrar qual as opções de operações ele tem (:

fernandofavari

Quais opçoes vc quer mostrar… me fala sua ideia e vejo se te ajudo!!

LucasAdri07

Tipo, criar um JOptionPane para mostrar as operações que poderam ser efetuadas é facil.

Porem o que queria fazer é por exemplo.

“Abre uma caixa de dialago para ser digitado um numero.”

“Depois abre outra caixa de dialogo para ele digitar a operação que ele quer, + , - , * , /.”

“E depois abre outra caixa de dialago para ele digitar o outro nuemro para ser realizada a operação.”

Por fim aparece o resultado da operação.

fernandofavari

Cara, eu to com uma ideia na cabeça mas nao tem como eu testar pra te dar uma resposta, pra não acabar te falando besteira…hj a noite eu posso ate testar em casa e te dou uma resposta

LucasAdri07

Adicionei uma linha:

sinalDaOperacao = JOptionPane.showInputDialog ( "Coloque o sinal da operação");

vamos ver se fica mais faicl de entender, gostaria que quando o usuario digitasse o sinal nessa caixa de dialogo interpretasse uma operação matematica conforme o sinal correspondente. (;

gpd38

Não sei se é isso mas ve se te ajuda

import javax.swing.JOptionPane;

public class Addition {

	public static void main(String args[]) {
		int number1,number2;
		int sum,sub,dif,mul;
		String operacao;
		
		number1 = Integer.parseInt(JOptionPane.showInputDialog("Digite o primeiro numero inteiro"));
		operacao = JOptionPane.showInputDialog("Digite a operação desejada:\n    +    -    /    *  ");
		while(!operacao.equals("+") && !operacao.equals("-") && !operacao.equals("/") && !operacao.equals("*")){			
			operacao = JOptionPane.showInputDialog("Esta operação nao existe\nDigite a operação desejada:\n    +    -    /    *  ");
		}
		number2 = Integer.parseInt(JOptionPane.showInputDialog("Digite o segundo numero inteiro"));

		if(operacao.equals("+")){
			sum = number1 + number2;
			JOptionPane.showMessageDialog(null, "O resultado da soma de "+number1+" + "+number2+" = " + sum,"Resultado Soma", JOptionPane.QUESTION_MESSAGE);
		}else if(operacao.equals("-")){
			sub = number1 - number2;
			JOptionPane.showMessageDialog(null, "O resultado da subtração de "+number1+" - "+number2+" = " + sub,"Resultado Subtraçao", JOptionPane.QUESTION_MESSAGE);
		}else if(operacao.equals("/")){
			dif = number1 / number2;
			JOptionPane.showMessageDialog(null, "O resultado da soma de "+number1+" / "+number2+" = " + dif,"Resultado Divisão", JOptionPane.QUESTION_MESSAGE);
		}else if(operacao.equals("*")){
			mul = number1 * number2;	
			JOptionPane.showMessageDialog(null, "O resultado da soma de "+number1+" * "+number2+" = " + mul,"Resultado Multiplicação", JOptionPane.QUESTION_MESSAGE);
		}	

		System.exit(0);
	}
}
fernandofavari

hiii véi, não consegui fazer nao… eu tentei mas acabou dando num prog igual a esse de cima… se acaso vc descobrir, posta ai pra nois!!!
abraço e boa sorte.

pedroroxd
gpd38:
Não sei se é isso mas ve se te ajuda ..
Não há necessidade de criar várias variáveis (int sum,sub,dif,mul). Basta uma variável chamada result E ainda é melhor usar case, em vez de if... Seria assim:
public class Addition {

	public static void main(String args[]) {
		int number1, number2, result = 0, operacao;
		String op;

		number1 = Integer.parseInt(JOptionPane.showInputDialog("Digite o primeiro numero inteiro"));
		op = JOptionPane.showInputDialog("Digite a operação desejada:\n    +    -    /    *  ");

		while (!op.equals("+") && !op.equals("-") && !op.equals("/") && !op.equals("*")) {
			op = JOptionPane.showInputDialog("Esta operação nao existe\nDigite a operação desejada:\n    +    -    /    *  ");
		}

		operacao = op.charAt(0);
		number2 = Integer.parseInt(JOptionPane.showInputDialog("Digite o segundo numero inteiro"));

		switch (operacao) {
		case '+':
			result = number1 + number2;
			break;
		case '-':
			result = number1 - number2;
			break;
		case '*':
			result = number1 * number2;
			break;
		case '/':
			result = number1 / number2;
			break;
		}

		JOptionPane.showMessageDialog(null, "O resultado de " + number1 + op
				+ number2 + " = " + result, "Resultado",
				JOptionPane.QUESTION_MESSAGE);

		System.exit(0);
	}
}
peczenyj

vc poderia receber uma expressão matemática valida e efetua-la usando a API de Scripting

http://java.sun.com/developer/technicalArticles/J2SE/Desktop/scripting/

pedroroxd

Tem diversas formas de fazer…
Usando console, usando gui…

Mas axo que o objetivo dele era aprender sobre o jOptionPane…
Por isso que fiz dakele jeito

LucasAdri07
pedroroxd:
gpd38:
Não sei se é isso mas ve se te ajuda ..
Não há necessidade de criar várias variáveis (int sum,sub,dif,mul). Basta uma variável chamada result E ainda é melhor usar case, em vez de if... Seria assim:
public class Addition {

	public static void main(String args[]) {
		int number1, number2, result = 0, operacao;
		String op;

		number1 = Integer.parseInt(JOptionPane.showInputDialog("Digite o primeiro numero inteiro"));
		op = JOptionPane.showInputDialog("Digite a operação desejada:\n    +    -    /    *  ");

		while (!op.equals("+") && !op.equals("-") && !op.equals("/") && !op.equals("*")) {
			op = JOptionPane.showInputDialog("Esta operação nao existe\nDigite a operação desejada:\n    +    -    /    *  ");
		}

		operacao = op.charAt(0);
		number2 = Integer.parseInt(JOptionPane.showInputDialog("Digite o segundo numero inteiro"));

		switch (operacao) {
		case '+':
			result = number1 + number2;
			break;
		case '-':
			result = number1 - number2;
			break;
		case '*':
			result = number1 * number2;
			break;
		case '/':
			result = number1 / number2;
			break;
		}

		JOptionPane.showMessageDialog(null, "O resultado de " + number1 + op
				+ number2 + " = " + result, "Resultado",
				JOptionPane.QUESTION_MESSAGE);

		System.exit(0);
	}
}

Valeu por ajudar.

Só fiquei meio confuso na parte do while
e aquele result = 0

EDIT:

Entendi o while, é caso se a pessoa digitar algo diferente de + , - , * , /, irá mostrar que esta operação não existe.

E o result 0 é só para começar com um valor 0.

LucasAdri07

Só uma coisa.

Para mim definir o numero de casas decimais não é igual o do System.out.println(" Resultado = %.1f %n"+(exemplo));

Posso usar bigdecimal?

pedroroxd
A parte do while:
op = JOptionPane.showInputDialog("Digite a operação desejada:\n    +    -    /    *  ");  
   
         while (!op.equals("+") && !op.equals("-") && !op.equals("/") && !op.equals("*")) {
Ou seja.. enquanto a pessoa não digitar "+ ou - ou / ou *", ele vai ficar pedindo pra pessoa digitar... Assim evita de vc pedir pra ela digitar o sinal, e ela digitar 1 letra por exemplo...

E o result =0, é pq é preciso inicializar a variável com 1 valor, para printar ela no console...

Qualquer coisa tamo ae!

Criado 31 de março de 2010
Ultima resposta 5 de abr. de 2010
Respostas 20
Participantes 6