Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Le Jabra Evolve3 85 non sono semplicemente cuffie Bluetooth con cancellazione del rumore. Sono un dispositivo professionale pensato per chi trascorre gran parte della giornata in riunione, al telefono o davanti a un assistente basato sull'intelligenza artificiale
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
Abbiamo provato MSI PRO MAX EDGE AI+, un mini-PC professionale progettato per eseguire modelli di intelligenza artificiale in locale, senza dipendere dal cloud. Il sistema abbina il processore AMD Ryzen AI Max+ 395, 128 GB di memoria unificata e un telaio in alluminio da appena 4 litri, con l'obiettivo di offrire capacità di elaborazione elevate in un formato compatto.
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Il nuovo top di gamma vivo punta su un comparto fotografico particolarmente articolato, con un teleobiettivo da 200 megapixel e teleconvertitori esterni capaci di arrivare a 400 mm equivalenti. Lo abbiamo provato a Tenerife, mettendo alla prova fotocamere, prestazioni, autonomia e accessori. Ecco come si è comportato.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 21-01-2011, 11:56   #1
kwb
Senior Member
 
L'Avatar di kwb
 
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
[C] Controllo esecuzione con tempo

Ciao a tutti.
Sto facendo un programma dove, preso in input un tempo ( in secondi ) questo esegue il programma finchè o non è scaduto il tempo o le operazioni sono terminate.
Detto questo, il programma esegue delle modifiche su una matrice ed è tutto automatizzato, è quindi chiaro che qualunque tempo inserito sarà certamente maggiore di quello impiegato dal programma a completare le operazioni ( ci mette, a stima, meno di un secondo ).
Il mio problema è che non so come 'slegare' le funzioni che operano sulla matrice dal tempo.
Fino ad ora, quello che sono riuscito a fare è far eseguire un'operazione al secondo, ma non è quello che voglio...
Detto questo, non ho la più pallida idea di come operare per slegare le due cose, anche perchè inizio a sospettare che non sia possibile. Inoltre, non avendo mai avuto a che fare con le librerie del tempo, non so nemmeno dove andare a mettere bene le mani, immagino comunque si debba usare la funzione clock().

EDIT: Aggiungo che ho la necessità che il codice scritto, le librerie utilizzate e quant'altro, siano indipendenti dal sistema.
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505

Ultima modifica di kwb : 21-01-2011 alle 11:58.
kwb è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2011, 15:08   #2
:.Blizzard.:
Senior Member
 
L'Avatar di :.Blizzard.:
 
Iscritto dal: Jan 2006
Città: Perugia - San Benedetto del Tronto
Messaggi: 348
Una curiosità, ma il discorso del tempo ha un suo perché oppure ti serve a te per valutare l'efficienza del programma?

Cmq non mi è molto chiaro quello che devi fare
:.Blizzard.: è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2011, 15:18   #3
Supdario
Member
 
Iscritto dal: Mar 2008
Messaggi: 267
Hai 2 modi per farlo, uno è abbastanza semplice ma potrebbe rallentarti il programma, invece l'altro è migliore ma richiede l'uso dei thread.

1) Metti un controllo all'interno dell'algoritmo, che controlla ad ogni esecuzione del ciclo (o quel che è) il tempo, e se è cambiato, esce.
2) Usi un thread per il tuo algoritmo e metti un'attesa nel thread principale. Dopo quell'attesa metti un'istruzione per killare il thread secondario ed ecco fatto.
Supdario è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2011, 15:49   #4
kwb
Senior Member
 
L'Avatar di kwb
 
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
Quote:
Originariamente inviato da :.Blizzard.: Guarda i messaggi
Una curiosità, ma il discorso del tempo ha un suo perché oppure ti serve a te per valutare l'efficienza del programma?

Cmq non mi è molto chiaro quello che devi fare
Ti spiego... Il lavoro che ci è stato dato da fare richiede che vengano effettuate delle operazioni varie ( non mi sto a dilungare su cosa c'è da fare perchè non serve ) su una matrice.
Tuttavia questo può essere fatto in due modi: o è l'utente a dire cosa fare tramite input diretto delle coordinate di una cella della matrice, oppure deve pensarci il programma ( e quindi si deve ideare un algoritmo in base di scegliere quale operazione eseguire e come ).
Siccome non diventava agevole dare delle specifiche troppo diverse a chi sceglieva di operare tramite input sulla matrice e chi sceglieva di fare un algoritmo che operasse, ad entrambi è stato imposto che il programma termini dopo x secondi oppure se non si possono più eseguire operazioni sulla matrice.
È chiaro che se è l'algoritmo a operare direttamente, ci va meno di 1 secondo per concludere le operazioni, quindi l'aggiunta del tempo è superflua...
Ho fatto notare al professore questa particolarità e mi ha detto che voleva comunque eseguissimo l'implementazione del controllo del tempo in ogni caso.

In conclusione, effettivamente per come ho strutturato io ( e molti altri ) il programma, non ha un suo senso l'aggiunta del tempo, però queste sono le richieste


Quote:
Originariamente inviato da Supdario Guarda i messaggi
Hai 2 modi per farlo, uno è abbastanza semplice ma potrebbe rallentarti il programma, invece l'altro è migliore ma richiede l'uso dei thread.

1) Metti un controllo all'interno dell'algoritmo, che controlla ad ogni esecuzione del ciclo (o quel che è) il tempo, e se è cambiato, esce.
2) Usi un thread per il tuo algoritmo e metti un'attesa nel thread principale. Dopo quell'attesa metti un'istruzione per killare il thread secondario ed ecco fatto.
1. Perchè dovrebbe uscire se il tempo è cambiato?!?
2. Hmm... Sarebbe bello provare, è tanto difficile? Da dove devo partire?
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
kwb è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2011, 16:35   #5
kwb
Senior Member
 
L'Avatar di kwb
 
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
2. Mi stavo giusto chiedendo perchè sui miei manuali non ci fosse menzione dei thread.
Ho appena scoperto che sono sistemi dipendenti, e che i sistemi *nix usano una libreria, quelli windows un'altra ecc...
È vero? Ho letto bene? Se si, non ne posso fare uso...
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
kwb è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2011, 17:19   #6
Supdario
Member
 
Iscritto dal: Mar 2008
Messaggi: 267
Ah... Non avevo letto quel punto. Effettivamente, salvo alcuni linguaggi interpretati (ad esempio il Java), l'implementazione dei thread è dipendente dalla piattaforma.

A questo punto ti tocca usare la prima opzione, cioè mettere dei controlli in punti strategici all'interno dell'algoritmo.
Il C ti fornisce, all'interno della libreria "time.h", alcune funzioni per la gestione del tempo, tra cui il clock (con cui ottieni la massima precisione).
Piccolo esempio: vuoi avviare un ciclo ed uscire dal ciclo dopo che sono passati 1.5 secondi:

Codice:
double tempo = 1.5;
clock_t tempo_fine = clock() + tempo*CLOCKS_PER_SEC;
while (clock() < tempo_fine)
{
    //Esegui la roba
}
La funzione per ottenere il clock corrente è "clock()". Hai a disposizione anche la costante CLOCKS_PER_SEC, che indica quanti clocks ci sono in un secondo.
Supdario è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2011, 19:20   #7
kwb
Senior Member
 
L'Avatar di kwb
 
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
Alla fine ho risolto facendo così:
Prendo in input il tempo, lo converto in intero con atoi() poi lo moltiplico per CLOCK_PER_SEC così trovo i clock e poi comparo questo numero con il risultato della funzione clock, se maggiore, fermo tutto!
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
kwb è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro Jabra Evolve3 85: le cuffie sia per l'intratteni...
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
OpenAI sfida GitHub acquisendo Pierre Co...
Novità ai vertici di HP: Emma Wal...
Pudu Robotics apre la sede europea : un ...
Meta compra Conductor, la startup degli ...
ASUS ExpertBook A7: disponibile in Itali...
Il film di Naruto si farà davvero: Sony ...
Motorola porta il suono Bose su moto bud...
Motorola presenta moto watch 2 fit: tecn...
motorola signature 27 ufficiale! Il top ...
Dreame L60 Ultra CE a 799€ su Amazon: 35...
DJI Matrice 5T: nuovo drone enterprise c...
iOS 27.3 e gli altri nuovi OS cambiano l...
ECOVACS T90 MAX OMNI crolla a 389€ su Am...
Switch 2 rallenta dopo i rincari: 2,67 m...
Claude, Codex e Copilot lavorano insieme...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:13.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v