Estou com um erro que não consigo resolver

4 respostas
M
package matematica;

import java.util.Scanner;

/**

*
  • @author manga
    */
    public class Main {
    public static void main(String[]args){
    Scanner tec = new Scanner(System.in);
    System.println(“digite a expressão”);
    double valor1 = tec.nextDouble();
    double valor2 = tec.nextDouble();
    char op = tec.next.charAT(0);
    //criar objeto
    Matematica matematica = new Matematica();
    //calcular e informar o resultado
    System.out.println("resultado: " + matematica.CalcularOA(double valor1 , double valor2 , char op));

na linha
System.out.println("resultado: " + matematica.CalcularOA(double valor1 , double valor2 , char op));
ocorre um erro que não consigo resolver…alguem pode me ajudar?


package matematica;

/**
*

  • @author manga
    */
    public class Matematica {

    /**Calcular a operação aritmética (+,-,*,/) entre dois valores <em>/
    
    public double CalcularOA( double valor1 , double valor2 , char op ){
    
    double resultado=0;
    
    //escolher operador
    
    switch(op){
    
    case ‘+’ : resultado= valor1 + valor2;
    
    break;
    
    case ‘-’ : resultado= valor1 - valor2;
    
    break;
    
    case '</em> : resultado= valor1 * valor2;
    
    break;
    
    case ‘/’ : resultado= valor1 / valor2;
    
    break;
    
    }
    
    return resultado;
    
    }
    
    }
    

4 Respostas

rbamartins

experimente dessa forma:

System.out.println("resultado: " + matematica.CalcularOA(valor1 , valor2 , op));

e nao dessa:
System.out.println("resultado: " + matematica.CalcularOA(double valor1 , double valor2 , char op));

pois, quando voce vai chamar um metodo vc apenas passa o paramentro e vc estava criando-os novamente

neohacker

Dica: post o seu erro junto para que possamos ajuda-lo
e aqui há algumas dicas sobre o fórum http://www.guj.com.br/posts/list/50115.java

R

Além do erro na passagem dos parâmetros há também um outro erro:

char op = tec.next.charAT(0);

isso aqui não é a construção correta. o método next() de Scanner retorna uma String, aí sim vc pode usar o método charAt(0) e não charAT(0).

O correto seria:

char op = tec.next().charAt(0);

e o código em um arquivo só seria assim:

import java.util.*;

public class Main {

public static void main(String[]args){

Scanner tec = new Scanner(System.in);

System.out.println(digite a expressão);

double valor1 = tec.nextDouble();

double valor2 = tec.nextDouble();

char op = tec.next().charAt(0);

//criar objeto

Matematica matematica = new Matematica();

//calcular e informar o resultado

System.out.println("resultado: " + matematica.CalcularOA(valor1 ,valor2 ,op));

}

}

class Matematica {

/**Calcular a operação aritmética (+,-,*,/) entre dois valores <em>/

public double CalcularOA( double valor10 , double valor2 , char op ){

double resultado=0;

//escolher operador

switch(op){

case ‘+’ : resultado= valor10 + valor2;

break;

case ‘-’ : resultado= valor10 - valor2;

break;

case '</em> : resultado= valor10 * valor2;

break;

case ‘/’ : resultado= valor10 / valor2;

break;

}

return resultado;

}

}

Acredito que assim funcione!

Ricardo Dias

R

só lembrando também que sua expressão está sendo lida da entrada no formato pós-fixo. Primeiro vc deve digitar os parametros da operação e depois o operador.

Ex: 3 6 +

Criado 26 de abril de 2007
Ultima resposta 26 de abr. de 2007
Respostas 4
Participantes 4