PDA

View Full Version : c++


R U F Y
15-03-2014, 12:29
Salve a tutti.
Sono nuovo del forum ma mi avete impressionato subito con la quantità di informazioni che avete!! Io cercavo un forum specifico per il software C++ e mi sono ritrovato in un forum veramente attrezzato complimenti :)
Detto questo volevo partire dalla premessa di essere un neofita per programmi e software e che studiando ingegneria elettronica credo che in futuro mi troverò a dover sapere usare C++. Le mie domande sono principalmente 3
1) E' possibile scaricare C++ gratuitamente??
2) Se si quale posso scaricare? Perchè ho visto anche nel vostro forum e ci sono dei link del 2010 (non so forse sono un po' vecchiotti?) e su internet trovo un sacco di cose ma non so quale è consigliabile per me (ripeto sono un neofita ho usato java per un esame ma non ricordo quasi nulla)
3) Un buon libro in PDF da cui studiare??
Grazie in anticipo :D :D

emmedi
15-03-2014, 15:48
Discussione spostata di sezione.

Benvenuto ;)

Freaxxx
15-03-2014, 16:11
Siamo a C++11 e tra poco dovrebbero ratificare C++14, praticamente trovi compilatori per tutte le piattaforme, una piccola nota per Windows che non offre una buona soluzione sia per C che per C++, Visual Studio è piuttosto mediocre quanto a supporto per questi 2 linguaggi, quindi è meglio evitarlo.

I 2 compilatori più popolari al momento gcc e clang ( basato su llvm ) sono entrambi gratuiti ed anche open source, quindi puoi anche compilarli da sorgente.

Per quanto riguarda il pdf, il documento migliore è sempre lo standard ISO, ma sono più di 1000 pagine ( dipende anche dalla versione di C++ che vuoi ) e non è esattamente una lettura piacevole il più delle volte .

Il creatore del linguaggio, Bjarne Stroustrup, è anche un autore di libri che parlano del linguaggio, potresti partire da li.

Per quanto riguarda il compilatore dipende anche dalla piattaforma sulla quali sviluppi, i tool migliori li hai sotto linux.

R U F Y
15-03-2014, 16:44
Perfetto!! Sto installando GCC per windows 8 (è ciò di cui dispongo) e poi inizierò a leggere C++ PROGRAMMING LANGUAGE.
Grazie della risposta!!:D :D

Freaxxx
15-03-2014, 16:54
Perfetto!! Sto installando GCC per windows 8 (è ciò di cui dispongo) e poi inizierò a leggere C++ PROGRAMMING LANGUAGE.
Grazie della risposta!!:D :D

gcc per Windows 8 ? Intendi mingw ? da dove ?

Anche se comunque non dovrebbe essere così importante sappi che ci sono almeno 2 porting di GCC per Windows ( perché GCC per Windows in realtà non esiste ufficialmente ) e si chiamano entrambi mingw, esiste mingw a 32 e 64 bit ( che sono 2 progetti diversi tra di loro ma sempre porting di gcc ).

Installa QtCreator http://www.hwupgrade.it/forum/showpost.php?p=40862182&postcount=4 , sotto Windows usa MinGW di default ed è molto intuitivo, poi dipende anche da te, se preferisci programmare da linea di comando vai benissimo con il solo compilatore, ma sotto windows la shell non è esattamente piena di funzionalità e programmi come sotto linux .

lorenzo001
15-03-2014, 16:57
Oppure il Visual Studio Express di Microsoft

http://www.visualstudio.com/downloads/download-visual-studio-vs#d-express-windows-desktop

pabloski
15-03-2014, 17:24
3) Un buon libro in PDF da cui studiare??


Dal tipo di domande, mi pare di capire che sei praticamente agli inizi. Ragion per cui inizia dal C, visto che C++ ne è un superset.

Io consiglio di partire da qui

http://www.html.it/guide/guida-c/
http://www.html.it/guide/guida-c2/

molto basilari e maccheroniche, ma almeno eviti di doverti sorbire un mattone e concludere di non averci capito niente

R U F Y
15-03-2014, 18:46
gcc per Windows 8 ? Intendi mingw ? da dove ?

Anche se comunque non dovrebbe essere così importante sappi che ci sono almeno 2 porting di GCC per Windows ( perché GCC per Windows in realtà non esiste ufficialmente ) e si chiamano entrambi mingw, esiste mingw a 32 e 64 bit ( che sono 2 progetti diversi tra di loro ma sempre porting di gcc ).

Installa QtCreator http://www.hwupgrade.it/forum/showpost.php?p=40862182&postcount=4 , sotto Windows usa MinGW di default ed è molto intuitivo, poi dipende anche da te, se preferisci programmare da linea di comando vai benissimo con il solo compilatore, ma sotto windows la shell non è esattamente piena di funzionalità e programmi come sotto linux .

Si ho provato a scaricare MinGW ma non riesco ad installarlo perchè mi apre una schermata con tutti package e non so quale cliccare ed installare.
Ora provo a scaricare quello che mi hai messo nel link e cmq grazie a tutti delle risposte :D

pabloski
15-03-2014, 18:54
Si ho provato a scaricare MinGW ma non riesco ad installarlo perchè mi apre una schermata con tutti package e non so quale cliccare ed installare.
Ora provo a scaricare quello che mi hai messo nel link e cmq grazie a tutti delle risposte :D

Scaricati QtCreator o Codeblocks, perchè entrambi installano automaticamente MinGW.

cdimauro
15-03-2014, 19:14
Si ho provato a scaricare MinGW ma non riesco ad installarlo perchè mi apre una schermata con tutti package e non so quale cliccare ed installare.
Ora provo a scaricare quello che mi hai messo nel link e cmq grazie a tutti delle risposte :D
Ma usa Visual Studio, che è il meglio per Windows, e eviti tutti questi problemi.

R U F Y
15-03-2014, 19:20
Ho letto ora il messaggio, ho scaricato QTcreator penso vada bene uguale o lo disinstallo per Visual Studio??

pabloski
15-03-2014, 20:11
Ho letto ora il messaggio, ho scaricato QTcreator penso vada bene uguale o lo disinstallo per Visual Studio??

Dipende da quali sono i tuoi obiettivi. Considera che QtCreator ti permette di sviluppare applicazioni che usano il framework QT, molto famoso e multipiattaforma. Non ti servirà certamente per apprendere il C++, ma in un'ottica futura potrebbe darti tante soddisfazioni.

R U F Y
15-03-2014, 21:07
Dipende da quali sono i tuoi obiettivi. Considera che QtCreator ti permette di sviluppare applicazioni che usano il framework QT, molto famoso e multipiattaforma. Non ti servirà certamente per apprendere il C++, ma in un'ottica futura potrebbe darti tante soddisfazioni.

Il mio obiettivo è quello di apprendere l' utilizzo di C++ che so essere richiesto da molte aziende..

cdimauro
15-03-2014, 21:08
Ho letto ora il messaggio, ho scaricato QTcreator penso vada bene uguale o lo disinstallo per Visual Studio??
Puoi usare le QT e QTCreator anche con Visual Studio, che è un IDE d'eccellenza. Non complicarti inutilmente la vita.

R U F Y
15-03-2014, 21:42
Puoi usare le QT e QTCreator anche con Visual Studio, che è un IDE d'eccellenza. Non complicarti inutilmente la vita.

Ok ho scaricato visual studio :D ora tocca solo avere un po' di pazienza ed imparare ad usarlo

mone.java
16-03-2014, 12:21
Il mio obiettivo è quello di apprendere l' utilizzo di C++ che so essere richiesto da molte aziende..

A dire il vero il C++ non è molto chiesto, se cerchi qualcosa richiesto dalle aziende ti conviene imparare Java, C#, PHP, HTML, CSS, Javascript.. Almeno per quanto riguarda il panorama italiano... C e C++ non sono molto richiesti e comunque le aziende che cercano programmatori C e C++ in genere assumono gente molto esperta in quanto sono linguaggi molto complessi.

con PHP, HTML, CSS, Javascript potresti trovarti ad essere "appetibile" dopo meno tempo rispetto al C e C++...

Java e C# richiedono magari un po più di tempo...

Comunque, a parte tutto, ti conviene prima imparare a programmare... dai un occhio a questa recente discussione per farti un idea: http://www.hwupgrade.it/forum/showthread.php?t=2637065

Daniels118
17-03-2014, 13:42
A dire il vero il C++ non è molto chiesto, se cerchi qualcosa richiesto dalle aziende ti conviene imparare Java, C#, PHP, HTML, CSS, Javascript.. Almeno per quanto riguarda il panorama italiano... C e C++ non sono molto richiesti e comunque le aziende che cercano programmatori C e C++ in genere assumono gente molto esperta in quanto sono linguaggi molto complessi.

con PHP, HTML, CSS, Javascript potresti trovarti ad essere "appetibile" dopo meno tempo rispetto al C e C++...

Java e C# richiedono magari un po più di tempo...

Comunque, a parte tutto, ti conviene prima imparare a programmare... dai un occhio a questa recente discussione per farti un idea: http://www.hwupgrade.it/forum/showthread.php?t=2637065
Fortunatamente il mondo della programmazione non finisce con il web e, se vogliamo dirla tutta, non comincia nemmeno da lì.
Se ha fatto un esame in java, anche se dice di non ricordare nulla, penso che possa fare tranquillamente a meno dei fondamenti.
_________

Dal momento che studi elettronica secondo me ti sarebbe più utile lo studio del C, che ad oggi è il linguaggio più utilizzato per la programmazione dei microcontroller.

mone.java
17-03-2014, 13:49
Fortunatamente il mondo della programmazione non finisce con il web e, se vogliamo dirla tutta, non comincia nemmeno da lì.
Se ha fatto un esame in java, anche se dice di non ricordare nulla, penso che possa fare tranquillamente a meno dei fondamenti.
_________

Dal momento che studi elettronica secondo me ti sarebbe più utile lo studio del C, che ad oggi è il linguaggio più utilizzato per la programmazione dei microcontroller.

Mi sono reso conto di non aver letto bene il primo post ma avevo preso per buono solo quello che ho quotato..

Tommo
25-03-2014, 13:33
Visual Studio è piuttosto mediocre quanto a supporto per questi 2 linguaggi, quindi è meglio evitarlo.

[citation needed]

Ok, visual studio e' inferiore a clang perche' non supporta ne' supportera' mai C99, e perche' ancora manca di un paio di feature (IMO non indispensabili) di C++11.
Per il resto ci sono pro e contro, ad esempio l'autocomplete (specie con VAX) e' anni luce avanti e non parliamo nemmeno del debugger di visual studio vs gdb/lldb visto che non c'e' storia.
A me non serve ne' C99 ne' quelle feature di C++11, in compenso risparmio ore con un debugger che funziona...
Affermare che qualcosa usato da decine di migliaia di programmatori "E' meglio evitarlo" in genere, sorprendentemente, e' sintomo che non si sa bene di che si parla.

PS: ma perche' in OGNI thread deve apparire qualcuno che spala FUD su Visual Studio, ma Microsoft v'ha offeso la madre? :asd:

Daniels118
25-03-2014, 13:48
[..]
PS: ma perche' in OGNI thread deve apparire qualcuno che spala FUD su Visual Studio, ma Microsoft v'ha offeso la madre? :asd:
Sei appena diventato il mio idolo! :D

ingframin
25-03-2014, 13:50
Salve a tutti.
Sono nuovo del forum ma mi avete impressionato subito con la quantità di informazioni che avete!! Io cercavo un forum specifico per il software C++ e mi sono ritrovato in un forum veramente attrezzato complimenti :)
Detto questo volevo partire dalla premessa di essere un neofita per programmi e software e che studiando ingegneria elettronica credo che in futuro mi troverò a dover sapere usare C++. Le mie domande sono principalmente 3
1) E' possibile scaricare C++ gratuitamente??
2) Se si quale posso scaricare? Perchè ho visto anche nel vostro forum e ci sono dei link del 2010 (non so forse sono un po' vecchiotti?) e su internet trovo un sacco di cose ma non so quale è consigliabile per me (ripeto sono un neofita ho usato java per un esame ma non ricordo quasi nulla)
3) Un buon libro in PDF da cui studiare??
Grazie in anticipo :D :D

Aspetta un attimo, a che anno sei?
Ti consiglio di fare gli esami di programmazione prima di imbarcarti nel C++.

Da elettronico ti consiglio di studiare bene C (liscio) e Python (e Matlab) che sono linguaggi che fanno abbastanza comodo.
C per i microcontrollori, Python per automatizzare il lab senza quella schifezza di Labview e Matlab fa super comodo per mille cose...

Se poi finirai a fare il progettista di chip digitali i linguaggi da sapere sono Perl e TCL, per analogica Skill (surrogato di Lisp) che si usa per programmare Cadence Allegro, Virtuoso e tutti gli altri tool di CAD.

Con questa premessa:
http://www.cplusplus.com/ questo e' un buon punto di partenza per C++.

Come compilatore/IDE io ho provato sia CodeBlocks sia Visual studio sia Eclipse+mingw.
Quello che a me piace di piu' e' CodeBlocks ma e' gusto personale e non ho mai fatto progetti grossi.

Pure Visual studio 2012 mi e' parso fatto bene, adesso c'e' pure il 2013 in giro.
Provali un po e poi decidi tu.

Riguardo Qt creator... Preferisco scrivere le GUI in Python con Pyside che e' un wrapper di Qt. Molti meno guai che con C++ ;)

sottovento
25-03-2014, 14:43
<cut>
C per i microcontrollori, Python per automatizzare il lab senza quella schifezza di Labview e Matlab fa super comodo per mille cose...
<cut>



Curiosita': perche' non ti piace Labview? Cos'e' che non va? A me sembra carino...

ingframin
25-03-2014, 16:36
Curiosita': perche' non ti piace Labview? Cos'e' che non va? A me sembra carino...

Labview e' fantastico per interfacciarsi con gli strumenti ma e' un incubo per altre cose.
Fare loop, scrivere datalog, salvare immagini, ecc...
Quando uno ha in mano una procedura di test viene molto piu' naturale scriver uno script che la implementa che non collegare i filini a destra e sinistra.
Quando i VI diventano complessi sono difficili da gestire e la velocita' di esecuzione non e' fantastica.

Nella mia esperienza di test engineer mi sono trovato molto bene combinando Python e C.
Hanno tutti i tool di cui c'e' bisogno e il risultato che ho ottenuto e' stato fantastico (laboratorio automatizzato in 1 solo mese!).

Labview mi sembra fatto a posta per cose piu' semplici:
1) monitorare 1 solo strumento
2) didattica
3) dare la possibilita' ai non programmatori di scrivere test automatici

Se uno sa programmare secondo me la combinazione Python+C e' imbattibile (al momento)...

Che poi Python... E' una "sparata" a mio gusto personale, tutte le librerie visa, ivi-c e daqmx hanno dei wrapper per .net supportati da National Instruments e non e' assolutamente difficile scrivere dei wrapper per Java o altri linguaggi.

C'e' anche chi usa matlab in laboratorio... A me non piace, lo trovo molto piu' adatto ad altri task (i tool di controllo e di trattamento dei segnali sono fantastici!) ma de gustibus non disputandum est...

sottovento
25-03-2014, 16:46
Labview e' fantastico per interfacciarsi con gli strumenti ma e' un incubo per altre cose.
Fare loop, scrivere datalog, salvare immagini, ecc...
Quando uno ha in mano una procedura di test viene molto piu' naturale scriver uno script che la implementa che non collegare i filini a destra e sinistra.
Quando i VI diventano complessi sono difficili da gestire e la velocita' di esecuzione non e' fantastica.

Nella mia esperienza di test engineer mi sono trovato molto bene combinando Python e C.
Hanno tutti i tool di cui c'e' bisogno e il risultato che ho ottenuto e' stato fantastico (laboratorio automatizzato in 1 solo mese!).

Labview mi sembra fatto a posta per cose piu' semplici:
1) monitorare 1 solo strumento
2) didattica
3) dare la possibilita' ai non programmatori di scrivere test automatici

Se uno sa programmare secondo me la combinazione Python+C e' imbattibile (al momento)...

Che poi Python... E' una "sparata" a mio gusto personale, tutte le librerie visa, ivi-c e daqmx hanno dei wrapper per .net supportati da National Instruments e non e' assolutamente difficile scrivere dei wrapper per Java o altri linguaggi.

C'e' anche chi usa matlab in laboratorio... A me non piace, lo trovo molto piu' adatto ad altri task (i tool di controllo e di trattamento dei segnali sono fantastici!) ma de gustibus non disputandum est...

Ok, sempre per curiosita': quale supporto ti da' python per il real time?

ingframin
26-03-2014, 09:47
Ok, sempre per curiosita': quale supporto ti da' python per il real time?

Questa domanda non l'ho capita...
A fare le misure sono gli strumenti, il software che gira sugli strumenti ha il supporto per il real time.
Il sistema operativo sui normali pc da laboratorio e' un normalissimo windows non c'e' supporto per il real time e francamente non ce n'e' bisogno, alla fine il pc si limita a collezionare le misure via GPIB o ethernet e a pilotare gli strumenti.

Non ho installato python sull'oscilloscopio se e' quello che vuoi sapere :D

Per pilotare le schede della national instruments (DAQ per intenderci) python va troppo piano, le chiamate a funzione impiegano parecchi millisecondi...
La soluzione che ho adottato e' stata scrivere delle funzioni in C per pilotare gli strumenti e creare una dll da richiamare in python con C types.
In pratica i miei script mandano tutti i parametri necessari alla funzione scritta in C la quale esegue tutto quello che c'e' da fare e restituisce una struttura coi risultati dentro che posso tranquillamente spacchettare col pacchetto struct di python.

Se proprio uno deve fare qualcosa di veramente realtime e molto velocemente conviene di piu' montare un FPGA o un microcontrollore sulla scheda di test ma per ora a me non e' mai capitato di doverlo fare, al massimo ho sempre risolto con soluzioni analogiche e non digitali.

sottovento
26-03-2014, 10:10
Questa domanda non l'ho capita...
A fare le misure sono gli strumenti, il software che gira sugli strumenti ha il supporto per il real time.

Non sempre. Puoi fare acquisizioni e/o generazioni di segnali anche da PC. In tal caso, LV ti da' un certo supporto per il real time, con modalita' (e costi) diverse. Python/tutto il resto, ovviamente no.



Il sistema operativo sui normali pc da laboratorio e' un normalissimo windows non c'e' supporto per il real time e francamente non ce n'e' bisogno, alla fine il pc si limita a collezionare le misure via GPIB o ethernet e a pilotare gli strumenti.

In realta' esiste la possibilita' di far girare un processo "real-time" anche su windows, vale a dire un run-to-completion con preemption basato solo su priorita' ed evitando il time sharing.


Non ho installato python sull'oscilloscopio se e' quello che vuoi sapere :D

Mi sembra un'ottima cosa :D



Se proprio uno deve fare qualcosa di veramente realtime e molto velocemente conviene di piu' montare un FPGA o un microcontrollore sulla scheda di test ma per ora a me non e' mai capitato di doverlo fare, al massimo ho sempre risolto con soluzioni analogiche e non digitali.
Sempre se non ti occorrono cose come, ad esempio, il file system.. :D

ingframin
26-03-2014, 16:05
In realta' esiste la possibilita' di far girare un processo "real-time" anche su windows, vale a dire un run-to-completion con preemption basato solo su priorita' ed evitando il time sharing.



Questo e' bello!
Mi sai indicare come documentarmi su questo?
Magari in PM o posso aprire un'atro thread, mi pare una dritta piuttosto interessante :)

EDIT:
Ehy! Cambiare la priorita' di un processo a real time e' fortemente sconsigliato da Microsoft e comunque non potra' mai girare in hard real time.
Per le feature real time Labview ha bisogno di hardware dedicato http://www.ni.com/labview/realtime/i/
Anche la versione real time di linux non mette a disposizione le feature real time in user space ma solo in kernel mode...
Alla fine se vuoi qualcosa di veramente hard real time serve un microcontrollore o un FPGA.