• Sábado 14 de Diciembre de 2024, 17:47

Autor Tema:  Problema con datos de comparacion  (Leído 1008 veces)

Daggoth

  • Miembro activo
  • **
  • Mensajes: 46
    • Ver Perfil
Problema con datos de comparacion
« en: Viernes 13 de Noviembre de 2009, 11:19 »
0
Hola,

llevo unos dias con este problema y no soy capaz de sacarlo. Tengo que hacer un programa en el cual se calculen dos numeros, uno de ellos es fijo o constante y el otro viene dado por una sucesion, y una vez calculados, compruebe que la diferencia por aproximacion al numero constante desde el calculado este dentro de un valor introducido por teclado. Hasta ahi todo claro y facil de hacer, pero mi problema viene cuando he de comparar la diferencia entre los valores. La diferencia ha de ser de 0.1 y ahi esta el problema, pues ese numero es un numero real y por tanto tendre que usar Doubles o Long quedando para el ordenador como 0.100000 pero claro, esa es la diferencia teorica, pero la real siempre sera 0.1xxxxx y por tanto jamas se cumplira que se acerque a esa diferencia de 0.1 introducida por teclado.

Por si no queda claro, tambien os dejo el codigo que tengo por ahora:

Código: C++
  1.  
  2. .............
  3.  
  4.  
  5. int main(){
  6.  
  7.     double diferencia, aureo, resta, calculo;
  8.     int n;
  9.  
  10.     cout << "Introduce el valor de la diferencia en la aproximacion: ";
  11.     cin >> diferencia;
  12.  
  13.     calculo = 0;
  14.     n = 0;
  15.     resta=0;
  16.     aureo = (1 + sqrt(5.0))/2.0;
  17.  
  18.     while(resta != diferencia){
  19.         calculo=(fibonacci(n+1))/(fibonacci(n));
  20.         resta=aureo-calculo;
  21.         n++;
  22.     }
  23.  
  24.     cout << "RESULTADO = " << n-1;
  25.    
  26.     cout << "nn";
  27.     system("pause");
  28. }
  29.  
  30.  

Donde aureo es el numero constante y calculo el numero calculado por aproximacion mediante la serie de fibonacci.

Gracias por adelantado :good: