Un sencillo programa: La Serie de Fibonacci

Estado
Cerrado para nuevas respuestas.
Originalmente colocado por neo
Alguno de ustedes no ha trabajado matemáticas discretas?, bueno digo, porque un ingenieró de sistemas que se respete debe ser muy bueno en este campo, lo digo porque en esta materia "que me tiré por cierto el semestre pasado", uno cosas muy importantes como Algebra de Boole y Relaciones, aja, relaciones, como árboles, grafos, etc.. y tambien Relaciones de Recurrencia, aquí viene el caso, la sucesión de Fibonacci es una de éstas, y pues bueno, ¿Cómo es que están haciendo el programa? En función de los términos anteriores?, dejenme decirles que esto no es optimo, por ejemplo, necesitamos hallar el término 100, y que?, nos vamos a poner al pc a calcular todo eso?, "que perdida de tiempo!!", para eso hay que documentarse.., ;), se nota que no han estudiado en la distri... aquí la malicia indígena va por delante :diablo:, miren, la ecuación para esa relación de recurrencia es:

Fn=[ 1/((5)^1/2) ][ ( ((1+(5)^1/2))/2)^(n+1) ) - ( ((1-(5)^1/2))/2)^(n+1) ) ]

Espero que me hayan quedado bien esos parentesis, me voy a almorzar, estoy de afán...

Ahh, si quieren mirar como se resuelve esa relación de recurrencia y cualquier otra miren el el libro de Grimaldi de matemática discreta ó el Ross...

Se nota que no han estudiado en la distri???? y que? :confused: la distrital que?, yo estudio en la Universidad de Antioquia :pc2: y no tengo nada que envidiarte :cool:, antes de ponerte a hablar primero lee y analiza lo que estamos haciendo, estamos imprimiendo los primeros x numeros de la serie, otro problema distinto seria el de imprimir el termini n-ésimo de esa serie, que es lo que tu estas planteando.
 
Si Neo mejo, esto es para arrancar de cero, y entre otras, sabe alguien por qué hay que poner el

return 0;

en el codigo, que se me olvido????
 
Pues si se quieren tener los primeros terminos igual, hace un bucle que incremente el n y el algoritmo queda reducido solamente a un for + la formula matemática, ah?:eek:


PD: el "return 0;" se utiliza para proverle a una función un valor el cual retornar, en este caso, es 0, no es relevante en el main(), pero cuando hacemos por ejemplo funciones recursivas o que devuelven un valor específico si importa y mucho..., claro que tambien se puede obviar mandandole los valores por referencia a la función.
 
Alguno de ustedes no ha trabajado matemáticas discretas?, bueno digo, porque un ingenieró de sistemas que se respete debe ser muy bueno en este campo, lo digo porque en esta materia "que me tiré por cierto el semestre pasado", uno cosas muy importantes como Algebra de Boole y Relaciones, aja, relaciones, como árboles, grafos, etc.. y tambien Relaciones de Recurrencia, aquí viene el caso, la sucesión de Fibonacci es una de éstas, y pues bueno, ¿Cómo es que están haciendo el programa? En función de los términos anteriores?, dejenme decirles que esto no es optimo, por ejemplo, necesitamos hallar el término 100, y que?, nos vamos a poner al pc a calcular todo eso?, "que perdida de tiempo!!", para eso hay que documentarse.., , se nota que no han estudiado en la distri... aquí la malicia indígena va por delante , miren, la ecuación para esa relación de recurrencia es:

Fn=[ 1/((5)^1/2) ][ ( ((1+(5)^1/2))/2)^(n+1) ) - ( ((1-(5)^1/2))/2)^(n+1) ) ]

Espero que me hayan quedado bien esos parentesis, me voy a almorzar, estoy de afán...

Ahh, si quieren mirar como se resuelve esa relación de recurrencia y cualquier otra miren el el libro de Grimaldi de matemática discreta ó el Ross...

Oiste pero vos sos como medio TONTO PUES!!!!! TAMBIEN SE NOTA QUE NO ESTUDIAS EN LA DISTRI!!!

Una persona que baja de nivel a las demas universidades no es mas que un ignorante, una persona sin formacion y mucho peor buena educacion.

Yo estoy viendo en la Eafit 2 tipos de Logicas, donde la Booleana es de lo mas importante, fuera de eso vemos como 5 calculos y no se cuantas vainas mas?

QUe ven ustedes que no vea uno de UPB, de la de antioquia, de la nacho, hasta de la de andes, TODOS TIENEN QUE VER EL MISMO PROGRAMA.

Ademas (que me tiré por cierto el semestre pasado) Je como que no mereces mucho estar entonces en esa U.

Bueno en fin para no empezar una pelea, solo quiero decirte que viejo tengas cuidado con lo que escribis, porque algunas personas nos podemos herir fasilmente si hablan mal de nuestra almas matter.

Por otro lado, obviamente no es un programa Optimo porque si no te diste cuenta apenas estamos estudiando y fuera de eso este programa no va a salir a la venta o algo parecido, es simplemente un programa para aprender y estudiar.

Por ahora tengo una mejor propuesta, otro programa mas util miren en los foros.
 
Uy, pero se sintio aludido, le hirió profundamente, pues si tiene buen nivel no se debería sentir así, cada quien "sabe" lo que sabe, entonces?, porque la piedra?, quedate standby, yo solamente dije una opinión que es MUY válida y los orienté a ustedes en un problema que tenían, otra cosa es que lo haga expresandome así, y mire a ver si estudia lo suficiente porque si ya lo hubiera hecho almenos se le habría ocurrido una solución y no un balbuceo como los que sabe hacer...

mas bien shut your brain....
 
"La cosa es que la variable entera tiene bastanes numeros, pero no los suficientes, entonces se desborda muy facil."

Señor cL-Enigma y para quien le interese:

No se si ya lo sabian, pero en programación los campos variables y constantes se dividen en tres que son: Enteros, Reales flotantes y Caracteres.

Los Enteros se dividen en tres: Pequeños (short int) que asignan 16 bits o 2 bytes y su rango esta entre -32767............32767. Medianos (int) y en un PC normal tiene el mismo valor y rango que el (short int). Y los Grandes (long int) que le asigna un valor de almacenamiento de 32 bits o 4 bytes y su rango va desde -2**31.......2**31. (Nota: ** es potenciación)

Bueno mi hipotesis seria que les aparece decimal en ese programa porque le falta el (int) de entero al (long) y por lo tanto deberia quedar asi: (long int), es mi hipotesis no se que dicen ustedes.
 
Bueno, por fin algo que entendí, pero segun se, el nombre que ellos le dan automaticamente es tomado por entero o no?
 
Pues según lo poco que se, a la hora de programar y definir las variables y constantes, uno mismo debe definir si es un entero, un flotante o un caracter.

Recorda que un entero es cualquier numero sin decimales + ó -, un flotante es un numero decimal + ó -, y un caracter por lo general son palabras pero tambien pueden ser numeros y se distienes de los dos anteriores porque van entre comillas "...".
 
Ah...se me olvidaba, tambien a cuando se definen las variables se debe analizar, hasta donde pueden llegar y asi definir por ejemplo si es un (int) o un (long int), y asi evitar que el resultado no se desface o se pase de lo deseado o que por lo contrario sea el espacio reservado tan grande que es innoficioso y hace que el programa sea mas grande.
 
En C++ las librerias que hacen que funcionen esas instrucciónes creo que es la de # include <conio.h>, si no es la de <iostream.h>
pero me parce mas bien que es la primera, pero si deseas mayor exactitud dele click derecho cuando este en C++ y verifiquelo.
 
Originalmente colocado por barbax
"La cosa es que la variable entera tiene bastanes numeros, pero no los suficientes, entonces se desborda muy facil."

Señor cL-Enigma y para quien le interese:

No se si ya lo sabian, pero en programación los campos variables y constantes se dividen en tres que son: Enteros, Reales flotantes y Caracteres.

Los Enteros se dividen en tres: Pequeños (short int) que asignan 16 bits o 2 bytes y su rango esta entre -32767............32767. Medianos (int) y en un PC normal tiene el mismo valor y rango que el (short int). Y los Grandes (long int) que le asigna un valor de almacenamiento de 32 bits o 4 bytes y su rango va desde -2**31.......2**31. (Nota: ** es potenciación)

Bueno mi hipotesis seria que les aparece decimal en ese programa porque le falta el (int) de entero al (long) y por lo tanto deberia quedar asi: (long int), es mi hipotesis no se que dicen ustedes.

Algunas aclaraciones:

1. "long" siempre es para numeros enteros de 32 bits, (da igual long int que long) a excepcion de long double (solo soportado por algunos compiladores). En compiladores viejos de 16 bits el "int" normal tiene solo 2 bytes, pero en compiladores modernos un "int"es lo mismo que un "long", es decir, ambos tienen 32 bits (4 bytes).

2. Los caracteres no se necesitan clasificar de manera aparte, en realidad son simplemente enteros de 1 byte (numeros del 0 al 255).

3. Existe otros tipos de enteros más grandes, pero solo soportados por algunos compiladores como Visual C++. Este es el caso del "_int64", que es un entero de 64 bits (8 bytes). Pero si necesitas numeros muy grandes siempre puedes usar "float" y "double" en vez de numeros enteros, u utilizar numeros de punto fijo (tienen en ocasiones mas precision que los de punto flotante).
 
Si tienes un compilador que lo soporte, simplemente declaras la variable entera como de tipo "_int64"

_int64 variable;

Obviamente utilizas este tipo de datos cuando necesitas almacenar numeros enteros de gran tamaño sin necesidad de utilizar los en ocasiones inexactas variables float.
 
UFF QUE BACANO Y OE MigPosada no se si mi compilador lo soporta yo tengo el BORLAND 3.1 C++ ya se que es viejito pero ahy medio se trabajar. Pero volviendo al tema este compilador soporta el _int64?
 
Oe otra preguntilla que me carcome la duda?
Haber si me pueden hacer el favor de enseñarme hacer los recuadros esos que hacen cuando toman una idea de otra persona?
Asi como la que colocaron en el acote mio??? oe de verdad que si gracias por la informacion y disculpen mi ignorancia.
 
dale clic en nota en la parte inferior derecha de cada mensaje
 
No estoy seguro de si lo soporta tu compilador o no, mejor ensaya. Si no te permite crear una variable de ese tipo, no la soporta.
 
Estado
Cerrado para nuevas respuestas.

Los últimos temas