|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2005
Città: A casa mia
Messaggi: 825
|
Percentuale di avanzamento
salve io voglio implementare in un codice ke esegue l'ordinamento di piu vettori un contatore ke scrive a schermo (sulla schell sia di win ke linux) la percentuale di avanzamento dell'ordinamento.Vi spiego un attimo come lo vorrei ideare.
Il programma prende in input un vettore e lo ordina n volte e ne calcola il tempo di ordinamento facendo una somma su tutti i tempi ottenuti nelle ripetizioni / ripetizioni.Io vorrei prendere queste n ripetizioni ed eseguire la proporzione : 100% : n = 1% : x dove x sono il numeri di ripetizioni necessarie per eseguire l' 1 %. e fin qui nessun problema,basta inizializzare un contatore count ke quando arriva alla dimensine count = x incrementa di 1 la percentuale eseguita. il problema è comunicarli a schermo in quanto mi troveri con un output del genere : shell : ----------------------------------------------------------------- | | 1.ordinare un vettore di 10 elementi | 2.ordinare un vettore di 100 elementi | 3.ordinare un vettore di 1000 elementi | 4.ordinare un vettore di 5000 elementi | |tempo necesario per ordinare un vettore di 10 elementi 0.200 sec | |tempo necessario per ordinare un vettore di 100 elementi 0.450 sec |percentuale eseguita: 49% | | | |-------------------------------------------------------------------------- ora come ora pero avrei due metodi: o farsi ke la shell si comporti in questa maniera: | |percentuale eseguita: 49% |percentuale eseguita: 50% |percentuale eseguita: 51% |percentuale eseguita: 52% | ecc | | | o altrimenti pulire lo schermo ogni volta ke si aggiorna la percentuale,solo ke cosi perdo le informazioni precedenti relative ai tempi ottenuti in precedenza : |tempo necessario ad ordinare un vettore di 10 elementi 0.400 sec | |tempo necessario ad ordinare un vettore di 100 elementi 0.450 sec è vero ke tutti questi numeri li salvo gia su file e ke potrei richiarmarli da file ogni volta ke aggiorno la percentuale,solo ke cosi appesantire notevolmente il codice e l esecuzione, ke gia dura dalle 12 alle 24 ore per eseguire tutti gli ordinamenti con tutti gli algoritmi di ordinamento contemplati dal codice Non c'è una procedura ke permette di dividere in zone lo schermo della shell e gestire indipendemente gli output?? help please... ke se riesco ad implementare questo,il 30 e lode non me lo toglie nessuno e vi offro una birra a tutti (VIRTUALE grazie Ultima modifica di 3nigma666 : 02-03-2005 alle 14:35. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Puoi accedere o direttametne al buffer della memoria video (cosa improponibile su un eseguibile Windows a 32 bit) o, almeno sotto Windows, puoi usare le API... Ti puoi spostare all'inzio della riga che vuoi modificare con questa funzione:
BOOL SetConsoleCursorPosition( HANDLE hConsoleOutput, COORD dwCursorPosition ); |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
|
Semplicemente cancelli la percentuale e la ristampi, in c il back space dorebbe essere '\b' ma non sono sicuro, questo protebbe provocare un po di sfarfallio della percentuale, quando la ristampi....
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jan 2005
Città: A casa mia
Messaggi: 825
|
fantastica questa cosa la provo subito...
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Dec 2004
Città: Parma
Messaggi: 1037
|
ma sei in modalità testo? nel boland c'era la gotoxy() per posizionarsi e poi sovrascrivere. cmq sfarfalla sì..
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:32.



















