io
2006-05-27 19:44:45 UTC
Vi spiego il mio problema:
Usando Mathematica posso fare dei programmini che mi scrivono ciclicamente
su un file un numero
(uno solo); ad esempio potrei fare un programmino che mi trova numeri primi:
questo programmino funzionerebbe così:
trova il numero 2 e poi me lo scrive sul file primo.txt, poi trova il numero
3 e
mi riscrive il file col numero 3, poi mi trova 5 ecc... Quindi, se vado ad
aprire il
file primo.txt in un qualunque momento, visualizzo il numero primo più
grande
che il mio programmino mi ha trovato.
Ma supponiamo che *mentre* il file primo.txt è
aperto e mi visualizza (ad esempio) il numero 3, il mio programmino trova il
numero 5
e quindi Mathematica scrive 5 sul file primo.txt ; dal momento che il file
primo.txt
è aperto (perché, ad esempio, io lo sto visualizzando col blocco note)
quello che vedrò scritto sul file primo.txt sarà 3, anche se il mio
programmino ha trovato il numero 5.
Ora la mia domanda è: conoscete qualche modo per far si che io possa (senza
fare niente manualmente) vedere sempre e solo il numero primo più grande che
il mio programmino mi ha trovato?
Un idea che ho avuto e far si che mi si apra una finestra e che in questa
finestra, che dovrà rimanere sempre aperta, venga sempre visualizzato il
contenuto aggiornato del file primo.txt (ossia venga sempre visualizzato il
numero primo più grande che Mathematica mi ha trovato); un possibile modo
per concretizzare ciò potrebbe essere creare un file primo.bat con queste
istruzioni
:start
more primo.txt
echo off
goto start
ma i difetti di questo metodo sono:
1) uso eccessivo della cpu, che invece dev'essere impegnata principalmente
per trovare numeri primi
2) l'output non cambia solo quando è cambiato il file primo.txt, ma cambia
in continuazione
Magari un modo per migliorare questo metodo è far fare il ciclo che ho
scritto sopra solo ogni tot di tempo, ma non conosco i comandi per fare
questo... voi li conoscete?
Grazie e ciao
Usando Mathematica posso fare dei programmini che mi scrivono ciclicamente
su un file un numero
(uno solo); ad esempio potrei fare un programmino che mi trova numeri primi:
questo programmino funzionerebbe così:
trova il numero 2 e poi me lo scrive sul file primo.txt, poi trova il numero
3 e
mi riscrive il file col numero 3, poi mi trova 5 ecc... Quindi, se vado ad
aprire il
file primo.txt in un qualunque momento, visualizzo il numero primo più
grande
che il mio programmino mi ha trovato.
Ma supponiamo che *mentre* il file primo.txt è
aperto e mi visualizza (ad esempio) il numero 3, il mio programmino trova il
numero 5
e quindi Mathematica scrive 5 sul file primo.txt ; dal momento che il file
primo.txt
è aperto (perché, ad esempio, io lo sto visualizzando col blocco note)
quello che vedrò scritto sul file primo.txt sarà 3, anche se il mio
programmino ha trovato il numero 5.
Ora la mia domanda è: conoscete qualche modo per far si che io possa (senza
fare niente manualmente) vedere sempre e solo il numero primo più grande che
il mio programmino mi ha trovato?
Un idea che ho avuto e far si che mi si apra una finestra e che in questa
finestra, che dovrà rimanere sempre aperta, venga sempre visualizzato il
contenuto aggiornato del file primo.txt (ossia venga sempre visualizzato il
numero primo più grande che Mathematica mi ha trovato); un possibile modo
per concretizzare ciò potrebbe essere creare un file primo.bat con queste
istruzioni
:start
more primo.txt
echo off
goto start
ma i difetti di questo metodo sono:
1) uso eccessivo della cpu, che invece dev'essere impegnata principalmente
per trovare numeri primi
2) l'output non cambia solo quando è cambiato il file primo.txt, ma cambia
in continuazione
Magari un modo per migliorare questo metodo è far fare il ciclo che ho
scritto sopra solo ogni tot di tempo, ma non conosco i comandi per fare
questo... voi li conoscete?
Grazie e ciao