|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#21 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Re: C++
Quote:
long i = 600000L; clock_t start, finish; double duration; start = clock(); while( i-- ) ; finish = clock(); duration = (double)(finish - start) / CLOCKS_PER_SEC; printf( "%2.1f seconds\n", duration ); E' un po più preciso e si riferisce ai cicli di clock usati da quel processo... Se non hai la costante CLOCKS_PER_SEC già definita però è un casino...te la devi calcolare... In altri sistemi può chiamarsi CLK_TCK... Per i file .bin associati ad un eseguibile... Apri una cartella qualsiasi di Windiows...Strumenti->Opzioni cartella->Tipi di File-> elimina bin dalla lista... |
|
|
|
|
|
|
#22 |
|
Member
Iscritto dal: Mar 2001
Messaggi: 90
|
C++
Ti chiedo scusa ,hai veramente una grande pazienza,ma purtroppo sono un povero novizio, anche se devo dire che sto imparando molte cosucce....
Ora mi si presenta questo problema... ho creato il file bin, e avrei intenzione di trasformarlo in file txt per vedere il risultato ottenuto su schermo...Ho creato quindi un codice per leggere il file bin e scrivere sul file txt...Il bin l'ho aperto con fopen e letto con fread mentre il txt aperto in scrittura con fopen e scritto con fprintf...Mi si genera il file txt ma il problema è che mi si creano tutti numeri pari a 614400 tipo,questo per un vettore, mentre per una matrice compasto da 0 e 1 ottengo tutti numeri alti del tipo 312043(non lo ricordo bene). A cosa è dovuto ciò?Forse cè un iter preciso per trasformare un bin in un txt, e io ho tralasciato qualcosa?Ho forse è dovuto alle grandi dimensioni, basti pensare che le matrici sono dell'ordine di 1800*1800...Ti prego dammi una delucidazione..... Poi un consiglio(scusami) questo file generato mi serve come istanza di esempio per fornire dati in input ad un algoritmo...Mi conviene quindi generare il file bin e fare una funzione che legga i vari file bin che costituiscono i dati di input oppure genero gli input internamente al codice dell'algoritmo ,anche se penso che sia uno spreco inutile...giusto? Ti ringrazio veramente molto non sai che aiuto mi stai dando... Ciao
__________________
Cammax |
|
|
|
|
|
#23 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Re: C++
Quote:
Ad esempio puoi farti diversi set di file di input...senza prevedere diversi algoritmi di generazione... Se c'è una unica possibile matrice di input allora ti conviene generartela internamente al codice... |
|
|
|
|
|
|
#24 |
|
Member
Iscritto dal: Mar 2001
Messaggi: 90
|
C++
No le matrici che mi servono in input sono 5,quindi ho pensato di creare(come del resto ho fatto) il codice per le dare origine alle 5 matrici e poi fare una funzione di input nell'algoritmo per avere inizialmente tutti gli input pronti,altrimenti mi sarebbe diventato veramente lungo il tempo di processamento dell'algoritmo....che ne dici?
Per quanto riguarda il codice per leggere il file bin è questo: #include<stdlib.h> #include<stdio.h> #define trx 1807 int main() { FILE *fd,*fp; int adj[trx][trx]; int i,j; /* apre il file in lettura */ fd=fopen("Matrice_adiacenze.bin", "rb"); if( fd==NULL ) { perror("Errore in apertura del file"); exit(1); } fp=fopen("Matrice_adiacenze.txt","w"); if( fp==NULL) { perror("Errore in apertura del file"); exit(1); } /* ciclo di lettura */ for(i=0;i<=trx-1;i++) for(j=0;j<=trx-1;j++){ fread(adj, sizeof(int),trx*trx, fd); fprintf(fp,"%d ",adj); } /* chiude il file */ fclose(fd); fclose(fp); return 0; } Forse l'errore è dovuto al fatto che mi sono accorto che ho scritto file bin con fprintf invece che con fwrite? Oppure fread in questo codice lo dovrei scrivere cosi: fread(adj,sizeof(adj),1,fd). Grazie ancora e ciao.
__________________
Cammax |
|
|
|
|
|
#25 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Fai il ciclo in questo modo...
fread(adj, sizeof(int),trx*trx, fd); //basta leggerlo una volta, //perchè leggi tutta la matrice in una volta sola for(i=0;i<=trx-1;i++) { for(j=0;j<=trx-1;j++) fprintf(fp,"%5d ",adj[i][j]); //Ho messo il 5, ma se hai + di 5 cifre aumentalo fprintf(fp,"\n"); } |
|
|
|
|
|
#26 |
|
Member
Iscritto dal: Mar 2001
Messaggi: 90
|
C++
Ciao ho prodotto l'istanza random e sto cercando di farla leggere dall'algoritmo come dato di input.......
Compilando il codice dell'algoritmo,errori non me ne vengono dati ,ho solo 7 warnings(sono gravi?).... Il problema è che quando lancio l'esecuzione mi viene dato Make filed! che dice: Unresolved external 'exp(double)' referenced from D:\........... Io uso in una funzione exp per calcolare l'esponente, ma non capsico a cosa è dovuto l'errore.... Ciao Grazie
__________________
Cammax |
|
|
|
|
|
#27 |
|
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Attento!!!
srand(time(NULL)); double n = (int(rand() * 100))/(double)100; rand ritorna un intero tra O e INT_MAX, non un float tra 0 e 1 ( frega sempre anche me Quindi il risultato sara' sballato ! se scrivi double n = ( double( rand() ))/ INT_MAX ; ottieni numeri tra 0.0 e 1.0. ( ricordati di includere <climits> ) Pero' non saranno a due sole cifre... per quello ti ci vorrebbero' numeri razionali, non floating-point |
|
|
|
|
|
#28 |
|
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Ah. per via dell'errore.
Probabilmente e' perche' non viene inclusa la libreria con le funzioni matematiche ( anche se in teoria dovrebbe farlo automaticamente |
|
|
|
|
|
#29 |
|
Member
Iscritto dal: Mar 2001
Messaggi: 90
|
array C++
Ciao,
dovrei ordinare un array ma vorrei mantenere il legame che c'è tra gli indici e i valori dell'array... diciamo il mio array rappresenta un i gradi di un insieme di nodi e io vorrei ordinare i gradi cercando di mantenere la relazione tra il grado e il no specifico... Ciao grazie
__________________
Cammax |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:39.



















