|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Jul 2009
Messaggi: 29
|
C++ e GUI, consigli
Allora raga, vado brevemente a spiegarvi la mia situazione disastrosa.
Senza annoiarvi con inutili dettagli, mi sono iscritto solo a novembre (a causa di vari problemi) alla facoltà di ingegneria informatica, elettronica e delle telecomunicazioni. Ora devo recuperare il programma che hanno fatto nel primo semestre di programmazione orientata agli oggetti in C++. Ho comprato i libri della Deitel e devo dire che sono ottimi. Sono al capitolo 6 del primo libro (fondamenti di programmazione) e sinora non ho riscontrato problemi di sorta, anzi ![]() Il problema nasce cone le GUI. Vi linko il programma del mio professore: http://www.ce.unipr.it/people/tomamic/fondinfo Come potete vedere nella sezione "Programmazione in C++", dopo le varie lezioni sul linguaggio, c'è la sezione "QT: interfacce grafiche" e sinceramente non ci sto capendo una beneamata cippa. Sarà perchè ancora devo imparare bene il C++ (in pratica ho imparato le definizioni di classi, oggetti, file intestazione e sorgente, cicli while, do... while, for, switch, if, if... else e i vari accessori ![]() In tal caso, esiste qualche cartaceo sulle GUI con librerie QT? Devo per forza usare QT Creator ovviamente. Per la cronaca, l'esame è a giugno xD insieme agli altri (programmazione c che inizia a febbraio, analisi matematica, fisica, geometria e vhdl-reti logiche). |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Feb 2005
Città: Lancusi (SA)
Messaggi: 193
|
Ciao,
io ti consiglio questo libro: http://developer.qt.nokia.com/books/...cial_c_qt_book L'ho usato per imparare le QT al fine di sviluppare un software nell'ambito di una tesi e mi sono trovato benissimo, considerando che non sono un esperto di C++ |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Ti adoro, ho scaricato tutte le lezioni dei corsi del tuo prof, avevo proprio bisogno di qualcosa per continuare il mio autodidattismo (si dice così?
![]() |
![]() |
![]() |
![]() |
#4 |
Junior Member
Iscritto dal: Jul 2009
Messaggi: 29
|
Considerando che l'esame è a giugno penso che il mese prossimo (termine che mi sono prefissato per finire i due libri di programmazione C++) comprerò il libro da te consigliato
![]() Ovviamente conosco bene l'inglese, ma è di facile comprensione? Cioè, tutti i codici che scrive per implementare le GUI li spiega bene? ![]() Inoltre, ritornando alla mia domanda precedente, secondo voi al termine dello studio ci capirò qualcosa sulle GUI senza dover acquistare il libro? ![]() Grazie raga ![]() |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3008
|
Adesso fondinfo la fa il timido Tomaiuolo? Il programma mi sembra discretamente più interessante di quello Educal (pace all'anima sua...)/Bertozzi però è estremamente più ampio.
Vedendo le esercitazioni la progressione mi sembra forsennata.
Cercando di fare un paio di similitudini all'inizio hai praticamente carta bianca e sei libero di usare una manciata di semplici mattoncini a mani nude per creare dei modellini. Con le Qt hai a disposizione un'officina piena di strumenti e componenti; quanto hai imparato prima sono materie prime, viti e giunzioni: potrai costruire qualsiasi cosa. Apprezzo molto le Qt, le ho usate un po' e le ho trovate molto ordinate, molto complete e la documentazione ufficiale mi è stata sufficiente per produrre un buon progettino in breve tempo. Per finire ti segnalo un corso che ho apprezzato molto sulla programmazione ad oggetti ed una spolverata di Standard Template Library: OOPCPP0405 - Reggiani Monica. Ti puoi ancora iscrivere in corsi.unipr.it e trovare sia slide che assegnamenti. P.S. Non ci sarà mica anche il Deba a far delle lezioni...?
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#6 |
Junior Member
Iscritto dal: Jul 2009
Messaggi: 29
|
Frequenti l'università di Parma pure tu?
![]() Comunque come ho detto mi sono perso molte lezioni (per dirla in breve mi sono iscritto in ritardo per problemi di salute, sono celiaco xD) e quindi, anche se ora sto procedendo bene (sia con l'apprendimento e con gli esercizi) ho paura di non imparare le QT senza un supporto cartaceo, ma se come hai detto tu una volta appresi per bene i concetti della programmazione ad oggetti il salto per passare alle GUI sarà naturale allora mi tranquillizzo xD anche se credo che, anche per uso personale, il libro consiliatomi qualche post fa lo comprerò xD Grazie mille per i consigli ![]() ![]() Ultima modifica di Metalmino : 19-01-2012 alle 01:15. |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3008
|
Io son vecchio
![]() Il libro che ti ha consigliato kurt_85 è consigliato dagli ex-troll in persona, non mi sembra male. Anche le valutazioni in Amazon tendono a definirlo buono, anche se chi non lo ha apprezzato lo ha solitamente stroncato. Tra l'altro, come puoi leggere nella pagina, puoi scaricare liberamente la prima edizione del giugno 2006 incentrata sulle Qt 4.1, mentre la seconda arriva alle 4.3. In bocca al lupo!
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
|
ma perchè lì a parma si studia il C++ e qua a milano solo il C?? come siamo arretrati
![]()
__________________
CPU: Ryzen 3700x DISSY: CM HYPER EVO 212 RAM: 16gb DDR4 3000Mhz MOBO: MSI b350 tomahawk VGA: MSI Ventus 2X 4060TI 16GB ALI: Cooler Master V550 SSD: Samsung 970 Evo Plus Trattive+:(a) topolino2808(x2), galfum, giap959, sm_morgan, Biduzzo, huangwei, maxmax80, bubbi, dinamite2, PaxNoctis;(v) rubrie, CubeDs, Slater91, Juvanni, FireFox152, gluvocio, giulio81, emahwupgrade, Velvet, semmy83, giocher03 |
![]() |
![]() |
![]() |
#9 |
Junior Member
Iscritto dal: Jul 2009
Messaggi: 29
|
Ops scusami Gimli
![]() ![]() @tecno: un mio amico studia al politecnico di Milano, primo anno e anche lui studia il C e non il C++. Forse lo farete al secondo semestre, non so. Io dal 27 febbraio inizierò programmazione in C mentre come ho già detto al primo abbiamo fatto C++ orientato agli oggetti ![]() |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
|
Quote:
strano che vi insegnino prima la programmazione ad oggetti.... ![]() misteri delle università italiane ![]()
__________________
CPU: Ryzen 3700x DISSY: CM HYPER EVO 212 RAM: 16gb DDR4 3000Mhz MOBO: MSI b350 tomahawk VGA: MSI Ventus 2X 4060TI 16GB ALI: Cooler Master V550 SSD: Samsung 970 Evo Plus Trattive+:(a) topolino2808(x2), galfum, giap959, sm_morgan, Biduzzo, huangwei, maxmax80, bubbi, dinamite2, PaxNoctis;(v) rubrie, CubeDs, Slater91, Juvanni, FireFox152, gluvocio, giulio81, emahwupgrade, Velvet, semmy83, giocher03 |
|
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Quote:
E riguardo al C...credo che lo si studi ancora perchè i prof ritengono utile sviluppare una mentalità adatta alla programmazione procedurale prima di passare agli oggetti, però ora che inizio a capire cos'è una classe, un oggetto e come si relazionano tra di loro mi rendo conto che è tutto un altro livello rispetto alla programmazione procedurale. C'è anche una buona probabilità che alcuni prof insegnino ancora il C e simili perchè son vecchi e non hanno voluto o saputo passare al C++, cioè non hanno voluto o saputo cambiare modo di pensare. Io stesso al 1° anno di Ingegneria Chimica al Politecnico ho fatto C, poi FORTRAN per svolgere calcolo scientifico (giusto per ribadire il concetto che alcuni prof si rifiutano di imparare cose nuove ![]() ![]() |
|
![]() |
![]() |
![]() |
#12 | |
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21570
|
Quote:
![]() ![]() programmazione OO e procedurale sono due cose distinte e non è che una è superiore all'altra in ogni contesto (come c++ non è superiore a java e java non è superiore a c++) semplicemente per ogni ambito di utilizzo esiste un linguaggio più appropriato anche il tanto da te bistrattato fortran è comunque ancora parecchio richiesto sul mercato per la manutenzione e aggiornamento di vecchi sistemi che ancora funzionano in maniera egregia: ergo non essere così pronto a criticare l'operato degli altri quando sei ancora inesperto es. ti assicuro che nel mondo globalmente ci sono più programmatori C/ASM rispetto a programmatori C++/Java, la programmazione non si limita solamente ai PC ![]() ![]() ![]()
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
![]() |
![]() |
![]() |
#13 |
Junior Member
Iscritto dal: Jul 2009
Messaggi: 29
|
Programmazione ad oggetti e procedurale, come ben detto da fazz, sono due cose completamente distinte. Più di qualche volta mi è capitato di ascoltare prof che dicevano che è indifferente studiare prima il C o il C++ in quanto praticamente, a livello logico, hanno in comune solo la lettera "C" presente nel loro nome.
Per alcuni addirittura è meglio imparare prima il C++ in quanto ti indirizza alla programmazione "aziendale" (passatemi il termine) ed in più ingloba in qualche modo il linguaggio del C, quindi risulta più semplice dopo apprendere il C (come avviene alla mia università d'altronde ![]() |
![]() |
![]() |
![]() |
#14 | |
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Quote:
![]() Anzi, a dire il vero sì: i miei prof, che m'hanno fatto usare FORTRAN per far cose che poi ho rifatto col C++, in modo molto più veloce e sicuro, quindi in questo caso so di cosa parlo. Per il resto mi rimetto al vostro giudizio ![]() Una cosa sola: credi che nel mondo ci siano globalmente più programmatori C per motivi validi o solo per inerzia generazionale? O meglio, credi che fra 50 sarà ancora così o nessuno più insegnerà il C, bensì C++ e C# e quindi la situazione si ribalterà? ![]() Ultima modifica di vendettaaaaa : 20-01-2012 alle 11:20. |
|
![]() |
![]() |
![]() |
#15 | ||
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21570
|
Quote:
ad esempio il mio percorso di studi in ambito programmazione è stato un pò contorto con diversi fork corsi paralleli e approfondimenti successivi ma sono passati un pò di anni superiori pascal c++ procedurale VBA asm z80 c++ OO sql asm 8086 php università c++ procedurale scripting matlab asm mips Java G scripting R (OO) lavoro c# java c c++ php sql asm scripting matlab GTK QT Objective-C a seconda dell'ambito applicativo richiesto Quote:
comunque non è questione di inerzia ma bensì di target applicativo con java, .net ecc ecc ci programmi applicativi che girano su computer, il c viene usato per qualsiasi cosa con elettronica embedded : frigoriferi, lavatrici ECU, orologi, telefoni, caricabatterie, termostati, caldaie,automobili, tv, telecomandi, radio, automazione industriale, robot, semafori ecc. ecc.
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 Ultima modifica di !fazz : 20-01-2012 alle 11:28. |
||
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Quote:
|
|
![]() |
![]() |
![]() |
#17 | |
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21570
|
Quote:
comunque a titolo di curiosità posso dirti che il firmware di un embedded generalmente è completamente diverso da un programma tradizionale, un programma embedded generalmente non ha una fine è un loop infinito (proprio un Codice:
while(1) { ... ... ... ... } riguardo al discorso c c++ proprio parlando banalmente c++ è un soprainsieme del c, con il c++ puoi fare tutte le cose che fai con il c senza il minimo problema (e adattando pochissimo il codice) ma se non ti serve usare l'OO c++ e c sono praticamente la stessa cosa, e anche come discorso di efficienza poco cambia, dipende alla fine tutto dal compilatore a disposizione (ovvero se per quella mcu hai il compilatore c usi c ) se vuoi migliorare ancora l'efficienza si usa direttamente asm ma deve essere un progetto per cui l'incremento (minimo) di efficienza rispetto ad ottimi compilatori commerciali (come quello di IAR) e di determinismo temporale (importantissimo per applicazioni RT)che si ottiene ha un valore che compensa l'enorme perdita di tempo necessaria per lo sviluppo a basso livello di un codice efficiente ribadisco: non c'è un linguaggio migliore di un altro, ci sono linguaggi che sono più adatti/utilizzabili per ottenere determinati risultati con un certo sforzo altro esempio c++ è più efficiente di java essendo uno compilato mentre l'altro interpretato ma se devi fare un programma non computazionalmente esoso ne con stringenti requisiti di performance che deve girare ad esempio su win linux e osx usare java ti permette di ottenere il risultato con uno sforzo nettamente più leggero visto che sviluppi e testi un programma e non tre ![]() ![]()
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 Ultima modifica di !fazz : 20-01-2012 alle 13:14. |
|
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: May 2001
Messaggi: 12782
|
C++ sarà pure più efficiente di Java (cosa non sempre vera), ma sicuramente non è affatto efficiente per il programmatore.
C++ non si limita solo ad introdurre l'object oriented al C, ma ad introdurre anche altri concetti (stream, template), il che non è in senso assoluto un male, ma è la sintassi con cui lo fa che IMHO è molto discutibile. Java nasce per l'object oriented, in tal senso è più puro di altri linguaggi (compreso l'eccellente C#), oltre ad avere una sintassi enormemente migliore di C++. @vendetta: dietro il concetto di classe e di oggetto c'è un fondamento matematico, fondamentalmente hai un insieme di cose a cui puoi applicare un insieme più o meno ristretto di operazioni. In tutti i casi in cui hai bisogno di restringere l'utilizzo di una risorsa o applicarvi determinate operazioni prefissate ti può essere comoda una classe, anche se singleton. Comunque faccio presente che è possibile programmare secondo il paradigma ad oggetti anche in puro C. Chiaramente i risultati sono migliori con linguaggi che forniscono nativamente i costrutti per creare classi ed oggetti. |
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Hmm devo studiare ancora un bel po'...
Cmq con oggetto intendo, beh, la definizione: entità che ha degli attributi e può svolgere delle funzioni. Non conosco bene le struct del C, le ho solo viste accennate in giro, ma credo che sia una struct con in più delle funzioni che sono ciò che lo rende unico; forse è molto più di questo. La sintassi non è in effetti facile, ho ancora molta confusione in testa. Ho da poco scoperto che alcuni simboli, per stabilirne la priorità vengono letti da sx a dx in compilazione mentre altri da dx a sx... |
![]() |
![]() |
![]() |
#20 | |
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21570
|
Quote:
a parte la sintassi e la banalità del fatto che una classe è una struttura con delle funzioni al suo interno c'è parecchio altro una struttura serve per racchiudere un insieme di variabili eterogenee in un insieme logico una classe è di più: in una classe le variabili non devono essere mai accessibili direttamente (information hiding): le variabili saranno private e accessibili solo dai metodi della classe e tra i metodi ci saranno i metodi set e get per leggere/ scrivere le variabili è uno dei pilastri dell'OO ma ci arriverai con il tempo prima ti consiglio di impratichirti bene sulle basi della programmazione procedurale in particolare sulla gestione della memoria dinamica che sono fondamentali quando passarai all'OO tra costruttori e distruttori vari @warduck a me la sintassi java non piace, troppo prolissa una scorciatoia per il tunnel carpale ![]() ![]()
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 Ultima modifica di !fazz : 20-01-2012 alle 15:56. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:22.