• Olá Visitante, se gosta do forum e pretende contribuir com um donativo para auxiliar nos encargos financeiros inerentes ao alojamento desta plataforma, pode encontrar mais informações sobre os várias formas disponíveis para o fazer no seguinte tópico: leia mais... O seu contributo é importante! Obrigado.

Principiante em C

thedarknight

Novo
Membro Inactivo
Entrou
Mai 28, 2012
Mensagens
1
Gostos Recebidos
0
Ola galera, por favor me ajudem nessa questão:

Saiba que o valor aproximado da raiz quadrada de um número real N qualquer pode ser calculado tão precisamente quanto se queira conforme segue:
R0 = N; R1 = (R0 + N / R0) / 2; R2 = (R1 + N / R1) / 2; R3 = (R2 + N / R2) / 2; …
Em outras palavras, o primeiro termo da seqüência vale N; todos os demais termos podem ser obtidos pela soma do termo anterior da seqüência com N dividido pelo termo anterior da seqüência.
Faça um programa em C que solicita a digitação de um número real, calcula pelo método acima exposto sua raiz quadrada, escrevendo-a na tela.
Naturalmente não poderemos calcular todos os infinitos termos da série acima. Seu programa deverá limitar-se aos 1000 primeiro termos. :p :|

Obrigado gente.
 

volrath_

GF Bronze
Membro Inactivo
Entrou
Dez 1, 2008
Mensagens
12
Gostos Recebidos
0
Vê este artigo Recursividade

e procura por mais coisas sobre recursividade, é esse o caminho. Penso que ninguem vai fazer o trabalho de casa por ti ;)

Abraço e boa sorte
 

olivares

GF Bronze
Entrou
Fev 25, 2008
Mensagens
12
Gostos Recebidos
0
#include <stdio.h>

int main()
{
float num;
int i,l;
double r[1000];

for( l=0; l < 10; l++) {

printf("\n\nIntroduza um numero positivo: ");
fflush (stdin);
int ver = scanf("%f", &num);
if ( ver < 1 ) {
printf("\nEsse valor nao é um numero, tente novamente.\n"); return 0;

}
if ( num == 0 ) {
printf("\nA raíz quadrada de 0, é o proprio 0.\n");return 0;
}
if ( num < 1 ) {
printf("\nEsse valor nao é um numero positivo, tente novamente.\n");return 0;
}
r[0] = num;
printf("\n\nO numero é %f ", r[0]);

for ( i=1; i<=1000; i++) {
r =(r[i-1]+(num/r[i-1]))/2;
}
printf("\n\nA raiz é %.8f ", r[1000]);
}

return 0;
}
 

olivares

GF Bronze
Entrou
Fev 25, 2008
Mensagens
12
Gostos Recebidos
0
#include <stdio.h>

int main()
{
float num;
int i,l;
double r[1000];

for( l=0; l < 10; l++) {

printf("\n\nIntroduza um numero positivo: ");
fflush (stdin);
int ver = scanf("%f", &num);
if ( ver < 1 ) {
printf("\nEsse valor nao é um numero, tente novamente.\n"); return 0;

}
if ( num == 0 ) {
printf("\nA raíz quadrada de 0, é o proprio 0.\n");return 0;
}
if ( num < 1 ) {
printf("\nEsse valor nao é um numero positivo, tente novamente.\n");return 0;
}
r[0] = num;
printf("\n\nO numero é %f ", r[0]);

for ( i=1; i<=1000; i++) {
r =(r[i-1]+(num/r[i-1]))/2;
}
printf("\n\nA raiz é %.8f ", r[1000]);
}

return 0;
}
 
Topo