Newsgroup: it.comp.os.linux.iniziare
Titolo: Aiuto per tesi (un po' OT...)

Ciao a tutti. Mi accingo a iniziare la tesi (in pratica per ora devo
analizzare una simulazione...) e vorrei un consiglio.
In pratica tale simulazione è composta da un file di svariati Mb
contenenti dati. Sono messi in modo che debbo settare un criterio x la
lettura (del tipo: se quel numero è 1 leggi 20 dati, se è 2 40, se è 0
nessuno... ma poi continua al valore successivo e rileggi in base al
criterio di prima). Una volta letti sevo selezionarne solo alcuni.
Qual è, secondo voi, il modo migliore per fare un cosa del genere?
il c? altri linguaggi? databases? scilab/matlab/idl? fogli di calcolo?
Grazie mille,
Luca


Grazie mille,
Luca
PS:scusate se ho postato 2 volte, una con il giorno sbagliato, devo aver
la pila dell'orologio un po' a secco e il lunedi' fa sempre danni ;-)

 ha scritto nel messaggio
news:pan.2002.08.31....@libero.it...

Io direi che la cosa migliore è usare un programma fatto da te. A questo
punto tutto dipende dalla tua conoscenza i vari linguaggi.
Io per esempio lo farei in Java, ma puoi benissimo farlo in qualsiasi altro
linguaggio (C, Perl, ecc...).


Puoi farlo indifferentemente con qualsiasi linguaggio di programmazione.
i piu' semplici tra quelli da te indicati sono scilab,octave e visualbasic
usato in  macro in excel.
Quindi se ho capito bene, devi leggere dei dati da un file a.dat, in base
al valore di tali dati, devi estrarre x valori dal un secondo file dati.dat?
In scilab (matlab o octave basta che metti l'equivalente di read) puoi fare 
cosi':
----SCRIPT PER SCILAB BUTTATO GIU' AL VOLO----
A = read ('path_di_a.dat,-1,1);		//A diventa un vettore 
B = read ('path_di_dati.dat,-1,1);      //B diventa un vettore
dati_da_leggere = 0;			//ci serve come indice di lettura
z=1;					//z tiene conto dell'avanzamento
					//nel vettore BUFFER
dim = length(A);                        //dim e' la dimensione del VETTORE A
for i=1:dim                             //Scorriamo tutti gli elementi di A
 
	if A(i)==0 then                 //oppure if A(i)==0 & z>1 then z=z-1;   
		    if z>1 then         //se legge il valore 0 non fa nulla
			z=z-1;
		    end //if
	end //if
 
	if A(i) = 1 then  //se legge 1 in a.dat legge 20 dati da dati.dat
		dati_da_leggere = dati_da_leggere + 20;
	end //if
	if A(i) = 2 then
		dati_da_leggere = dati_da_leggere + 40;
	end //if	
// ovviamente si continua con altri if then
	...
 
	for k=z:dati_da_leggere
                        BUFFER(k) = B(dati_da_leggere);
        end //for
	z=k+1;
end //for
//Adesso i dati estratti sono nel vettore BUFFER, buon divertimento ;) 
--------------------------FINE---------------------------------------
Sicuramente ci sara' qualche errore' cmq l'algoritmo il linea di
massima e' questo, anzi prendo spunto dalla tua richiesta per esercitami
con il C++ e fare un programmino che faccia proprio questo :), ma per ora ho
poco tempo.
P.S.:Purissima curiosita' di che simulazione si tratta?

 Ciao a tutti. Mi accingo a iniziare la tesi (in pratica per ora devo
dimenticavo siamo OT OT OT
e' meglio spostarsi su
it.comp.programmare  o al limite it.istruzione.universita.ingegneria  ed
affini.

Luki wrote:

Io partirei con Perl che, come dice il nome è un Linguaggio Pratico per 
Estrarre/manipolare Report.
Un semplice manuale lo trovi
http://www.mat.uniroma3.it/users/liverani/perl.ps
)
se poi hai problemi di efficienza (perl è interpretato),
quello che hai fatto ti servirà da prototipo.
ciao