boa noite bom estou com pequeno algoritmo simples de tudo mais que eu estou quebrando a cabeça, veja enunciado:
[quote]A fórmula para calcular a área de uma circunferência é: A = πR2
. Sendo que o valor de π = 3.14159 basta
estabelecer:
� Ler 1 valor para raio, no caso a variável R.
� Efetuar o cálculo da área, elevando o valor de R ao quadrado e multiplicando por π.
� Apresentar o valor da variável A. [/quote]
ublic class AreaCircunferencia {
public static void main(String[] args) {
float r, A;
System.out.println("\n digite um valor para R ");
Scanner ler = new Scanner(System.in);
r = ler.nextFloat();
A = 3,14159 * r ^ 2;
//mostra valor de area
System.out.println("\n Valor da area "+A);
}
}
não sei se e desta maneira para elevar, pesquisei antes mais os resultados dizia para fazer desta maneira comigo não deu certo
Dá para usar o método Math.pow()…
Porém, por questão de desempenho e evitar uma chamada a um método aconselho a usar…
A = 3,14159 * r * r;
1 curtida
java.lang.Math.pow() faz isso pra vc.
1 curtida
Não somente isso, mas várias coisas uteis para cálculos dá uma olhada nesse pacote.
3 curtidas
Se eu não estou enganado ficaria assim:
A = 3.14159*Math.pow(r,2);
se num to enganado a sintaxe é:
Math.pow(valor,expoente)
[quote=IgorDutra]Se eu não estou enganado ficaria assim:
A = 3.14159*Math.pow(r,2);
se num to enganado a sintaxe é:
Math.pow(valor,expoente)
[/quote]
Considerando que esse 3.14159 é PI você pode fazer assim também:
A = Math.PI*Math.pow(r,2);
como o otavio citou
De uma olhada na biblioteca Math.
pois tem muitos recursos.
Embora o operador ^ seja “padrao” nas linguagens em geral, ele não existe no Java (ou melhor, o operador até existe mas é outra coisa, é o “OU EXCLUSIVO” binário).
Como foi dito, de forma geral se utiliza o Math.pow, mas para este caso acho desnecessário. Se é apenas para elevar ao quadrado fica mais legível fazer simplesmente (r*r)
como nosso amigo Igor Dutra disse:
use a biblioteca math
Math.pow(valor,expoente);
[quote=Diguinho.Max]como nosso amigo Igor Dutra disse:
use a biblioteca math
Math.pow(valor,expoente);[/quote]
Concordo.
Não adianta ter uma api rica se não a usa 
Obrigado pessoal pelas explicaçoes testei todas desde Math ate o mais simples r*r, e todas funcionaram. agradeço ao fernandosavio, lsjunior, otaviojava, IgorDutra, gomesrod, Diguinho.Max e aos demais que nao sitei, incrivel o que Math pode fazer nao sabia que ja dava o valor de PI.
Irá surgir mais duvidas futuramente, nao sobre este mais sobre outros, agradeço a colaboração a paciencia de voçes.
Qualquer coisa só falar.
Mas coloca lá como [resolvido]
coloquei [resolvido] otaviojava mais para mim nao aparece escrito resolvido, tem que colocar na frente do titulo ou antes no primeiro titulo que criei ? ou na ultima mensagem postada ?
[quote=otaviojava][quote=Diguinho.Max]como nosso amigo Igor Dutra disse:
use a biblioteca math
Math.pow(valor,expoente);[/quote]
Concordo.
Não adianta ter uma api rica se não a usa :)[/quote]
Me desculpa otaviojava mas descordo plenamente… A API é rica mas nesse caso não é necessário usá-la. Uma chamada a um método custa muito mais processamento do que fazer x*x …
Fiz uma classe que mostra essa diferença:
public class TesteDesempenho {
public static void main(String args[]) {
long inicio = System.currentTimeMillis(), fim;
double x;
for(int i=0 ; i<90000000 ; i++){
x = Math.PI * Math.pow(i,2); //Testa esse primeiro
//x = Math.PI * i * i; //Depois testa esse
}
fim = System.currentTimeMillis();
System.out.println("Tempo total: " + ((double)(fim-inicio)/1000) + "s");
//Math.pow = 5.706 segundos
//i*i = 0.256 segundos
}
}
Então pessoal, pra mim o desempenho é fundamental e usar Math.pow() para um cálculo tão simples é desperdício de processamento…
Era isso! 
[quote=fernandosavio][quote=otaviojava][quote=Diguinho.Max]como nosso amigo Igor Dutra disse:
use a biblioteca math
Math.pow(valor,expoente);[/quote]
Concordo.
Não adianta ter uma api rica se não a usa :)[/quote]
Me desculpa otaviojava mas descordo plenamente… A API é rica mas nesse caso não é necessário usá-la. Uma chamada a um método custa muito mais processamento do que fazer x*x …
Fiz uma classe que mostra essa diferença:
public class TesteDesempenho {
public static void main(String args[]) {
long inicio = System.currentTimeMillis(), fim;
double x;
for(int i=0 ; i<90000000 ; i++){
x = Math.PI * Math.pow(i,2); //Testa esse primeiro
//x = Math.PI * i * i; //Depois testa esse
}
fim = System.currentTimeMillis();
System.out.println("Tempo total: " + ((double)(fim-inicio)/1000) + "s");
//Math.pow = 5.706 segundos
//i*i = 0.256 segundos
}
}
Então pessoal, pra mim o desempenho é fundamental e usar Math.pow() para um cálculo tão simples é desperdício de processamento…
Era isso! :)[/quote]
Modifico o meu termo para, " a api é rica e tem que ser usada sabiamente".
Obrigado 