Algorítmo para Calcular Raiz Quadrada
Publicado por Renê de Souza Pinto 27/02/2005
[ Hits: 57.676 ]
Homepage: http://renesp.com.br
Este pequeno programa ilustra um interessante algorítmo desenvolvido pelo matemático François Viète para calcular a raiz quadrada de um número.
O Algorítmo parte do princípio de que a raiz de um número seja a soma de qualquer número que nós podemos chutar mais um erro, que condiz com a diferença entre o chute e o valor real da raiz.
/******************************************
* Programa: Agorítmo para Calcular Raiz Quadrada
* Autor...: Renê de Souza Pinto
* Data....: 27/02/2005
*
* Compilado com: gcc 3.3.4 *******************************************/
#include <stdio.h>
float raiz(float x);
float absF(float x);
int main(void) {
float n;
printf("\n\nForneça um número que deseja calcular a raiz quadrada: " );
scanf("%f",&n);
printf("\n\nA raiz quadrada de %.5f é %.12f\n\n",n,raiz(n));
return(0);
}
/* Calcula Valor absoluto para tipo float */
float absF(float x) {
if(x < 0)
return(-1*x);
else
return(x);
}
/* Calcula a Raiz Quadrada */
float raiz(float x) {
float r = 1.00; /* Chute inicial */
float rp, res;
int sair = 0;
while(!sair) {
res = r + ((x - (r*r)) / (2*r));
/* Checa resultado */
rp = res * res;
if( (float)(rp-x) == 0 || absF(rp-x) < 0.0000000000000001 || r == res) {
sair = 1;
} else {
r = res;
}
}
return(res);
}
Agenda eletronica com banco de dados em arquivo texto
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
ERRO: LAZARUS 4.2 64 no Linux MINT não entra mais apos ajustar desktop... (0)
Pergunta: Meu teclado não está respondendo direito como e consertar? (2)
Secure boot, artigo interessante, nada técnico. (6)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)









