#include main(){ /* ******************************************************************** Exemplo de uso de comando repetitivo 'while' para calcular a raiz quadrada aproximada de um número real POSITIVO ******************************************************************** */ float x; // número real cuja raiz quadrada se deseja calcular float x1,x2; // variáveis auxiliares que definem o 'intervalo de busca' pela raiz float rq; // mantém o valor calculado float err; // margem de erro (as contas com float nunca são exatas) /* entrada do valor de x */ printf("valor de x:"); scanf("%f",&x); /* cálculo da margem de erro esperada */ err = x*1.0e-7; /* cálculo da raiz quadrada de x */ x1 = 0; x2 = x; while(x2 > x1){ rq = (x1 + x2) / 2.0; // chute: a raiz está no meio do intervalo (x1,x2) if( rq*rq > x) x2 = rq - err; // diminuir o intervalo pela direita else x1 = rq + err; // ou pela esquerda } printf("raiz(%9.7f) = %9.7f erro:%e\n",x,rq,err); system("PAUSE"); }