elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  FIBONACCI
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: FIBONACCI  (Leído 13,109 veces)
JOSE23

Desconectado Desconectado

Mensajes: 15


Ver Perfil
FIBONACCI
« en: 22 Febrero 2011, 18:52 pm »

Tengo que hacer el siguiente ejercicio pero no se realizarlo, alguien podria hecharme una mano.

Introducir un número entero positivo. A continuación, mostrar los números de Fibonacci comprendidos entre 1 y el número introducido. Cuando alcancemos el límite (sin sobrepasarlo), el programa mostrará cuántos números de Fibonacci existen entre 0 y el límite señalado.

Se que en Fibonacci --> el primer elemento es 0, el segundo es 1, y cada digito siguiente es la suma de los dos anteriores: 0,1,1,2,3,5,8,13,21...

anterior = actual
actual = anterior + actual

El problema aquí es que ambas variables dependen una de la otra. Cuando cambiamos el valor de una, el valor previo (que es el que nos interesa) se pierde para siempre.

La solución es introducir una variable adicional, para guardar uno de los valores mientras actualizamos las variables. Lo que haremos será guardar el resultado de la suma en una variable nueva.

Las asignaciones correctas son:

suma = anterior + actual
anterior = actual
actual = suma

La cuenta la actualizaremos sumándole 1 en cada paso:

cuenta = cuenta + 1


En línea

RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: FIBONACCI
« Respuesta #1 en: 22 Febrero 2011, 19:00 pm »

Lo siento no se hacen tareas, a menos que muestres algo de código de tus intentos y dudas específicas nadie podrá ayudarte.

Saludos


En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: FIBONACCI
« Respuesta #2 en: 22 Febrero 2011, 19:02 pm »

Hola

Has explicado el algoritmo perfectamente, ahora pásalo a lenguaje C o C++, piensa un poco antes de pedir ayuda.

Postea lo que lleves hasta ahora

Saludos
En línea

Breakbeat como forma de vida
JOSE23

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: FIBONACCI
« Respuesta #3 en: 22 Febrero 2011, 19:19 pm »

Código:


#include <stdio.h>                   //Librerias que utilizara
#include<conio.h>                          //Librerias que utilizara

main(){                       //Inicio el cuerpo del programa
int num1, num2, suma, numero,cuenta;   //Declaro variables del tipo entero
cuenta=0;
num1=0; num2=1;                   //Inicializo mis variables con valor 1

printf("Ingresa el Numero a calcular por Fibonacci: ");        //Imprimo mensaje solicitando numero limite
scanf("%i",&numero);              //Guardo en una variable el numero limite

printf("\nEl primer numero de Fibonacci es %i", num1);                  //Imprimo el primer numero fibonacci 1

printf("\nEl segundo numero de Fibonacci es %i", num2);               //Imprimo el segundo numero fibonacci 1

 printf ("\nExisten %i numeros de Fibonacci entre 0 y %i",cuenta,numero);
 
do {                                       //Inicializa ciclo do while
   suma=num1+num2;          //se suma num1 y num2 y se guarda en suma
   printf("\nEl valor de la suma es %i", suma);             //se imprime el valor de suma
   num1=num2;                    //se asigan el valor de num2 a num1
   num2=suma;
   cuenta=cuenta+1;                   //se asigna el valor de suma a num2
 
   }  while(suma<=numero);          //se lee la conficion del ciclo suma sea menor o igual al limite, el ciclo seguira realizandose
fflush(stdin);
getchar();  //da una pausa para que se pueda visualizar el resultado

}                   //fin del programa
 

Tengo este codigo, pero no me sale fino
En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: FIBONACCI
« Respuesta #4 en: 22 Febrero 2011, 19:33 pm »

Hola

¿Para que muestras "cuenta" antes del bucle? Lo lógico es mostrarla después, ¿no?

Además tienes que cambiar el bucle que utilizas do-while por un bucle while (acuérdate de inicializar la variable "suma" antes del bucle)

Y léete lo que te dije ayer
- No utilices conio
- main debe devolver un entero
- etc

Saludos

EDITO: utiliza la etiqueta GeSHi para poner el código para que se lea mejor (la tienes al lado del botón de cambio de fuente)
« Última modificación: 22 Febrero 2011, 19:34 pm por satu » En línea

Breakbeat como forma de vida
RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: FIBONACCI
« Respuesta #5 en: 22 Febrero 2011, 19:36 pm »

Bueno el código claramente tiene varios errores.

En primer lugar te sugiero que no uses Conio, después que comiences el programa con:
Código
  1. int main()
Y que lo termines  con un:
Código
  1. return 0;

Ahora también que inicialices todas tus variables a la hora de declararlas... ahh no te sigo diciendo porque me irrita >.<..... más bien! porfaor antes de que sigas cometiendo errores lee esto: http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html

Ahora estás haciendo mal algunas cosas:
Código
  1. while(suma<=numero);
Esto no realizara el ciclo el número de veces que el usuario quiere, ya que lo estás comparando es con el resultado de la secuencia en el ciclo, debería ser más bien:
Código
  1. while(cuenta<=numero);

También te sugiero que muestres estas lineas después de quepidas e Límite:

Código
  1. printf("\nEl primer numero de Fibonacci es %i", num1);
  2. printf("\nEl segundo numero de Fibonacci es %i", num2);    

Solamente tienes un límite superior más no uno inferior así que no veo el porque de esta linea:
Código
  1. printf ("\nExisten %i numeros de Fibonacci entre 0 y %i",cuenta,numero);
Yade por sí sabes que van a existir "límite" números de la secuencia de Fibonacci

y esto no es un error de programación es un error de entendimiento y redacción:
Código
  1. printf("Ingresa el Numero a calcular por Fibonacci: ");  
debería ser mejor algo parecido a esto:
Código
  1. printf("Ingresa la cantidad de numeros de la secuencia de Fibonacci a calcular: ");  

El resto es cuestión de malos hábitos de programación....
« Última modificación: 22 Febrero 2011, 19:55 pm por gankutsuo » En línea

JOSE23

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: FIBONACCI
« Respuesta #6 en: 22 Febrero 2011, 19:43 pm »

Gracias por las respuestas, pero NO ENTIENDO!!!
En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: FIBONACCI
« Respuesta #7 en: 22 Febrero 2011, 19:45 pm »

Di qué es lo que no entiendes porque no te vamos a hacer el ejercicio
En línea

Breakbeat como forma de vida
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.148


I'Love...!¡.


Ver Perfil WWW
Re: FIBONACCI
« Respuesta #8 en: 22 Febrero 2011, 19:55 pm »

.
En este hilo hay varios codigos de varios usuarios de vb6 realizando el codigo de la maneras mas prolija y tambien mas rapida.

Puedes ver los codigos fuente para darte una idea de como hacerlo.

http://foro.elhacker.net/programacion_visual_basic/reto_isfibonaccinumbern_as_long_as_boolean-t319480.0.html;msg1580947#msg1580947

Temibles Lunas!¡.
En línea

The Dark Shadow is my passion.
pajaras

Desconectado Desconectado

Mensajes: 172



Ver Perfil WWW
Re: FIBONACCI
« Respuesta #9 en: 23 Febrero 2011, 00:38 am »

una alternativa es con recursividad, pruebalo, distingue los casos base y aplica el caso recursivo donde la función se llama a sí misma. Una variante interesante, en breves cuelgo el algoritmo, NO en C.

un saludo, pajaras
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Secuencia fibonacci
Java
Erik# 7 15,589 Último mensaje 1 Octubre 2008, 18:04 pm
por Sk9ITk5Z
Sucesión Fibonacci [Batch] « 1 2 »
Scripting
leogtz 17 11,637 Último mensaje 15 Junio 2009, 17:26 pm
por leogtz
Serie Fibonacci C++
Programación C/C++
Manimecker 3 21,002 Último mensaje 16 Enero 2012, 22:34 pm
por Manimecker
[?] Error en secuencia de Fibonacci.
Programación C/C++
LlaboneTM 7 5,381 Último mensaje 26 Mayo 2013, 15:43 pm
por leosansan
FIBONACCI DE N MUY GRANDE
Programación C/C++
jgonzalezo 7 3,169 Último mensaje 21 Septiembre 2014, 02:15 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines