Serie Di Fibonacci



Questo è il primo vero e proprio programma che ho scritto in Java e ne sono particolarmente orgoglioso, non è nulla di speciale, però sono partito da zero per farlo. Ho sentito il nome "Fibonacci" grazie ad un programma (CPU Stability Test 6) e da quel giorno mi sono incuriosito, ed ho incominciato a fare qualche ricerca su internet. Da poche righe lette in internet, è nato questo piccolo programmino (ho scritto anche un piccolo documento che potete trovare [Qui]).

Latest version:

La funzione di questo programma è quella di calcolare i numeri della serie e le relative proprietà.
Per riuscire a capire quello che dirò, vi consiglio di leggere prima il documento riguardante la [Serie di Fibonacci]. Oltre al semplice algoritmo capace di "trovare" questi numeri, è possibile verificare in ogni momento tutte le proprietà della serie.

Alcuni screenshot del programma:

Winzoz

Linux





Di seguito è riportata una cronologia delle versioni:

 

- Versione 6.0.0: (18/10//2006) - New!

  • Aggiunto l'algoritmo di calcolo della proprietà SOMMA QUADRATO BIG :)
  • Completate le proprietà riguardanti la serie BIG.
  • aggiunto pulsante per visualizzare la serie big
  • aggiornata traduzione eng
  • migliorata decisamente la visualizzazione in linux (metal)
  • corretta finestra inserimento dati StreSSCPU PRO
  • tradotte molte altre frasi in inglese
  • tolta visualizzazione in console della "serie" quando si calcolava "serie big"
  • migliorata visualizzazione su console
  • corretto bug in "tagliastringa". se si ridimensionava orizzontalmente la finestra (dos o linux terminal) non andava a capo correttamente
  • corretto bug in Proprietà divisione. Nello svolgimento non compariva il numero multiplo giusto
  • migliorata leggermente visualizzazione massime
  • corretto egregiamente bug nella visualizzazione del log. anche qui, se si ridimensionava la finestra, la tabella si inciuccava completamente.
  • migliorata struttura metodo visualizza log
  • Cambiati completamente i "simboli" per le tabelle in DOS/Terminale. Ora anche in linux la visualizzazione è perfetta (in M$-DOS si vede un pò peggio, ma a chi interessa?:/)
  • Corretto piccolo errore nella finestra errore dell'ora. I numeri comparivano +1.
  • Eliminati alcuni test e relativi inserimenti dati superflui nel calcolo della serie.
  • Creato un metodo per visualizzare gli errori di calcolo della serie. Risparmiate molte righe di codice:P
  • Corretto errore nella cattura degli errori nel calcolo della serie. Non venivano mai segnalati e registrati nel log. (avevo fatto un casino perso. diciamo che non funzionava nulla:D )
  • Idem come sopra ma adesso per Serie Big. Inoltre ho eliminato tanto di quel codice garbage da far venire mal di testa:D
  • Sistemato leggermente serie_info e serie_about, nuovi font e sistemati piccoli errori di visualizzazione. (soprattutto in linux)
  • Portato da 50 a 100 la lunghezza dell'array di serie_big. In questo modo allungherà 2 volte di meno l'array e di conseguenza è più veloce a calcolare.
  • FINAL!!! :) finalmente! penso sia la miglior release fino ad ora;). divertitevi a calcolare al 100000° numero della serie ihihih.

- Versione 5.9.9: (10/10//2006)

  • Aggiunto l'algoritmo di calcolo della proprietà ABCD BIG :)
  • sistemate alcune imperfezioni di visualizzazione sulla console
  • Aggiunto l'algoritmo di calcolo della DIVISIONE BIG :)
  • migliorata gestione della lunghezza dell'array della divisione. adesso parte da una lunghezza di 500 e poi se serve più spazio cresce sempre di più, fino all'infinito :)

- Versione 5.9.8: (03/10//2006)

  • modificato il comportamento di java look and feel. adesso prende il lookandfeel della macchina e utilizza quello!:)
  • Aggiunto l'algoritmo di calcolo del QUADRATO BIG :)
  • ridotta altezza jseparators
  • iniziato modifica all'interfaccia per il multilanguage!;)
  • migliorata moltissimo la visualizzazione del "metal" look and feel in linux! :)
  • aggiunta lingua ITA e ENG e aggiornata l'interfaccia principale

 

- Versione 5.9.4: (01/10//2006)

  • Aggiunto l'algoritmo di calcolo della SOMMA ALTERNA BIG :)
  • colorati i pulsanti per differenziare di più le proprietà di serie e serie big

 

- Versione 5.9.2: (28/12/2005)

  • aggiunto bottone Exit nella finestra che visualizza la serie big
  • corretto doppio inserimento "FAILED" di calcola serie big nel log

 

- Versione 5.9.0: (09/11/2005)

  • corretto problema della successione "infinita" di finestre di "calcola serie big" aperte. ogni volta che si calcolava la serie big, si apriva una nuova finestra. ora viene aggiornata sempre la stessa;)
    sono riuscito a far in modo di non far visualizzare la finestra di visualizza serie big all'apertura del programma.
    corretti alcuni errori in calcola serie big
  • Aggiunto l'algoritmo di calcolo della SOMMA BIG :)

 

- Versione 5.8.0: (07/11/2005)

  • tolto limite di 200 numeri serie big
  • corretto bug: se si eseguiva prima "calcola serie" e poi "calcola serie big", quest'ultimo calcolava 2 numeri in meno della serie.
  • eliminate alcune parti di codice non utilizzate da calcola serie big
  • eliminati alcuni test inutili

- Versione 5.7.0: (17/06/2005)

  • Lunghezza infinita di serie_big. Ogni qualvolta la dimensione dell'array di BigInteger sia insuficente, allora creo un nuovo array peù grande(settato per ora a 50)
  • Corretti alcune imperfezioni
  • Introdotto un JTabbletPane in modo tale da poter scegliere se eseguire le proprietà sulla serie "limitata" o su quella infinita.

- Versione 5.6.0: (12/06/2005)

  • corretto piccolo errore di visualizzazione dell'ora.
  • Rimpiazzati i brutti vecchi box di inserimento dei dati. Adesso utilizzo degli JOptionPane
  • Finalmente ora è possibile calcolare migliaia di numeri di fibonacci!!! :). Volete sapere che numero è il numero F(5000)? adesso è possibile!
  • Corretti alcuni errori dovuti ai nuovi box di inserimento dati.
  • Creata una finestra java in cui è possibile visualizzare in modo semplice e veloce i numeri calcolati tramite "Calcola Serie Big".

- Versione 5.0.0: (29/04/2005)

  • Rivista completamente l'interfaccia grafica e dunque la struttura e forma della classe GUISerie. La versione 5.x introduce una migliore pulizia e chiarezza e un migliore ordine nel codice.

- Versione 4.3.0: (09/03/2004)

  • Migliorato algoritmo di StreSSCPU/PRO. Adesso la CPU viene forzata ad eseguire pesanti calcoli matematici in virgila mobile (penso che utilizzi molto la FPU-Floating Point Unit).Basti pensare che con lo stesso identico PC, con il vecchio algoritmo ottenevo un risultato di circa 22500 Punti, con il nuovo algoritmo 1000 Punti circa:D.
  • Corretti piccoli bug e migliorata visualizzazione StreSSCPU/PRO.
  • Non ancora completa al 100% l'interfaccia grafica e tutte le funzionalità

- Versione 4.2.2: (08/03/2004)

  • Riscritta completamente l'interfaccia grafica del programma (il 100% del codice e tutte le immagini). Il codice si è ridotto a 1/3 rispetto al precedente. Adesso è molto più curata la veste grafica.
  • Riscritta completamente l'interfaccia grafica dell'About (stessa cosa del punto precedente).
  • Piccole ottimizzazioni e correzioni.

- Versione 4.1.7: (03/03/2004)

  • Corretto piccolo bug nel ToolTipText di un pulsante.
  • Corretto mancata registrazione del log dell'evento About.
  • Corretto bug mancanta visualizzazione del log se si visualizzava per primo About.

- Versione 4.1.4: (01/02/2004)

  • Introdotta nuova funzione StreSSCPU PRO. Questa funzione esegue un Bench del sistema in modo più preciso ed efficare.

- Versione 4.1.0: (31/01/2004)

  • Riscritto completamente l'algoritmo di esecuzione del Log. Adesso viene utilizzato lo StringBuffer al posto del pesante e macchinosco Array.
  • Corretti alcuni piccoli bug e eliminati calcoli inutili.
  • Se si eseguiva prima Calcola Serie F(x) e poi Calcola Serie, in calcola serie, non accettava numeri inferiori a 3.
  • Se si eseguiva Guarda Ora o StreSSCPU o Massima, non era possibile visualizzare il log.
  • Aggiunta possibilità di uscire da Calcola Serie senza introdurre alcun numero, digitando 00 [zerozero].
  • Inserito algoritmo di calcolo della potenza del PC in StreSSCPU. Adesso un numero indica, indicativamente, la potenza del PC.
  • Ultimata la funzione "ToolTipText" su tutti i pulsanti del programma

- Versione 4.0.2: (30/01/2004)

  • Corretta visualizzazione secondi dell'ora (impostazione '2'e'3')
  • Corretto bug di visualizzazione ora nel log e nell'ora. Non visualizzava l'unità dei secondi.
  • Abbellita visualizzazione errore calcola serie F(x)
  • Aumentata dimensione array logtotale

- Versione 4.0.1: (29/01/2004) - Beta

  • Inserita inizializzazione della vecchia versione 3.x.x
  • Corretto bug visualizzazione StreSSCPU
  • Corretto calcolo numeri della serie
  • Corretta chiusura del programma

- Versione 4.0.0: (01/01/2004) - Alpha

  • Modificata completamente l'interfaccia grafica. Adesso è una vera interfaccia grafica java ;)
  • Alleggerito algoritmo Calcola Serie
  • Ottimizzatto leggermente il codice
  • Suddiviso il programma in più classi (SerieDiFibonacci, LabelDemo...)
  • Adesso la velocità del programma è notevolmente aumentata

- Versione 3.7.8: (10/12/2003)

  • Corretto in WinXP la chiusura del programma. Se si selezionava termina, si chiudeva immediatamente il programma, adesso c'è un ritardo si 4 secondi
  • Migliorata visualizzazione: "errore Proprietà ABCD", "errore Proprietà Somma Quadrato", "errore Proprietà Divisione", "errore Proprietà Quadrato"
  • Corretta visualizzazione tabella Log (ogni volta che lo guardavo cambiava posizione e non capivo il perchè...!:) ). Cambiava la lunghezza della data.

- Versione 3.7.7: (02/12/2003)

  • Migliorata vosualizzazione StreSSCPU

- Versione 3.7.6: (01/12/2003)

  • Aggiunta visualizzazione contatore secondi avanti e indietro in StreSSCPU
  • Incrementato e ottimizzato l'algoritmo dello StreSSCPU
  • Corretto grave bug che corrompeva i dati della serie se veniva eseguito StreSSCPU
  • Corretto piccolo bug visualizzazione secondi

- Versione 3.7.3: (29/11/2003)

  • Aggiunta la funzionalità: StreSSCPU

- Versione 3.7.0: (25/11/2003)

  • Migliorata "vosualizzazione errore" dell' Inserimento Ora, e Visualizzazione Quadro su errore
  • Ottimizzato il codice per il calcolo della Data e dell'Ora. Adesso più veloce e funzionale
  • Eliminati calcoli inutili per la visualizzazione dell'interfaccia grafica dos.
  • Corretta visualizzazione finestra principale in WinXP
  • Abbellita la finestra di uscita dal programma

- Versione 3.6.9: (21/11/2003)

  • Corretto spazio tra la visualizzazione delle ore
  • Corretto bug del numero negativo del calcolo della serie
  • Corretta visualizzazione errata della tabella log
  • Abbellita visualizzazione su console
  • Se si visualizza l'ora più volte consecutivamente non viene visualizzato lo schema
  • Eliminato il test dell'esecuzione di almeno una funzione
  • Abbellita visualizzazione di errore calcola serie
  • Corretta visualizzazione About nel log
  • Corretto grave errore Proprietà Quadrato; se si inseriva "1" andava a cercare il numero -1 nell'array e il programma si bloccava
  • Utilizzato lo "switch" in Proprietà ABCD, Proprietà Quadrato, Proprietà Somma Quadrato, algoritmo della data (giorno) e della massima

- Versione 3.6.4: (16/10/2003)

  • Aggiunta visualizzazione random "massime" e Ora.
  • Ogni operazione eseguita viene registrata su un file log, visualizzabile in qualsiasi momento.
  • Aggiunta la funzione "Status" nel log. Tale funzione permette di sapere se l'operazione eseguita è andata a buon fine o meno.
  • Creato un eseguibile "SerieDiFibonacci.bat". Tramite questo file è possibile eseguire il programma senza il supporto di alcun compilatore. E' necessario installare sul pc l'ultima versione di [java] disponibile. E' compatibile con: Win98/98SE/Me/2000/XP (bisogna installare il pacchetto java. Fuonziona anche su Linux)

- Versione 3.3.8: (11/10/2003)

  • Se si calcolava prima la Proprietà ABCD e la Proprietà Quadrato, e in seguito si calcolava la Proprietà Somma Quadrato, la visualizzazione di quest'ultima risultava errata
  • Corretto bug di inserimento di un numero =0 o > dell'ultimo F(x) della serie nella Proprietà Divisione
  • Corretto errore numero massimo inseribile nella Proprietà Somma Quadrato
  • Corretto bug visualizzazione Proprietà Quadrato se numero inserito era uguale all'ultimo numero calcolato della Serie
  • Corretto bug inserimento numeri =0 e <0 in tutte le proprietà
  • Migliorata la visualizzazione della serie (veramente cool!!!!!! ;) ).Adesso compare anche la sbarra sulla destra dello schermo.
  • Migliorata la visualizzazione delle scritte delle proprietà. Adesso vengono inserite in una cornice, come il resto del programma.

- Versione 3.2.8: (04/10/2003)

  • Aggiunta Proprietà Divisione
  • Piccoli miglioramenti al codice
  • Migliorata visualizzazione Proprietà Quadrato (vengono fornite molte più informazioni)
  • Adesso la serie calcolata viene visualizzata ad ogni proprietà
  • Cambiato dimensione del carattere della console
  • Corretto bug calcolo e visualizzazione della serie (numeri<3)
  • Corretto piccolo bug di visualizzazione della Somma Alterna
  • Abbellito l'About
  • Corretta Proprietà Somma Quadrato
  • Migliorata visualizzazione Proprietà Somma Quadrato
  • Aggiunta funzione "Calcola Serie F(x)". Permette di calcolare la serie fino al numero F(x)
  • Abbellita notevolmente la grafica DOS dell'intero programma ( ;) )
  • L'intestazione del programma (scritte iniziali) adesso vengono subito fatte apparire (vengono dunque gestite nel main)
  • Diminuito il numero delle variabili utilizzate
  • Se si calcolava 2 volte consecutivamente la Proprietà Somma Quadrato, la visualizzazione della serie risultava errata

- Versione 3.1: (01/10/2003)

  • Migliorato metodo Calcola Serie
  • Abbellito codice sorgente
  • Migliorata notevolmente grafica del menù
  • Corretti piccoli bug minori

- Versione 3.0:

  • Implementata visualizzazione proprietà Somma
  • Alleggerito e potenziato il codice della proprietà Somma
  • Alleggerito e potenziato il codice della proprietà SommaAlterna
  • Implementata visualizzazione proprietà SommaAlterna
  • Se si calcolava la proprietà Somma, le seguenti proprietà calcolate risultavano errate

- Versione 2.9.3:

  • Corretto bug "prima visualizzazione" della serie
  • Ottimizzato moltissimo il codice della proprietà ABCD
  • Inserita richieta del numero "A" per la proprietà ABCD
  • Corretta visualizzazione dei caratteri (caratteri accentati)
  • Corretto il numero di numeri della serie da calcolare (erano 2 di troppo)
  • Implementata visualizzazione serie per la proprietà ABCD

- Versione 2.6:

  • Riscritto completamente il codice sorgente (notevolmente migliorato)
  • Introdotto funzione per visualizzare la Serie (sia finestra DOS che message dialog)
  • Corretto Bug visualizzazione proprietà "SommaQuandrato" (ma è ancora disabilitata causa errato funzionamento)
  • Introdotta memorizzazione della Serie in un array
  • Migliorata la visualizzazione
  • Varie ottimizzazioni e semplificazioni del file sorgente

- Versione 2.3:

  • Unificati i due files in SerieDiFibonacci.java

- Versione 2.2:

  • Aggiunto programma secondario (main).
  • Implementata interfaccia grafica.
  • Maggior automatismo.
  • Aumentato il numero massimo di numeri calcolabili

- Versione 2.0:

  • Correti alcuni Bug inferiori.
  • Corretto Bug "Termina".
  • Piccole correzioni grafiche.

- Versione 1.7: (16/10/2002) First Release

  • Implementate tutte le proprietà della serie.
  • Corretti piccoli errori logici.


P
er utilizzare questo programma è sufficiente scaricare questo piccolo file "serie_di_fibonacci_x_x_x.rar" e scompattarne il contenuto dovunque si voglia (Se non parte il download, Tasto destro e salva con nome
).
Per winzoz basta cliccare due volte sul file GUISerie.bat, per linux basta lanciare java GUISerie.class

- Download Eseguibile: [Serie Di Fibonacci.rar] [6.0.0] [java 5.0 update 8] [153 kbytes]

- Download Eseguibile: [Serie Di Fibonacci.tar.bz2] [6.0.0] [java 5.0 update 8] [117 kbytes]

Da una versione non ben precisata (non mi ricordo:P) ho diviso la parte grafica, che comprende l'interfaccia grafica; dalla parte puramente matematica, che comprende i vari algoritmi del programma.
Di seguito potrete scaricare e visionare questa ultima parte, che contiene il cuore (e anche qualcosa in più :) ) del programma.

- Codice Sorgente: [SerieDiFibonacci] [6.0.0] [139.371 kbytes]

---------------------------------------

Angolo dedicato a quelle persone che si sentono un pò Hacker. Nel link riportato di seguito potete trovare una seconda copia del codice SerieDiFibonacci.java criptata. Provate a decifrarne il contenuto; non è difficile... basta sapere qualche trucchetto :)... Buona fortuna!

- Download: [SerieDiFibonacci Unified]

Per scoprire come decriptare il file, fate riferimento a questa piccola guida:

- Decript: [Decriptare Il Codice]

---------------------------------------

*Old Versions*

Eseguibile: [Serie Di Fibonacci] [5.0.0] [java 5.0] [154 kbytes]
Sorgente : [Serie Di Fibonacci] [5.0.0] [94.117 kbytes]