|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#21 |
|
Member
Iscritto dal: Mar 2001
Messaggi: 90
|
Ah dimenticavo....
site name è il nome del sito sector number è il numero della cella traffic demand è quante trx ci sono in una cella in cell relation il numero indica l'interferenza tra celle e H la relazione di hand-over....
__________________
Cammax |
|
|
|
|
|
#22 |
|
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
in effetti lo è
si può fare facilmente una routine che ti legge il file nelle tue matrici però, per quanto mi riguarda, o in VB o in Fortran. altrimenti si può fare una routine di conversione del file in un formato più pulito e strutturato così da potere utilizzare una semplice routine in C++ di lettura sequenziale. (qui andiamo allla grande con un tritatutto in VBA !! ) Faccè sapè P.S. Ah, allora non sono i semafori di Torvergata ma i telefonini ... ma tu guarda |
|
|
|
|
|
#23 |
|
Member
Iscritto dal: Mar 2001
Messaggi: 90
|
Ma se io con un semplice fscanf leggo le varie stringe e poi metto quello che mi srve in array mediante dei cicli for?
__________________
Cammax |
|
|
|
|
|
#24 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Codice:
Una struttura come questa...
1 {
A; #site name
1; #sector number
1; #demand/traffic
LOC (3, 5);
}
...sempre se fissa la puoi leggere benissimo con uno fscanf...
fscanf(f,"%d {\n %s; #site name\n %d; #sector number\n %d; #demand/traffic\n LOC (%d, %d);\n }",............);
|
|
|
|
|
|
|
#25 |
|
Member
Iscritto dal: Mar 2001
Messaggi: 90
|
diciamo che leggo la prima,poi devo leggere la seconda che ha la stessa struttura faccio un ciclo for?
Nell'esempio che mi hai fatto quello che leggo dove lo memorizzo?
__________________
Cammax |
|
|
|
|
|
#26 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Lì non ho messo le strutture...ovviamente ti dovrai fare al tua bella struct...
Codice:
struct cella {
int sector;
int traffic;
int locX, locY;
};
Se il numero di celle è sempre 7 allora ti fa un vettore statico e accedi all'i-esima cella con l'indice (-1)... Se a priori (prima di leggere il file) non conosci il numero delle celle allora ti conviene usare una lista...le conosci ? L'unico problema che puoi incontrare è il fatto che il contenuto delle celle non è costante (non ci sono sempre gli stessi parametri, ad esempio LBC non c'è sempre), così come in CELL_RELATIONS non ci sono sempre gli stessi parametri in ogni relazione... |
|
|
|
|
|
#27 |
|
Member
Iscritto dal: Mar 2001
Messaggi: 90
|
il numero di celle le conosco
in cell relations quando non cè H 1 vuol dire che H è 0,mentre se non cè il valore 0,xxxx vuol dire che è 0 anche quello... l'importante che dal numero di celle tiro fuori il numero di traffic in ognuna di questa.
__________________
Cammax |
|
|
|
|
|
#28 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quindi puoi usare un vettore statico...
|
|
|
|
|
|
#29 |
|
Member
Iscritto dal: Mar 2001
Messaggi: 90
|
Come inserisco in un vettore una struttura?
__________________
Cammax |
|
|
|
|
|
#30 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Definisci la struttura come ti ho detto prima e dopo basta fare:
cella vett[N]; N lo devi sostituire con il numero di celle... |
|
|
|
|
|
#31 | |
|
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Quote:
#include <string> #include <vector> #include <fstream> using namespace std; struct cell { string sito; int traffic; int location; } void readCell( istream& in , cell& c ) { string a,b; // queste fanno schifo ma servono a saltare la parola 'cell' e la '(' in >> a; in >> b; // potremmo controllare che a=="cell" e b==")" ed eventualmente lanciare un'eccezione o ritornare un valore di errore in >> c.sito >> c.traffic >> c.location; // anche qui dobbiamo eliminare la // parentesi di uscita ed // eventualmente controllare che sia // appunto una ")" in >> a ; } per leggere le strutture si potrebbe fare ( ad esempio ) ifstream input("file.txt"); int count; // quane ne dobbiamo leggere cell* table = new cell[count]; for ( int i=0 ; i< count ; i++ ) readCell( input , table[i] ); Poi ci si puo' sbizzarrire , volendo : che ne so, cambiare readCell in un operator >> cosi' da poter leggere le celle con un "input >> table[i]" Ciao |
|
|
|
|
|
|
#32 |
|
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
Camacho, stammi a sentire, quello che ha inventato il deltaplano era un ingegnere della NASA.
Io mi sforzo ad essere correct, però non posso ammettere che la variabilità di spazi o piccole altre cose possa essere ritenuta un problema. Non è un problema. Addirittura si parla ancora del problema di non conoscere a priori le dimensioni di un vettore, di vettori statici ... (i vettori statici li uso solo per boosterare le velocità di calcolo). Ma scusate ma li avete mai usati, per esempio, i variant array di VB ? Se vuoi dimmi come deve essere fatto il file dati per essere letto senza problermi con una semplice routine in C++ e ti faccio un convertitore che si mangia il tuo file di testo e genera il file (i files) desiderato/i. Altrimenti si può fare una routine DLL in Fortran che ti restituisce le tue matrici o sotto forma di strutture dati o di matrici propriamente dette. E' anche per questo, cionci, che bisogna affrontare problemi grandi (per es. allocamento dinamico e calcolo con matrici 10^4 x 10^4) per risolvere quelli piccoli. Lo strumento si impara ad usare bene solo quando si affrontano problemi pesanti. Infatti non a caso il Prof. di Camacho gli ha detto che è una ca++ata. La conclusione di tutto questo navigare nella sezione del forum è che chi usa il Fortran dovrà imparare il C++ ... per insegnarlo a quelli che lo usano. P.S. Scusate, ma credo che qualche voce critica e diversa non faccia male. |
|
|
|
|
|
#33 |
|
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Ho dato una occhiata al file di esempio.
Se ho capito bene il tuo problema e' "solo" quello di leggere il testo tra "CELLS {" e l'ultima } Allora in tal caso il mio esempio puo' anche andare bene a patto di cambialo un poco. ( avevo capito male la struttura dei dati ). Resta comunque valida l'idea di utilizzare ( secondo me ) l'operator >> sulle stringhe, visto che e' comodo per separare tutti gli elementi dell'input se questi sono divisi tra loro da spazi, come mi sembra sia il tuo caso ( a parte le coppie (a , b) che sono attaccate alle parentesi ) |
|
|
|
|
|
#34 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
L'allocamento dinamico in C++ si può fare benissmo...ma è l'allargamento del vettore già allocato dinamicamente che non si può fare (bisogna crearne uno nuovo e spostare il contenuto in quello nuovo)... Si possono benissimo usare le liste senza incorrere in problemi di allocazione...trovo un nuovo elemento, lo alloco, lo linko alla lista.. Io credo di aver affrontato problemi pesanti in C++...il compilatore C++ che ho fatto non mi sembra una cazzata e nemmeno la rete neurale per il riconoscimento ottico che ho fatto l'anno scorso (visto che a te piace la matematica)... Credo di avere una buona esperienza di C/C++ (10 anni)...quindi non mi piace stare a sentire i discorsi che fai quando non sai di cosa stiamo parlando...imparati il C++ e poi ne riparliamo... /\/\@®¢Ø : tu che ne pensi ? |
|
|
|
|
|
|
#35 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
|
#36 |
|
Member
Iscritto dal: Mar 2001
Messaggi: 90
|
Ragazzi sucsatemi non voelvo che si creassero polemiche....è solo che io purtroppo non ho molto tempo per imparare benissimo il C++ in vista della tesi che è fra un mese(ma conto di farlo appena terminato) e quindi cercavo indizi...
Comuqneu io vi dico quello che devo creare: un vettore chiamato sito[celle] che mi dica a quale sito o gni cella appartiene. un vettore cell[trx] che mi dice a quale cella appartiene ogni traffic. una matrice celle*celle che mi indichi quando se H=1 o a H=0 tra le celle. una matrice celle*celle che mi dica se l'interferenza(valore 0,xxx presente in cell relation) è diversa da 0. una matrice celle*canali che quando c'è in cell lbc con un valore,che indica un canale metta in matrice 1 tra la cella e il canale. Grazie comunque della pazienza e scusatemi. Ah i miei vettori sono tutti di idmensione fissa.
__________________
Cammax |
|
|
|
|
|
#37 |
|
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
Primo in C++ non esistono vettori di variant...si può superare il problema usando la classe vector della STL, ma sinceramente non mi ci sono mai messo... L'allocamento dinamico in C++ si può fare benissmo...ma è l'allargamento del vettore già allocato dinamicamente che non si può fare (bisogna crearne uno nuovo e spostare il contenuto in quello nuovo)... Si possono benissimo usare le liste senza incorrere in problemi di allocazione...trovo un nuovo elemento, lo alloco, lo linko alla lista.. male, malissimo, la lista la devi fare solo quando ti sposi Io credo di aver affrontato problemi pesanti in C++...il compilatore C++ che ho fatto non mi sembra una cazzata e nemmeno la rete neurale per il riconoscimento ottico che ho fatto l'anno scorso (visto che a te piace la matematica)... bravo, 7+ Credo di avere una buona esperienza di C/C++ (10 anni)...quindi non mi piace stare a sentire i discorsi che fai quando non sai di cosa stiamo parlando...imparati il C++ e poi ne riparliamo... tutto devi stare a sentire, anche quello che dice cionci. /\/\@®¢Ø : tu che ne pensi ? ARCO è un riflessivo, non si arrabbia per opinioni diverse, al massimo sorvola, come una freccia. Comunque: alla prova dei fatti. però questa volta ci mettiamo su 1000 € (come la matrice 1000 x 1000) |
|
|
|
|
|
#38 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Magari non userò il metodo più semplice o quello + corto...ma stai tranquillo che arriverei ad un risultato... Per la matrice 1000x1000 sono riuscito ad ottenere 3,2 secondi a 1333 Mhz... |
|
|
|
|
|
|
#39 | |
|
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Quote:
Allora... cerco di ricapitolare un po' per essere sicuro di aver capito giusto. L'input mi sembra composto da quattro sezioni: FORMAT , GENERAL INFORMATION , CELLS e CELLS_RELATIONS giusto ? E a te serve leggere le ultime due sezioni. Piu' cose si possono dare per scontate , piu' semplice si puo' fare il codice: ad esempio, le varie linee con le informazioni sono sempre separate ? O potrebbe capitarmi sulla stessa riga LOC (9, 10); LBC 13; ( tanto per fare un esempio ). Poi: le prime tre righe di una CELL sono sempre uguali ? ( ovvero qualcosa del tipo NOME; #comment SETTORE; #commento TRAFFIC; #commento ( anche se penso proprio di si visto che consistono solo del valore, commento a parte ). Altra cosa che non mi e' chiara: Altra cosa: come faccio a capire a quale cell appartiene un traffic ? con con il valore TRAFFIC penso, visto che compare uguale su piu' celle ! |
|
|
|
|
|
|
#40 |
|
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
ma come ARCO (oh ARCO), da uno che tira d'intuito come te .... dai su !
per cionci: io ti credo sulla parola, ma mi fanno 'specie' tutte le tue perplessità, i tuoi 'se' e i tuoi 'ma', rispetto a un problema assolutamente standard che dovresti avere affrontato e risolto, in 10 anni di attività Cplusplana, molte volte. Evidentemente ti si sono presentate altre problematiche e forse ormai non siete più della nostra famiglia (più informatici che ingegneri) e di questo mi dispiace. Ma dei 1000 € ? P.S. caldeggio vivamente informarsi sugli operatori (VB): Like, Val, Instr, L_R_Trim$, ecc. ecc. e trovare gli equivalenti C++ (una qualche decina di #include, I suppose) oppure scriverli ex-novo come esercizio per il weekend Poi ragazzi, non vi vorrei usisionare, ma con una Excel_"Importazione guidata testo" e una botta di For Each Cell in Worksheets("Foglio1").Range("A:AA" a$ = Cell If Like(a$, ....... If Like(a$, ....... If Like(a$, ....... ..... ..... Next Cell vi passa la paura (o vi viene ?) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:34.



















