Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Sono molte le novità che ASUS ha scelto di presentare al CES 2026 di Las Vegas, partendo da una gamma di soluzioni NUC con varie opzioni di processore passando sino agli schermi gaming con tecnologia OLED. Il tutto senza dimenticare le periferiche di input della gamma ROG e le soluzioni legate alla connettività domestica
Le novità ASUS per il 2026 nel settore dei PC desktop
Le novità ASUS per il 2026 nel settore dei PC desktop
Molte le novità anticipate da ASUS per il 2026 al CES di Las Vegas: da schede madri per processori AMD Ryzen top di gamma a chassis e ventole, passando per i kit di raffreddamento all in one integrati sino a una nuova scheda video GeForce RTX 5090. In sottofondo il tema dell'intelligenza artificiale con una workstation molto potente per installazioni non in datacenter
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: 12919
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: 12919
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: 12919
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


Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Le novità MSI del 2026 per i videogiocatori Le novità MSI del 2026 per i videogiocato...
I nuovi schermi QD-OLED di quinta generazione di MSI, per i gamers I nuovi schermi QD-OLED di quinta generazione di...
La Xiaomi SU7 Ultra distrugge una Ferrar...
Jensen Huang: la narrativa apocalittica ...
Un polmone umano su chip riproduce respi...
TSMC chiude il 2025 con ricavi record: o...
Il tasso di adozione di iOS 26 è ...
Inserire link in un documento Word diven...
Auto svuotamento, senza sacchetti: ECOVA...
Torna a soli 499€ Dreame L40 Ultra AE, 1...
Il nuovo Snapdragon 8 Elite Gen 6 sar&ag...
Nintendo Switch 2: risultati sotto le at...
Weekend con tante sorprese su Amazon: to...
HONOR non si ferma più: il 2025 &...
Speciale best seller: EUREKA J15 Evo Ult...
Roborock Q10 X5+ da 10.000 Pa a 199€ &eg...
E-mail reset password di Instagram: la c...
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: 09:26.


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