Algorítmo para Calcular Raiz Quadrada
Publicado por Renê de Souza Pinto 27/02/2005
[ Hits: 57.521 ]
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); }
Cálculo de divisores de um número.
Nenhum comentário foi encontrado.
Automatizando digitação de códigos 2FA no browser
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Como converter imagens PNG/JPEG para SVG em linha de comando
Fez porcaria no teu repositório Git? Aprenda a restaurar uma versão anterior do seu código!
Restaurando Fontes de Download do Hydra no Linux
Atualizando "na marra" o YT-DLP quando começa a dar erro de downloads
Como instalar o WPS com interface e corretor ortográfico em PT-BR no Arch Linux
Impossível ativar audio 5.1 (1)
Erro na atualização dos pacotes (1)
Problema com Conexão Outlook via Firewall (OpenSUSE) com Internet Fibr... (3)