Para encontrar a raiz quadrada de um número, você precisa encontrar a operação inversa da multiplicação de um número por si só. Enquanto a linguagem de programação Java fornece uma função built-in " Math.sqrt ()" para calcular a raiz quadrada de um número qualquer , ele aceita apenas um ponto flutuante valor duplo tipo de dados. No entanto, você pode encontrar-se a necessidade de encontrar a raiz quadrada de um número em um tipo de dados diferente. Para este efeito , você pode construir uma função personalizada para calcular o valor da raiz quadrada manualmente. Instruções Definir um método para calcular a raiz quadrada . Você deve dar o método um nome descritivo que evidencia a sua função . Certifique-se que todos os elementos necessários de um método estão presentes , ou seja, seu tipo de retorno , nome, parênteses que encerram para argumentos de método ea declaração corpo chaves. Por exemplo, um método adequado para obter a raiz quadrada de um número é : BigDecimal público se ( BigDecimal n) {} Conclua o código do corpo do método de escrita um algoritmo para calcular a aproximação da raiz quadrada de um número . Você pode usar o método de iteração de Newton para formar a base matemática de seu cálculo. Neste método, você pode calcular a raiz quadrada de um número , resolvendo repetidamente o XK equação recorrentes + 1 = 1 /2 ( xk + n /xk ), até o valor de aproximação que se aproxime do valor real de raiz quadrada. Por exemplo , o seguinte é um segmento de código em Java que realiza este cálculo : iterações = 0; boolean mais = true; enquanto (mais) {< br > lastGuess = palpite ; acho = n.divide ( palpite , escala, BigDecimal.ROUND_HALF_UP ); acho = guess.add ( lastGuess ); acho = guess.divide ( DOIS , escala, BigDecimal.ROUND_HALF_UP ); trace ( "Next palpite " + guess.toString ()); erro = n.subtract ( guess.multiply ( suposição ) ); if ( + + iterações > = maxIterations ) { mais = false; } else if ( lastGuess. igual a ( acho) ) { mais = error.abs ( ) compareTo ( ONE) > = 0 ; . } } retorno acho ; Definir outros métodos de apoio ao método descoberta da raiz quadrada principal , sempre que necessário. Você pode encontrar -se a necessidade de definir métodos para encontrar o valor inicial aproximação , o cálculo de erros e definir o número de iterações. Por exemplo, o código a seguir encontra o valor inicial aproximação a ser usado no cálculo principal : private static BigDecimal getInitialApproximation ( BigDecimal n) { BigInteger integerPart = n.toBigInteger (); int length = integerPart.toString () comprimento (); if (( comprimento % 2) == 0 ) { comprimento - ,. } comprimento /= 2; BigDecimal acho = ONE.movePointRight (comprimento) ; retornar palpite ; } 4 Teste o seu método de raiz quadrada , chamando-o e imprimir o resultado na tela. Por exemplo : System.out.println (" Calculando a raiz quadrada de "); sqrt = app.get (n ); < br >
on JavaScript - (Add Interactivity) The Programming language made in 10 days. Page 2
on JavaScript - (Add Interactivity) The Programming language made in 10 days. Page 3
on JavaScript - (Add Interactivity) The Programming language made in 10 days. Page 4
Grepper Account Login Required import java.util.Scanner; import java.lang.Math; public class RaizQuadrada { public static void main(String[] args) { Scanner ler = new Scanner(System.in); int numero; double raiz; numero = ler.nextInt(); raiz = Math.sqrt(numero); System.out.printf("%.4f", raiz); } }
Estava fazendo alguns exercícios básicos em Java e um deles pedia:
Aí eu fiz tudo direito, só que deu um problema, quando eu digito a 1 letra: Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: empty String at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1842) at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110) at java.lang.Double.parseDouble(Double.java:538) at Apresentacao.TelaRaiz.jtNumeroKeyPressed(TelaRaiz.java:67) at Apresentacao.TelaRaiz.access$000(TelaRaiz.java:12) at Apresentacao.TelaRaiz$1.keyPressed(TelaRaiz.java:38) at java.awt.Component.processKeyEvent(Component.java:6491) at javax.swing.JComponent.processKeyEvent(JComponent.java:2832) at java.awt.Component.processEvent(Component.java:6310) at java.awt.Container.processEvent(Container.java:2236) at java.awt.Component.dispatchEventImpl(Component.java:4889) at java.awt.Container.dispatchEventImpl(Container.java:2294) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954) at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:806) at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1074) at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:945) at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:771) at java.awt.Component.dispatchEventImpl(Component.java:4760) at java.awt.Container.dispatchEventImpl(Container.java:2294) at java.awt.Window.dispatchEventImpl(Window.java:2746) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) Ele executa tudo e mesmo com erro ele calcula a raiz, mas somente quando eu digito a segunda letra, ou quando eu digito a primeira letra e aperto ENTER. Porque está dando esse erro? Eu queria que quando digitasse, ele capturasse e mostrasse o resultado. Trecho de Erro: private void jtNumeroKeyPressed(java.awt.event.KeyEvent evt) { int i = (int)(Double.parseDouble(jtNumero.getText())); jlResultado.setText("A raiz quadrada de: "+ i + " é: " + Math.sqrt(i)); } |