Anterior: método JavaScript tan () Show Seguinte: JavaScript sin () Método JavaScript Object Math Retorna a raiz quadrada de um número: Math.sqrt(9); saída: 3 tente » Definição e Usosqrt () retorna a raiz quadrada de um número. Suporte a navegadoresTodos os principais navegadores suportam sqrt () Método gramáticaparâmetro ValorValor de retorno
detalhes técnicosmais exemplosNeste caso, vamos voltar à raiz quadrada das diferentes figuras: var a=Math.sqrt(0); var b=Math.sqrt(1); var c=Math.sqrt(9); var d=Math.sqrt(64); var e=Math.sqrt(-9); a, b, c, d, e e de saída: tente » JavaScript Object Math Anterior: método JavaScript tan () Seguinte: JavaScript sin () Método
Neste exemplo, você aprenderá a escrever um programa para encontrar a raiz quadrada de um número em JavaScript. Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação JavaScript:
Para encontrar a raiz quadrada de um número em JavaScript, você pode usar o Math.sqrt()método integrado . Sua sintaxe é: Math.sqrt(number);Aqui, o Math.sqrt()método pega um número e retorna sua raiz quadrada. Exemplo: raiz quadrada de um número// take the input from the user const number = prompt('Enter the number: '); const result = Math.sqrt(number); console.log(`The square root of $(number) is $(result)`);Resultado Exemplo 2: Raiz quadrada de diferentes tipos de dadosconst number1 = 2.25; const number2 = -4; const number3 = 'hello'; const result1 = Math.sqrt(number1); const result2 = Math.sqrt(number2); const result3 = Math.sqrt(number3); console.log(`The square root of $(number1) is $(result1)`); console.log(`The square root of $(number2) is $(result2)`); console.log(`The square root of $(number3) is $(result3)`);Resultado A raiz quadrada de 2,25 é 1,5 A raiz quadrada de -4 é NaN A raiz quadrada de hello é NaN
Nós usamos nossos próprios cookies e cookies de terceiros para atividades de marketing e para lhe proporcionar uma melhor experiência. Leia sobre como usamos cookies e como você pode controlá-los, clicando em Preferências.
Neste tutorial de JavaScript, vamos aprender como trabalhar com Matemática usando o objeto nativo Math, da linguagem, que fornece diversos métodos para cálculos matemáticos.
Bom, vamos lá. Primeiro vamos estudar a square root, que significa raiz quadrada. Para saber a raiz quadrada de qualquer número, basta usar o método sqrt() do objeto Math, que recebe um número como parâmetro e retorna um número também. Ou seja: Math.sqrt(16) = 4 Math.sqrt(25) = 5 Math.sqrt(2112) = 45.95650117230423 Ou seja, se o resultado for inteiro, ele mostra o inteiro. Se for 'quebrado', ele mostra o float correspondente. Bem simples calcular raiz quadrada, não ? Para calcular um número x elevado a y, basta fazer: Math.pow(x,y) E vale tanto para números inteiros como decimais. Por exemplo: Math.pow( 2, 7 ) = 128 Math.pow( 9, 0.5 ) = 3.0 Para calcular o seno de um número x em radianos, use: Math.sin(x) Por exemplo: Math.sin(0) = 0 Math.sin(0.523599) = 0.500 (0,523599 radianos valem 30 graus). Math.sin(1.5708) = 0.99999 (seno de 90 graus) Já para calcularmos o cosseno, fazemos: Math.cos(x) Por exemplo: Math.cos(0) = 1 Math.cos(1.0472) = 0.49999 (1.0472 radianos valem 60 graus) Math.cos(1.5708) = 0.0000 Já para calcularmos a tangente de x (em radianos), fazemos: Math.tan(x) Por exemplo: Math.tan(0) = 0 Math.tan(0.785398) = 0.49999 (0.785398 equivale a 45 graus) Exponencial de um valor x é o mesmo que: e^x (ou seja, e elevado a x). Para calcular em JavaScript, faça: Math.exp(x) Por exemplo: Math.exp( 1 ) = 2.71828 Math.exp( 2 ) = 7.38906 Para calcular o logaritmo natural, na base e, faça: Math.log(x) Veja bem, não é o logaritmo comum. É o ln X, logaritmo na base natural e. Por exemplo: Math.log( 2.718282 ) = 1 Math.log( 7.389056 ) = 2 Outros métodos muito usados do objeto Math, são as funções de arredondar. Para arredondar um número para cima, fazemos: Math.ceil(x) Ele vai arredondar para o menor valor inteiro, que não é menor que x. Por exemplo:
Math.ceil( 21.12 ) = 22 Math.ceil( -8.8 ) = -8 Para arredondar para baixo, usamos: Math.floor(x) Ele vai arredondar para o maior valor, maior que x. Por exemplo: Math.floor( 21.12 ) = 21 Math.floor( - 8.8 ) = -9 Já para arredondar para o inteiro mais próximo, não importante se é pra mais ou pra menos, use: Math.round(x) Por exemplo:
Math.round( 8.75 ) = 9 Math.round( 21.12 ) = 21 O que o JavaScript faz se você tentar arredondar um número que está a igual distância do maior e menor inteiro mais próximo, por exemplo: 1.5 ? Teste e descubra! Para calcular o valor máximo entre os números x e y, use: Math.max(x,y) Por exemplo:
Math.max( 2.1, 1.2 ) = 2.1 Math.max( -21, -12) = -12 Já para calcular o menor valor entre os números x e y, faça: Math.min(x,y) Por exemplo:
Math.min( 2.1, 1.2 ) = 1.2 Math.min( -21, -12 ) = -21 Para calcular o valor absoluto de um número (ou seja, sua distância até o ponto 0 do plano cartesiano), também conhecido por módulo, faça: Math.abs(x) Por exemplo: Math.abs(21) = 21 Math.abs(-12) = 12 Constantes MatemáticasOutra importante ferramenta que o Objeto Math nativo do JavaScript nos proporciona, é a possibilidade de se trabalhar com as principais contantes da Matemática, vejamos algumas.
<html> <head> <title>Estudando JavaScript</title> </head> <body> <script type="text/javascript"> var valores = new Array(1, 2, 3, 4, 5, 6, 7); document.write("Valores no vetor: " + valores + "<br>"); document.write("Retornando os três primeiros elementos<br>"); var valores2 = valores.slice(0, 3); document.write("Valores no novo vetor: " + valores2); </script> </body> </html> <script type="text/javascript"> function obterSoma(valor, indice, vetor){ if(valor >= 20){ soma = soma + valor; } } var valores = new Array(21, 5, 30, 7, 12, 3); // vamos obter a soma dos valores maiores ou iguais a 20 var soma = 0; // percorremos os elementos do vetor individualmente valores.forEach(obterSoma); window.alert("A soma é: " + soma); </script>
Existe uma aproximação rápida de raiz quadrada através de uma equação linear: L(x) = f(a) + f'(a)*(x-a)Para um dado valor a em que a função tenha um valor conhecido e f'(_) sendo a derivada da função. Por coincidência, a derivada da raiz quadrada é a metade do inverso da raiz quadrada. O valor da raiz quadrada é plenamente conhecida em quadrados perfeitos, logo, vamos tratar a como sendo um quadrado perfeito, e f(a) sua raiz inteira. Logo, a fórmula da aproximação pode ser transformada assim: (x-a) sqrt_approx(x) = sqrt_int(a) + ------------- 2*sqrt_int(a)Para a aproximação dar certo, preciso escolher um a próximo o suficiente de x. Assim, nosso algoritmo agora se resume a:
A grosso modo, seria isso: function sqrt_approx(x) { let sqrt_a = raiz_do_quadrado_mais_proximo(x); let a = sqrt_a * sqrt_a; // se x for um quadrado perfeito, x-a resultará em zero e a resposta será sqrt_a return sqrt_a + (x-a)/(2*sqrt_a); }Ótimo, agora só falta definir quem é o quadrado mais próximo de x. Como estamos lidando com números reais, não faz sentido investigar raízes de números negativos, logo vou reduzir o conjunto de busca apenas para os positivos. A ideia é bem simples: itero de 0 a infinito, verificando a distância do quadrado da variável de iteração para o x. No momento em que houver uma inflexão (ie, a distância deixar de ser negativa e passar a ser positiva), retorno ou o elemento atual da iteração ou o elemento anterior, de acordo com o quadrado mais próximo de x: function raiz_do_quadrado_mais_proximo(x) { let i = 0; while (true) { let ii = i * i; if (ii - x > 0) { let dist_ii = x - ii; let dist_ant = x - (i-1)*(i-1); if (dist_ii < 0) { dist_ii *= -1; } if (dist_ant < 0) { dist_ant *= -1; } return dist_ant < dist_ii? i-1: i; } } }O código acima pode ser otimizado trivialmente para: function raiz_do_quadrado_mais_proximo(x) { let i = 0; while (i*i < x) { // itera até a inflexão i++; } let dist_ii = i*i - x; // i*i >= x garantido, depois da inflexão, daí dist_ii está sendo calculado já positivo let dist_ant = x - (i-1)*(i-1); // antes da inflexão, x será maior que o quadrado, daí dist_ant está sendo calculado já positivo return dist_ant < dist_ii? i-1: i; }Juntando tudo, temos:
function faz_leitura(form) { let x = Number(document.getElementById("quad").value); let raiz_apprx = sqrt_approx(x); let err = x - (raiz_apprx * raiz_apprx); if (err < 0) { err = -err; } document.write("<div>Raiz quadrada aproimada de " + x + " é " + raiz_apprx + ", com erro de " + err + "</div>"); } function raiz_do_quadrado_mais_proximo(x) { let i = 0; while (i*i < x) { i++; } let dist_ii = i*i - x; let dist_ant = x - (i-1)*(i-1); return dist_ant < dist_ii? i-1: i; } function sqrt_approx(x) { let sqrt_a = raiz_do_quadrado_mais_proximo(x); let a = sqrt_a * sqrt_a; // se x for um quadrado perfeito, x-a resultará em zero e a resposta será sqrt_a return sqrt_a + (x-a)/(2*sqrt_a); } <form onsubmit="faz_leitura(this); return false;"> <div> <input required type="text" id="quad"/> <label>valor a ser calculada a raiz</label> </div> <button type="submit">SQRT</button> </form> |