Pagina 1 di 2

Imparare il C

Inviato: sab 3 lug 2010, 17:21
da andy-x
Salve a tutti.
Cosa mi consigliate per imparare il C?
Da tecnico elettronico analogico rimango sempre stupefatto da quello che fanno i miei colleghi con il C sui microcontrollori....
Esiste qualche buon testo gia' sperimentato da qualcuno con le basi?
Grazie. Ciao.

Re: Imparare il C

Inviato: sab 3 lug 2010, 17:53
da Blallo
Per imparare Deitel&Deitel
Per approfondire poi Kernighan&Ritchie

Re: Imparare il C

Inviato: sab 3 lug 2010, 18:04
da robbybby
Kernighan & Ritchie: The C Programming Language (non ricordo il titolo italiano).
Però devi già saper programmare, non importa in quale linguaggio. Se sei a zero, allora ti serve prima un testo di base per imparare la programmazione. Diciamo che il K&R assume che tu sappia già cosa sono i puntatori, gli array, le liste, ecc.

Re: Imparare il C

Inviato: sab 3 lug 2010, 18:18
da Mario Vanoni
andy-x ha scritto: Da tecnico elettronico analogico rimango sempre stupefatto da quello che fanno i miei colleghi con il C sui microcontrollori....
Se hai usato anche elettronica digitale TTL, CMOS ecc.,
dovresti conoscere AND/OR e co., pure i Flip-Flop e i contatori ...
La logica dietro e` sempre la stessa.

Re: Imparare il C

Inviato: sab 3 lug 2010, 19:05
da Vito
robert_plant_89 ha scritto:Per imparare Deitel&Deitel
Per approfondire poi Kernighan&Ritchie
Concordo

Re: Imparare il C

Inviato: sab 3 lug 2010, 21:33
da venerdi_12
OT
a robert_plant_89

Il tuo prossimo nick sara bonzo_89? ;)

Re: Imparare il C

Inviato: sab 3 lug 2010, 21:36
da Blallo
Offtopic:
venerdi_12 ha scritto:Offtopic: OT
a robert_plant_89

Il tuo prossimo nick sara bonzo_89? ;)
Offtopic:
è una storia lunga :D

Re: Imparare il C

Inviato: sab 3 lug 2010, 21:49
da ulisse89
robert_plant_89 ha scritto:Offtopic:
venerdi_12 ha scritto:Offtopic: OT
a robert_plant_89

Il tuo prossimo nick sara bonzo_89? ;)
Offtopic:
è una storia lunga :D
Offtopic: Io proporrei john_paul_jones_89. Ne sapeva in assoluto più di tutti.

Re: Imparare il C

Inviato: sab 3 lug 2010, 22:12
da Xunyl
ulisse89 ha scritto:
robert_plant_89 ha scritto:Offtopic:
venerdi_12 ha scritto:Offtopic: OT
a robert_plant_89

Il tuo prossimo nick sara bonzo_89? ;)
Offtopic:
è una storia lunga :D
Offtopic: Io proporrei john_paul_jones_89. Ne sapeva in assoluto più di tutti.
Offtopic: Noto con immenso piacere che alcuni qui se ne intendono di musica :lol:
Scusate l'OT ma era irresistibile :D

Re: Imparare il C

Inviato: dom 4 lug 2010, 12:33
da Ivanhoe
Fino a qualche tempo fa avrei dato gli stessi consigli (Deitel & Deitel, Kernighan & Ritchie), però
adesso ho scoperto un libro favoloso (sono anni che programmo in C, ho un paio
di progetti su Savannah ma ho cominciato da autodidatta):

Kim N. King - Programmazione in C - Apogeo editore

Si comincia dalle basi (NULLA viene dato per noto), ti spiega anche come usare GCC (il compilatore
standard per GNU/Linux) e si arriva a trattare argomenti
utili pure per un programmatore avanzato (internazionalizzazione e UTF8), TUTTO spiegato da Dio.
Sono in tutto 27 capitoli, ma non ti spaventare: quello che ti serve tutti i giorni
è contenuto nei primi 13-14, cioè nelle stesse dimensioni del Kernighan & Ritchie.
Inoltre, una volta letti i primi capitoli non devi per forza procedere in modo consequenziale.
Tieni presente che:
è pieno di sezioni con domande e risposte,
è pieno di esercizi e esempi svolti di programmazione,
è pieno di progetti di programmi da realizzare.
Ma soprattutto non ti lascia dubbi in testa, perché l'autore sembra conoscere tutte le
potenziali trappole del C, per quel che ne penso io davvero un libro stupendo

Re: Imparare il C

Inviato: dom 4 lug 2010, 12:34
da andy-x
Grazie a tutti..... no no non sono a zero di programmazione..... faccio semplici programmi in qbasic :-D e assembler per micro.... ma vorrei imparare qualcosa di piu' performante e indipendente dalla piattaforma....
Grazie, allora cerco i libri indicati... spero ci siano in italiano, mi risparmierei un po' di fatica. :D

Re: Imparare il C

Inviato: gio 16 dic 2010, 10:33
da Gone Berserk
Se vieni dai dialetti Basic, come me, il C ti sembrerà un incubo :)

Tanto per dirne una, non ha il concetto di stringa, e comparare due righe è un'operazione degna della nasa. Per tacere dell'aritmetica dei puntatori, che sta alla base dei migliori drammi informatici dei nostri tempi.

Ti parlo però da fiero programmatore di gestionali... quindi lavorando su dati ad alto livello (indirizzi, numeri di telefono, volumi macroscopici di consumi elettrici, trigonometria). Se devi programmarci circuiti elettronici, le scelte sono Java (che è il linguaggio portabile per antonomasia, per quanto sia peggio di un dito nell'occhio quando porti le stesse lenti da tre giorni) o, effettivamente, C.

C non è un brutto linguaggio quando tutto quello che devi fare è giocare coi numeri e con la memoria. Anzi, potrebbe benissimo essere il linguaggio migliore per questo. Ti consiglierei di NON leggere nessun libro, ma di cominciare a far pratica solitaria davanti a un buon ambiente (il vecchio Turbo C++ della Borland è facilmente emulabile in Dosbox, ha una interfaccia che è ancora oggi un esempio di chiarezza e di efficacia, ed è scaricabile liberamente dal sito). Se un ambiente integrato e già configurato ti fa' schifo, o vuoi effettivamente cominciare a lavorare già in Linux, una scelta comoda e interessante potrebbe essere l'accoppiata Kate+Gcc. Anche in questo caso, eviterei i libri e ci sbatterei il naso di persona. I libri di programmazione sono per lo più noiosi, specie visto che il C non è, a livello di linguaggio, più espressivo del Qbasic. Le strutture di base (selezione, iterazione, ecc) sono identiche. Fossero linguaggi radicalmente diversi (Python, ad esempio, o Ruby), ti servirebbe, ma se sai già programmare, tutto quello che ti serve è tempo per smanettarci su.

Che Legba, dio e patrono di noi programmatori, ti tenga lontano dai memory leaks e dall'aritmetica dei puntatori. Respect.

Re: Imparare il C

Inviato: gio 16 dic 2010, 18:27
da robbybby
Il concetto di stringa in C c'è eccome: mai sentito nominare le stringhe NULL terminated? :)
Il confronto di due stringhe non è affatto complesso, basta un'istruzione:
strcmp(...)
Se vuoi c'è anche il confronto case insensitive:
stricmp(...)

E se questo è nella libreria standard, come fa a non esistere il concetto di stringa? :)

Re: Imparare il C

Inviato: gio 16 dic 2010, 19:58
da Gone Berserk
Non barare :)
Non sono stringhe ma VETTORI di caratteri. Concetti diversi, anche in Java.

E c'è una bella differenza fra

if (strcmp(a,b))...
e
if a = b then

Le stringhe in basic, come in python, come in php, sono davvero tipi elementari ben gestiti :)
Poi non mi fraintendere, mille volte meglio C che Java eh :D O C# o uno qualunque di questi schifi. E' solo che lo C non nacque per gestire le stringhe, e infatti c'è il famoso problema dei bug delle stringhe di formato...

Re: Imparare il C

Inviato: gio 16 dic 2010, 20:22
da robbybby
Gone Berserk ha scritto:Non barare :)
Allora passiamo al prossimo linguaggio, con l'operatore di post incremento, e otteniamo il C++. E qui le stringhe ci sono belle e pure, senza barare :)