Math [RESOLVIDO]

9 respostas
Rooney

Tô com um pequeno problema, na class Math meu programa ta dando erro.

public class Geometria {

	public double hipotenusa (double a, double b){

		double soma = sqr(a) + sqr(b);
		double hip = sqrt (soma);
			return hip;
}
}

Vlw :D

9 Respostas

zoren

você fez o import??

qual o erro que dá??

sergiotaborda
Rooney:
Tô com um pequeno problema, na class Math meu programa ta dando erro.
public class Geometria {

	public double hipotenusa (double a, double b){

		double soma = sqr(a) + sqr(b);
		double hip = sqrt (soma);
			return hip;
}
}

Vlw :D

Primeiro : vc tem que declarar java.lang.Math com import static ou usar a chamada estática padrão.
Segundo: no java 5 e maior existe uma função hypot(double x, double y) que calcula a hipotenusa sem calcular os quadrados.
Terceiro : a hipotenusa é a soma dos quadrados e não das raizes como vc está fazendo
Quarto: se o numero é negativo a raiz quadrada dá erro.

finalmente: sempre que vc postar uma duvida sobre um erro, informe qual foi o erro.

renamed

Olá

Algumas considerações

1) Java é uma linguagem OO. Portanto, não aceita que "funções" sejam jogadas no meio do código.
Para acessar as funcionalidades de um método em Java, vc deve escrever o nome da classe a que pertence aquele método, "." e, finalmente o nome do método; se ele for estático.

2) O método sqr não existe. Se vc quer quer calcular o quadrado do número, deve usar o método Math.pow(num, 2);. Para calcular a raiz utilize Math.sqrt(num);

ok?

public class Geometria {

	public double hipotenusa(double a, double b) {

		double soma = Math.pow(a,2) + Math.pow(b, 2);
		double hip = Math.sqrt(soma);
		return hip;
	}
}
ViniGodoy

renamed:
1) Java é uma linguagem OO. Portanto, não aceita que “funções” sejam jogadas no meio do código.
Para acessar as funcionalidades de um método em Java, vc deve escrever o nome da classe a que pertence aquele método, “.” e, finalmente o nome do método; se ele for estático.

Nope. Você pode usar métodos estáticos de uma classe diretamente, através do import static. É só declarar:

import static java.lang.Math;

De qualquer jeito, fazer uma classe como a Math, só com métodos estáticos não é nada OO. Não é muito diferente de se ter um namespace com funções dentro, como no caso do C++.

ViniGodoy

Verdade. Outra forma de calcular o quadrado é simplesmente fazer num*num, que muitas vezes fica mais claro que Math.pow(num, 2);

Rooney


Olá

Algumas considerações

  1. Java é uma linguagem OO. Portanto, não aceita que “funções” sejam jogadas no meio do código.
    Para acessar as funcionalidades de um método em Java, vc deve escrever o nome da classe a que pertence aquele método, “.” e, finalmente o nome do método; se ele for estático.

  2. O método sqr não existe. Se vc quer quer calcular o quadrado do número, deve usar o método Math.pow(num, 2);. Para calcular a raiz utilize Math.sqrt(num);

ok?

Obrigado mano do seu jeito deu certo.

Vlw mesmo, pq só tem cara q gosta de criticar.

sergiotaborda

ViniGodoy:

De qualquer jeito, fazer uma classe como a Math, só com métodos estáticos não é nada OO. Não é muito diferente de se ter um namespace com funções dentro, como no caso do C++.

Hum… como seria então uma classe como a math OO ?

ViniGodoy

Não seria. É um exemplo de coisa que a programação estruturada se encaixa melhor do que a orientada a objetos.

Em todo caso, poderiamos pensar num strategy, para implementar diferentes métodos de cálculo.

Alex_Basto

ViniGodoy:
[sergiotaborda]Hum… como seria então uma classe como a math OO ?
Não seria. É um exemplo de coisa que a programação estruturada se encaixa melhor do que a orientada a objetos.

Não concordo !!!


Em todo caso, poderiamos pensar num estrategy, para implementar diferentes métodos de cálculo.

Pode ser !!!

Criado 18 de dezembro de 2009
Ultima resposta 18 de dez. de 2009
Respostas 9
Participantes 6