Repository 32bit  Forum
Repository 64bit  Wiki

Imparare il C

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

Imparare il C

Messaggioda andy-x » sab lug 03, 2010 16:21

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.
Avatar utente
andy-x
Linux 2.0
Linux 2.0
 
Messaggi: 139
Iscritto il: lun lug 13, 2009 10:19
Slackware: 12.2
Kernel: 2.6.27.7
Desktop: kde

Re: Imparare il C

Messaggioda Blallo » sab lug 03, 2010 16:53

Per imparare Deitel&Deitel
Per approfondire poi Kernighan&Ritchie
Io sono il detective Arsenio Magret, e porto sempre la camicia TATUATA!
Avatar utente
Blallo
Packager
Packager
 
Messaggi: 3212
Iscritto il: ven ott 12, 2007 10:37
Località: Torino / Torremaggiore (FG)
Nome Cognome: Savino Liguori
Slackware: 14.1 / 12.2
Kernel: 3.12.2-ck
Desktop: Openbox

Re: Imparare il C

Messaggioda robbybby » sab lug 03, 2010 17:04

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.
Avatar utente
robbybby
Linux 3.x
Linux 3.x
 
Messaggi: 1172
Iscritto il: sab dic 16, 2006 10:48
Località: Fra Trantor e Terminus
Slackware: 13.1 / 64 bit
Kernel: 3.3.x
Desktop: KDE 4.4.5

Re: Imparare il C

Messaggioda Mario Vanoni » sab lug 03, 2010 17:18

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.
Mario Vanoni
Iper Master
Iper Master
 
Messaggi: 3174
Iscritto il: lun set 03, 2007 20:20
Località: Cuasso al Monte (VA)
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey

Re: Imparare il C

Messaggioda Vito » sab lug 03, 2010 18:05

robert_plant_89 ha scritto:Per imparare Deitel&Deitel
Per approfondire poi Kernighan&Ritchie


Concordo
"Stat rosa pristina nomina, nomina nuda tenemus." [ Umberto Eco - Il nome della rosa]

"Faber est suae quisque fortunae ." [ Appio Claudio Cieco]
Avatar utente
Vito
Staff
Staff
 
Messaggi: 4122
Iscritto il: mar dic 05, 2006 17:28
Località: Augsburg
Nome Cognome: Vito
Slackware: 64 14.0 multilib
Kernel: 3.2.29-xps
Desktop: KDE 4.10.2
Distribuzione: Linux Mint 17

Re: Imparare il C

Messaggioda venerdi_12 » sab lug 03, 2010 20:33

OT
a robert_plant_89

Il tuo prossimo nick sara bonzo_89? ;)
Avatar utente
venerdi_12
Packager
Packager
 
Messaggi: 258
Iscritto il: ven lug 08, 2005 23:00
Località: Lusciano (Ce)
Nome Cognome: Luciano Fattore
Kernel: 3.0
Desktop: kde-4.7.0
Distribuzione: archlinux

Re: Imparare il C

Messaggioda Blallo » sab lug 03, 2010 20:36

Offtopic:
venerdi_12 ha scritto:OT
a robert_plant_89

Il tuo prossimo nick sara bonzo_89? ;)

è una storia lunga :D
Io sono il detective Arsenio Magret, e porto sempre la camicia TATUATA!
Avatar utente
Blallo
Packager
Packager
 
Messaggi: 3212
Iscritto il: ven ott 12, 2007 10:37
Località: Torino / Torremaggiore (FG)
Nome Cognome: Savino Liguori
Slackware: 14.1 / 12.2
Kernel: 3.12.2-ck
Desktop: Openbox

Re: Imparare il C

Messaggioda ulisse89 » sab lug 03, 2010 20:49

robert_plant_89 ha scritto:Offtopic:
venerdi_12 ha scritto:OT
a robert_plant_89

Il tuo prossimo nick sara bonzo_89? ;)

è una storia lunga :D

Offtopic: Io proporrei john_paul_jones_89. Ne sapeva in assoluto più di tutti.
Avatar utente
ulisse89
Packager
Packager
 
Messaggi: 644
Iscritto il: sab gen 17, 2009 12:53
Località: Bologna
Nome Cognome: Riccardo
Slackware: 13.0
Kernel: 2.6.29.6
Desktop: Xfce

Re: Imparare il C

Messaggioda Xunyl » sab lug 03, 2010 21:12

ulisse89 ha scritto:
robert_plant_89 ha scritto:Offtopic:
venerdi_12 ha scritto:OT
a robert_plant_89

Il tuo prossimo nick sara bonzo_89? ;)

è 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
Xunyl
Linux 2.0
Linux 2.0
 
Messaggi: 156
Iscritto il: gio gen 28, 2010 15:57
Slackware: 14 - 64 bit
Kernel: 3.6.2
Desktop: openbox

Re: Imparare il C

Messaggioda Ivanhoe » dom lug 04, 2010 11:33

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
Ivanhoe
Linux 1.0
Linux 1.0
 
Messaggi: 37
Iscritto il: lun ott 22, 2007 10:23
Località: Valmontone (RM)
Slackware: 12.1
Kernel: 2.6.24.5
Desktop: awesome

Re: Imparare il C

Messaggioda andy-x » dom lug 04, 2010 11:34

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
Avatar utente
andy-x
Linux 2.0
Linux 2.0
 
Messaggi: 139
Iscritto il: lun lug 13, 2009 10:19
Slackware: 12.2
Kernel: 2.6.27.7
Desktop: kde

Re: Imparare il C

Messaggioda Gone Berserk » gio dic 16, 2010 10:33

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.
Gone Berserk
Linux 1.0
Linux 1.0
 
Messaggi: 43
Iscritto il: lun giu 19, 2006 8:48
Kernel: 2.6erotti
Desktop: Xfce
Distribuzione: Xubuntu

Re: Imparare il C

Messaggioda robbybby » gio dic 16, 2010 18:27

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? :)
Avatar utente
robbybby
Linux 3.x
Linux 3.x
 
Messaggi: 1172
Iscritto il: sab dic 16, 2006 10:48
Località: Fra Trantor e Terminus
Slackware: 13.1 / 64 bit
Kernel: 3.3.x
Desktop: KDE 4.4.5

Re: Imparare il C

Messaggioda Gone Berserk » gio dic 16, 2010 19:58

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...
Gone Berserk
Linux 1.0
Linux 1.0
 
Messaggi: 43
Iscritto il: lun giu 19, 2006 8:48
Kernel: 2.6erotti
Desktop: Xfce
Distribuzione: Xubuntu

Re: Imparare il C

Messaggioda robbybby » gio dic 16, 2010 20:22

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 :)
Avatar utente
robbybby
Linux 3.x
Linux 3.x
 
Messaggi: 1172
Iscritto il: sab dic 16, 2006 10:48
Località: Fra Trantor e Terminus
Slackware: 13.1 / 64 bit
Kernel: 3.3.x
Desktop: KDE 4.4.5

Prossimo

Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron