Algorítmo para Calcular Raiz Quadrada
Publicado por Renê de Souza Pinto 27/02/2005
[ Hits: 57.764 ]
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);
}
Gerando uma "number list" de 6 digitos
Nenhum comentário foi encontrado.
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Linux Mint: Zram + Swapfile em Btrfs
O widget do Plasma 6 Área de Notificação
Quero instalar, configurar, setar tamanho do rsyslog. (4)
[Resolvido] Conselho distribuiçao brasileira (9)









