SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: dooky_titay en Martes 5 de Octubre de 2004, 10:26

Título: Serie Fibonacci Usando Un Arreglo De 20 Posiciones
Publicado por: dooky_titay en Martes 5 de Octubre de 2004, 10:26
tengo problemas a la hora de efectuar la operacion usando el arreglo :P
ya tengo el programa hecho con un for y con un while pero me falta el del arreglo
ke muestre las primeras 20 posiciones de la serie de fibonacci  <_< si alguien puede echarme la mano se los agradeceria :D, creo ke me estoy volviendo loco  :blink:
Título: Re: Serie Fibonacci Usando Un Arreglo De 20 Posiciones
Publicado por: Arw3n_B3ty en Martes 5 de Octubre de 2004, 18:02
Hola :hola: !! Qué es exactamente lo que te hace falta?? meterlos al arreglo? o desplegarlo o qué?? Podrías poner más clara tu pregunta? y poner un poco del código que tienes :comp: .....así sería más fácil ayudarte.... ;)
Título: Re: Serie Fibonacci Usando Un Arreglo De 20 Posiciones
Publicado por: RadicalEd en Martes 5 de Octubre de 2004, 19:29
POR QUE NO DICES EN UN FOR UN WHILE LO SIGUIENTE
Código: Text
  1.  
  2. for(x=1;x&#60;20;x++)
  3. {//resto del codigo
  4. }
  5.  
  6.  
ASI TE PUEDE FUNCIONAR YO LO HE HECHO DE ESTA FORMA Y ME FUNCIONA
Título: Re: Serie Fibonacci Usando Un Arreglo De 20 Posiciones
Publicado por: RadicalEd en Martes 5 de Octubre de 2004, 19:48
MIRA EL CODIGO COMPLETO CON FOR
Código: Text
  1.  
  2. #include &#60;stdio.h&#62;
  3. #include &#60;conio.h&#62;
  4.  
  5. int main ()
  6. {
  7.   int a, b, x;
  8.   a = 1;
  9.   b = 1;
  10.   printf (&#34;%d&#092;n&#34;, a);
  11.   for (x=1; x &#60; 20; x++)
  12.   {
  13.     printf (&#34;%d&#092;n&#34;, b);
  14.     b += a;
  15.     a = b - a;
  16.   }
  17.   getch();
  18. }
  19.  
AHORA CON WHILE
Código: Text
  1.  
  2. #include &#60;stdio.h&#62;
  3. #include &#60;conio.h&#62;
  4.  
  5. int main ()
  6. {
  7.   int a, b, x;
  8.   a = 1;
  9.   b = 1;
  10.   printf (&#34;%d&#092;n&#34;, a);
  11.   x=1;
  12.   while(x&#60;20)
  13.    {
  14.     printf (&#34;%d&#092;n&#34;, b);
  15.     b += a;
  16.     a = b - a;
  17.     x=x+1;
  18.   }
  19.   getch();
  20. }
  21.  
Título: Re: Serie Fibonacci Usando Un Arreglo De 20 Posiciones
Publicado por: RadicalEd en Martes 5 de Octubre de 2004, 20:17
AHORA YO TENGO UN PROBLEMA, QUERIA AUTOMATIZARLO PARA COLOCAR EL ARREGLO QUE SE QUISIERA Y ME SACA
Citar
Se ha producido una violación de acceso de memoria (fallo de segmentación) en su programa
LO HAGO EN Dev-C++ Y ASI ESTA EL CODIGO COMPLETO
Código: Text
  1.  
  2. #include &#60;stdio.h&#62;
  3. #include &#60;conio.h&#62;
  4. int main ()
  5. {
  6.   int a, b, x,c;
  7.   a = 1;
  8.   b = 1;
  9.   printf(&#34;cantidad de digitos: &#34;);
  10.   scanf(&#34;%d&#34;,c);
  11.   printf (&#34;%d&#092;n&#34;, a);
  12.   for (x=1; x &#60; c; x++)
  13.   {
  14.     printf (&#34;%d&#092;n&#34;, b);
  15.     b += a;
  16.     a = b - a;
  17.   }
  18.   getch();
  19. }
  20.  
Título: Re: Serie Fibonacci Usando Un Arreglo De 20 Posiciones
Publicado por: The Black Boy en Martes 5 de Octubre de 2004, 20:40
bueno cabe aclarar que la politica del foro no es hacer las tareas.. y recuerden ademas que el moderador de este foro es bastante enfatico con esto..
 ;)
Saludos :hola:
Título: Re: Serie Fibonacci Usando Un Arreglo De 20 Posiciones
Publicado por: dooky_titay en Domingo 10 de Octubre de 2004, 18:55
Gracias por su ayuda  :D y aqui esta el codigo del fibonacci usando un arreglo
#include <stdio.h>
#include <conio.h>
#include <process.h>
#include <dos.h>

void candidato(){
int elec[10][3],x=0,y=0;
int voto=0,voto1=0,voto2=0;
clrscr();
   for(x=0;x<=9;x++)
      for(y=0;y<=2;y++){
      printf("\n Votos de la Ciudad %d del Candidato %d: ",x+1,y+1);
      scanf("%d",&elec
   for(x=0;x<=9;x++){
      voto+=elec
      voto1+=elec
      voto2+=elec
      printf("\n\nVotos Totales del Candidato 1 son: %d",voto);
      printf("\n\nVotos Totales del Candidato 2 son: %d",voto1);
      printf("\n\nVotos Totales del Candidato 3 son: %d",voto2);
      if (voto>voto1 && voto>voto2)
        printf("\n\nEl Ganador es el Candidato 1");
      if (voto1>voto && voto1>voto2)
        printf("\n\nEl Ganador es el Candidato 2");
      if (voto2>voto && voto2>voto1)
        printf("\n\nEl Ganador es el Candidato 3");
      if (voto==voto1 && voto==voto2)
        printf("\n\nLos Candidatos quedaron empatados");
}

void fibonacci()
{
clrscr();
float fibon[20];
int x;
fibon[0]=1;
fibon[1]=1;
   printf("%.0f",fibon[0]);
   printf("\n%.0f",fibon[1]);
   for(x=2;x<20;x++)
   {
   fibon
   printf("\n%.0f",fibon
   }
}

void menu()
{
int sel,x;
gotoxy(25,10);printf("----====M   E   N   U====----");
gotoxy(30,12);printf("1.-SERIE FIBONACCI");
gotoxy(30,14);printf("2.-VOTOS DE CANDIDATO");
gotoxy(30,16);printf("3.-SALIR");
gotoxy(30,18);printf("Opcion: ");
gotoxy(39,18);scanf("%d",&sel);
   switch(sel)
   {
   case 1:
      clrscr();
      gotoxy(32,16);printf(" ....CARGANDO....");
         for(x=20;x<=60;x++){
         gotoxy(x,18);
         printf("²");
         delay(40);}
      fibonacci();
      printf("\n\nPresione una tecla para continuar.....");
      getch();
      clrscr();
      menu();
   break;
   case 2:
      clrscr();
      gotoxy(32,16);printf(" ....CARGANDO....");
         for(x=20;x<=60;x++){
         gotoxy(x,18);
         printf("²");
         delay(40);}
      candidato();
      printf("\n\nPresione una tecla para continuar.....");
      getch();
      clrscr();
      menu();
   break;
   case 3:
      exit;
   break;
   default:
      gotoxy(30,25);printf("Opcion Incorrecta");
      getch();
      clrscr();
      menu();
   break;
   }
}

void main()
{
   clrscr();
   menu();
}
Título: Re: Serie Fibonacci Usando Un Arreglo De 20 Posiciones
Publicado por: SUPER_X en Lunes 11 de Octubre de 2004, 13:12
La serie de fibonacci es de naturaleza recursiva, asique si te piden fibonacci, lo más claro es hacerlo recursivamente. Obviamente la recursividad no es buena en uso de memoria pero bueno.
Si querés variar el arreglo... valga la redundancia, hacé un arreglo de dimensiones variables implementado como un puntero a un entero sin dimensión definida.
 :ph34r:

unsigned int* fibo_arr;
unsigned int tam, i;
cout>>"Ingrese la cantidad de números: ";
cin<<tam;
fibo_arr=new int[tam];
for(i=0;i<tam;i++){
   if(i==0 || i==1) fibo_arr=1;
   else fibo_arr=fibo_arr[i-1]+fibo_arr[i-2]
}

Supongo que eso debería andar bien... de forma recursiva sino
int fibo(unsigned int nro){
  if(nro==0 || nro==1) return 1;
  else return fibo(nro-1)+fibo(nro-2);
}
Que es la naturaleza teórica de la sucesión que es una peste de ineficiencia :P
El for de arriba tampoco es la idea de la eficiencia, pero si lo que querés es un arreglo creo que es bastante bueno.