Algorítmo para Calcular Raiz Quadrada

Publicado por Renê de Souza Pinto 27/02/2005

[ Hits: 55.087 ]

Homepage: http://renesp.com.br

Download raiz.zip




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.

  



Esconder código-fonte

/******************************************
 * 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);
}

Scripts recomendados

A - Comando strcpy

NCURSES - Parte III

Método de Power para calcular o autovelor dominante de uma matriz

Cadastro de alunos em C

Um joguinho em C


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário