giovedì, gennaio 11, 2007

Classe istogramma

Ciao a tutti,
Volevo dirvi che ho postato i files istogrammaKri.h, istogrammaKri.cc e istogrammaKri.cpp che sono rispettivamente l'header file, l'implementazione e il codice di test della classe istogramma.
Purtroppo... non funziona!! Mi viene segnalato un errore (Segmentation fault) all'interno del metodo "visualizza_verticale" che (teoricamente) dovrebbe visualizzarmi l'istogramma in verticale.
Non riesco proprio a trovare l'errore!
Grazie dell'aiuto.
Ciao ciao
Cristian
MODIFICA: Ho modificato il file istogrammaKri.cc (2) e istogrammaKri.cpp (2) per aggiungere l'overload dell'operator= (che mi ero dimenticato di fare). Ho caricato nei file del gruppo le nuove versioni.
Inserisco anche un file di testo contenente l'ultimo output che ho ottenuto (!!!!!) Istogramma_output.txt(Non capisco perxhè ora mi da problemi anche la funzione visualizza_orizzontale ?!?).
MODIFICA 23-Gen-07 : Ora il problema è stato risolto (da Enzo)! Potrete trovare la mia versione dell'istogramma tra i file del gruppo (istogrammaKri.cc (3)).

3 commenti:

hronir ha detto...

Stavo provando a dargli un'occhiata, ma non ho i file random.*:

istogrammaKri.cpp:3:20: error: random.h: No such file or directory
istogrammaKri.cpp:4:21: error: random.cc: No such file or directory
istogrammaKri.cpp: In function ‘int main()’:
istogrammaKri.cpp:46: error: ‘RandPDF’ was not declared in this scope

Potresti uplodarli nel gruppo? (ma mi sai che hai perso l'occasione, tra pochissimo ho una riunione... ;-) )
Ciao!

Unknown ha detto...

Ciao Enzo,
mi ero dimenticato di caricare i due file nei quali ho definito le funzioni per generare i numeri casuali. Ora sono tra i files del gruppo.
Grazie.
Ciao ciao

Unknown ha detto...

Ciao Enzo,
grazie per aver trovato quell'errore!! In effetti il fatto di dover aggiungere a m_n_bins +/- 2 mi ha creato non pochi problemi. Il 2 è dovuto al fatto che ho aggiunto 2 bin "extra" per ospitare i dati minori del min dell'istogramma e maggiori del max. Queste due colonne aggiuntive mi hanno creato qualche piccolo problema quando dovevo calcolare in quale bin "mettere" il numero ottenuto (quale bin incrementare) ed anche in fase di stampa dell'istogramma in verticale (il codice è diventato un po' più complesso rispetto alla versione di Pietro... che funziona usando le stesse idee... ossia duplicare le colonne per ingrandire l'istogramma e impilare le colonne nel caso del rimpicciolimento (Scusate la mancanza di originalità... in pratica ho solo fatto una piccola aggiunta alla versione di Pietro)).
Comunque... adesso funziona...
C'è da dire che l'istogramma in verticale è più "bruttino" rispetto a quello stampato in orizzontale... (il coseno ha una forma quasi a "campana")...dopo aver passato un po' di tempo a pensare che questa cosa fosse dovuta a qualche errore nel codice mi sono accorto che la cosa dipende al fatto che la spaziatura tra le righe allunga un po' le figure... così l'istogramma risultante non è molto bello da vedere (pur essendo corretto perchè il numero di simboli stampati è uguale a quelli dell'istogramma orizzontale).
Carico tra i files del gruppo la versione definitiva.
Ciao ciao

PS: ho aggiunto nell'overload dell'operator= il controllo consigliato da Pietro... (nel caso si scriva histo = histo)