Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-02-2010, 10:41   #1
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
[C]Progettare un buon programma

Devo fare un progetto in C per l'università! Un po di tempo fa avevo anche chiesto alcuni consigli! Oggi comincio! Volevo sapere se c'erano dei metodi per la progettazione! Ad esempio per Java conosco UML e mi sono trovato molto bene per la progettazione di applicazioni anche con un numero molto elevato di classi! Per quanto riguarda invece il C esiste qualche cosa del genere? O magari anche solo dei consigli sui passi da fare per la scrittura del codice! Non vorrei fare troppa confusione dato che è il mio primo progetto in C e sicuramente avrò molto da scrivere!
Grazie
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2010, 11:40   #2
carlito9987
Member
 
Iscritto dal: Sep 2007
Messaggi: 259
Tanto per iniziare non pensare minimamente alle classi..... ti crea solo confusione. C non è un linguaggio object oriented, ma procedurale.

E' buona norma analizzare per bene il problema prima di iniziare a scrivere codice, molti sbagliano e presi dalla fretta iniziano a programmare andando a tentativi ... poi ti rendi conto che hai sbagliato tutto e provi a mettere toppe finchè non capisci che devi praticamente ricominciare da zero!

Dopo aver fatto una bella e corposa analisi, prendi foglio e penna ed inizia con la pseudocodifica... Ti facilita un bel pò le cose, gli errori più grossolani li riesci ad identificare in questa fase.. Vantaggi? Non dovrai riscrivere tutto il codice! Inoltre in questa fase decidi anche le strutture dati che andrai ad utilizzare..

Dopo aver fatto questo puoi cominciare con il codice.... Ricorda sempre:
- Header file
- Variabili Globali
- Strutture
- Prototipi
- Corpo del programma

Se posso darti qualche altro consiglio rimango a disposizione... Ciao e in bocca al lupo!!
__________________
Ho concluso trattative con: Fuckaldo -- Fede -- HTCPTC
-----------------------------------------------------------

Mobo: MSI P43 Neo-F ATX CPU: Intel E7300 2.66Ghz HD 1: Seagate Barracuda 250Gb SATA2 Ram: 2* 1Gb Corsair XMS DDR2 800MHZ Scheda Video: Gigabyte HD5670 1gb DDR5
carlito9987 è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2010, 12:49   #3
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Quote:
Originariamente inviato da carlito9987 Guarda i messaggi
Tanto per iniziare non pensare minimamente alle classi.....
No vabbè ho parlato di UML non per pensare alle classi ma giusto per fare un esempio !
Quote:
Originariamente inviato da carlito9987 Guarda i messaggi
E' buona norma analizzare per bene il problema prima di iniziare a scrivere codice, molti sbagliano e presi dalla fretta iniziano a programmare andando a tentativi ... poi ti rendi conto che hai sbagliato tutto e provi a mettere toppe finchè non capisci che devi praticamente ricominciare da zero!
Esatto proprio questo è il problema!

Ora comincio a buttare giù qualche riga di progetto e poi ti faccio sapere se ho problemi... Grazie mille!
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2010, 14:09   #4
carlito9987
Member
 
Iscritto dal: Sep 2007
Messaggi: 259
Sai quante volte è capitato a me!!!

Dopo un pò capisci che una buona analisi ti fa risparmiare la metà del tempo!

Per qualsiasi cosa chiedi pure.... C lo uso abbastanza in questo periodo.
__________________
Ho concluso trattative con: Fuckaldo -- Fede -- HTCPTC
-----------------------------------------------------------

Mobo: MSI P43 Neo-F ATX CPU: Intel E7300 2.66Ghz HD 1: Seagate Barracuda 250Gb SATA2 Ram: 2* 1Gb Corsair XMS DDR2 800MHZ Scheda Video: Gigabyte HD5670 1gb DDR5
carlito9987 è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2010, 14:14   #5
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Grandi raga
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2010, 14:20   #6
eraser
Senior Member
 
L'Avatar di eraser
 
Iscritto dal: Nov 2001
Città: Bastia Umbra (PG)
Messaggi: 6395
Quote:
Originariamente inviato da carlito9987 Guarda i messaggi
Dopo un pò capisci che una buona analisi ti fa risparmiare la metà del tempo!
Concordo. Una buona analisi mentale (magari anche un T.S.O) prima di scrivere programmi in C è fondamentale per capire il perché ti stai per buttare in tale ambizioso progetto

PS: scherzo è una battuta, scrivo letteralmente solo in C, lo amo
__________________
:: Il miglior argomento contro la democrazia è una conversazione di cinque minuti con l'elettore medio ::
eraser è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2010, 16:25   #7
carlito9987
Member
 
Iscritto dal: Sep 2007
Messaggi: 259
Se il TSO è quello che ho capito io..... Concordo!!
__________________
Ho concluso trattative con: Fuckaldo -- Fede -- HTCPTC
-----------------------------------------------------------

Mobo: MSI P43 Neo-F ATX CPU: Intel E7300 2.66Ghz HD 1: Seagate Barracuda 250Gb SATA2 Ram: 2* 1Gb Corsair XMS DDR2 800MHZ Scheda Video: Gigabyte HD5670 1gb DDR5
carlito9987 è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2010, 16:27   #8
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 12904
Quotone, per l'università abbiamo scritto un programma peer2peer sotto linux, e carta e penna sono fondamentali per poter affrontare progetti di un certo tipo.
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2010, 13:27   #9
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Ora mi trovo davanti a un piccolo dilemma!

Devo decidere se gestire i client che vogliono connettersi con i thread oppure creare dei figli con fork!

Il problema in definitiva qual'è! Se io ho delle variabili globali con le fork saranno modificate sia dal padre che dai figli! Solo che il padre continuerà a vederle come le modifica lui e il figlio altrettanto dato che effettivamente con la fork sto creando un nuovo processo! Per ovviare a questa cosa dovrei utilizzare uno spazio di memoria condivisa con shmget! Utilizzando i thread questa cosa non succede! Anche dalla vostra esperienza secondo voi cosa potrebbe essere meglio usare??
Con i thread avrei maggiori performance aumentando un po la complessità comunque!
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2010, 15:04   #10
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 12904
Io dico di utilizzare i thread.

Se stai sotto linux, c'è l'ottima libreria pthread.

Non è così complesso gestirli con quella libreria.
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2010, 15:17   #11
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Io per i thread sto usando Boost::thread...
certo Boost è una roba immensa e ridondante, ma Thread fa proprio il suo dovere.
Non devi impararti assolutamente niente se non i concetti di alto livello (mutex, concorrenza, starving etc)... che possono uscire fuori quando hai una condivisione delle risorse.

Basta che dichiari un operatore overloaded "()" nella tua classe e chiami:
Codice:
thread( boost::ref( ilTuoOggetto ) );
Questo crea il thread e ci esegue dentro l'operatore () sull'oggetto passato.
Molto comodo

EDIT: Ops Boost è C++. Come non detto
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2010, 17:08   #12
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Quote:
Originariamente inviato da Tommo Guarda i messaggi
Io per i thread sto usando Boost::thread...
certo Boost è una roba immensa e ridondante, ma Thread fa proprio il suo dovere.
Non devi impararti assolutamente niente se non i concetti di alto livello (mutex, concorrenza, starving etc)... che possono uscire fuori quando hai una condivisione delle risorse.

Basta che dichiari un operatore overloaded "()" nella tua classe e chiami:
Codice:
thread( boost::ref( ilTuoOggetto ) );
Questo crea il thread e ci esegue dentro l'operatore () sull'oggetto passato.
Molto comodo

EDIT: Ops Boost è C++. Come non detto



Ho cominciato a scrivere del codice! Io sono sempre stato per i thread però un mio amico mi aveva fatto cambiare idea neanche ricordo per quale motivo però! Comunque ora ci rifletto un po su! Mi faccio una lista di pro e contro!
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2010, 17:18   #13
bobbytre
Senior Member
 
L'Avatar di bobbytre
 
Iscritto dal: Feb 2010
Messaggi: 466
Quote:
Originariamente inviato da WarDuck Guarda i messaggi
Io dico di utilizzare i thread.

Se stai sotto linux, c'è l'ottima libreria pthread.

Non è così complesso gestirli con quella libreria.

anche sotto windows con pthread-w32 ( http://sourceware.org/pthreads-win32/ )
bobbytre è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2010, 17:35   #14
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 12904
Quote:
Originariamente inviato da clockover Guarda i messaggi



Ho cominciato a scrivere del codice! Io sono sempre stato per i thread però un mio amico mi aveva fatto cambiare idea neanche ricordo per quale motivo però! Comunque ora ci rifletto un po su! Mi faccio una lista di pro e contro!
IMHO un paio di motivi che potrebbero farti propendere per usare processi anziché threads:

- Devi gestire un numero fisso di processi/thread e magari li crei tutti subito senza gestirli dinamicamente: in quel caso la differenza di tempo tra la creazione di processi e la creazione di thread è tutto sommato irrilevante.

- I processi ti consentono maggiore stabilità poiché ognuno gira in uno spazio di memoria separato (per questo in IE8 ogni tab è un processo).

Viceversa se devi gestire un alto numero di richieste, dinamicamente, è consigliato usare i thread.

Per altro sia il numero di processi che il numero di threads dovrebbe essere limitato in tutti i SO (un po' di versioni fa in Linux non era così, tant'è che era soggetto a fork-bomb, potevi creare un numero elevato di processi, magari con un while infinito ed impallare il sistema ).

Ultima modifica di WarDuck : 25-02-2010 alle 17:38.
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2010, 23:10   #15
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Comunque, per una applicazione come una semplice chat in realtà mi sembrano eccessivi pure i threads
Mi sa che si fa meglio a fare proprio seriale?
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2010, 23:13   #16
bobbytre
Senior Member
 
L'Avatar di bobbytre
 
Iscritto dal: Feb 2010
Messaggi: 466
Quote:
Originariamente inviato da Tommo Guarda i messaggi
Comunque, per una applicazione come una semplice chat in realtà mi sembrano eccessivi pure i threads
Mi sa che si fa meglio a fare proprio seriale?
per una semplice chat , almeno due th ci vogliono , uno che gestisce l'invio dei dati e uno che gestisce la ricezione.
bobbytre è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2010, 23:22   #17
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Boh credo che si possa fare anche senza, le chat esistono da ben prima dei processori dual core
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2010, 23:25   #18
bobbytre
Senior Member
 
L'Avatar di bobbytre
 
Iscritto dal: Feb 2010
Messaggi: 466
Quote:
Originariamente inviato da Tommo Guarda i messaggi
Boh credo che si possa fare anche senza, le chat esistono da ben prima dei processori dual core
bobbytre è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2010, 00:35   #19
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Quote:
Originariamente inviato da bobbytre Guarda i messaggi
effettivamente non l'ho capita nemmeno io !

Comunque non devo fare una chat! Il mio progetto è un elenco telefonico remoto (ma può funzionare anche in locale)! Quindi non ho un numero ben preciso di client connessi! Comunque magari il mio prof (che tra l'altro è un qualcosa di disumano, un vero debugger umano) potrebbe avere una valutazione migliore nel vedere che sono stati usati i thread anzichè delle fork!
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 26-02-2010, 00:51   #20
bobbytre
Senior Member
 
L'Avatar di bobbytre
 
Iscritto dal: Feb 2010
Messaggi: 466
Quote:
Originariamente inviato da clockover Guarda i messaggi
effettivamente non l'ho capita nemmeno io !

Comunque non devo fare una chat! Il mio progetto è un elenco telefonico remoto (ma può funzionare anche in locale)! Quindi non ho un numero ben preciso di client connessi! Comunque magari il mio prof (che tra l'altro è un qualcosa di disumano, un vero debugger umano) potrebbe avere una valutazione migliore nel vedere che sono stati usati i thread anzichè delle fork!
per remoto intendi che agisca come server , cioe' accetta delle connessioni fa la ricerca in un database e restituisca il valore trovato ?
In genere in questi casi si usano soluzioni multithread , in cui un il th principale è in ascolto, quando riceve una chiamata , questa viene gestita da un th separato mentre il principale si rimette in ascolto
bobbytre è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Toyota usa giochi e premi per spingere i...
HarmonyOS ha raggiunto la soglia di sopr...
Le offerte Amazon più convenienti...
Un gruppo di ladri ha usato Google Maps ...
Apple non si fida di Samsung per la real...
Windows 11: un nuovo driver nativo mette...
Vi hanno regalato buoni Amazon? Intanto ...
Via acari, polvere e sporco da materassi...
Cuffie Beats in super offerta su Amazon,...
Xbox Cloud Gaming arriva su Amazon Fire ...
Un blackout a San Francisco manda in til...
Windows 11 è diventato più...
Apple cambia strategia a causa della cri...
007 First Light: uscita rimandata di due...
Samsung Galaxy A37 e A57: il comparto fo...
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: 23:26.


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