Imparare il C
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.
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.
- andy-x
- Linux 1.x
- Messaggi: 139
- Iscritto il: lun 13 lug 2009, 11:19
- Slackware: 12.2
- Kernel: 2.6.27.7
- Desktop: kde
Imparare il C
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.
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.
- Blallo
- Packager
- Messaggi: 3302
- Iscritto il: ven 12 ott 2007, 11:37
- Nome Cognome: Savino Liguori
- Slackware: 14.2 / 12.2
- Kernel: 4.4.14-smp
- Desktop: DWM
- Località: Torino / Torremaggiore (FG)
- Contatta:
Re: Imparare il C
Per imparare Deitel&Deitel
Per approfondire poi Kernighan&Ritchie
Per approfondire poi Kernighan&Ritchie
Github: https://github.com/8lall0
- robbybby
- Linux 4.x
- Messaggi: 1223
- Iscritto il: sab 16 dic 2006, 10:48
- Slackware: 13.1 / 64 bit
- Kernel: 3.3.x
- Desktop: KDE 4.4.5
- Località: Fra Trantor e Terminus
Re: Imparare il C
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.
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.
-
- Iper Master
- Messaggi: 3174
- Iscritto il: lun 3 set 2007, 21:20
- Nome Cognome: Mario Vanoni
- Slackware: 12.2
- Kernel: 3.0.4 statico
- Desktop: fluxbox/seamonkey
- Località: Cuasso al Monte (VA)
Re: Imparare il C
Se hai usato anche elettronica digitale TTL, CMOS ecc.,andy-x ha scritto: Da tecnico elettronico analogico rimango sempre stupefatto da quello che fanno i miei colleghi con il C sui microcontrollori....
dovresti conoscere AND/OR e co., pure i Flip-Flop e i contatori ...
La logica dietro e` sempre la stessa.
- Vito
- Staff
- Messaggi: 4182
- Iscritto il: mar 5 dic 2006, 17:28
- Nome Cognome: Vito
- Desktop: MacOS
- Località: Monaco (DE)
- Contatta:
Re: Imparare il C
Concordorobert_plant_89 ha scritto:Per imparare Deitel&Deitel
Per approfondire poi Kernighan&Ritchie
"Stat rosa pristina nomina, nomina nuda tenemus." [ Umberto Eco - Il nome della rosa]
"Faber est suae quisque fortunae ." [ Appio Claudio Cieco]
"Faber est suae quisque fortunae ." [ Appio Claudio Cieco]
- venerdi_12
- Packager
- Messaggi: 258
- Iscritto il: sab 9 lug 2005, 0:00
- Nome Cognome: Luciano Fattore
- Kernel: 3.0
- Desktop: kde-4.7.0
- Distribuzione: archlinux
- Località: Lusciano (Ce)
Re: Imparare il C
OT
a robert_plant_89
Il tuo prossimo nick sara bonzo_89?
a robert_plant_89
Il tuo prossimo nick sara bonzo_89?
- Blallo
- Packager
- Messaggi: 3302
- Iscritto il: ven 12 ott 2007, 11:37
- Nome Cognome: Savino Liguori
- Slackware: 14.2 / 12.2
- Kernel: 4.4.14-smp
- Desktop: DWM
- Località: Torino / Torremaggiore (FG)
- Contatta:
Re: Imparare il C
Offtopic:
è una storia lunga
Offtopic:venerdi_12 ha scritto:Offtopic: OT
a robert_plant_89
Il tuo prossimo nick sara bonzo_89?
è una storia lunga
Github: https://github.com/8lall0
- ulisse89
- Packager
- Messaggi: 643
- Iscritto il: sab 17 gen 2009, 12:53
- Nome Cognome: Riccardo
- Slackware: 13.0
- Kernel: 2.6.29.6
- Desktop: Xfce
- Località: Bologna
Re: Imparare il C
Offtopic: Io proporrei john_paul_jones_89. Ne sapeva in assoluto più di tutti.robert_plant_89 ha scritto:Offtopic:Offtopic:venerdi_12 ha scritto:Offtopic: OT
a robert_plant_89
Il tuo prossimo nick sara bonzo_89?
è una storia lunga
- Xunyl
- Linux 1.x
- Messaggi: 170
- Iscritto il: gio 28 gen 2010, 15:57
- Slackware: current64
- Kernel: 5.4.54
- Desktop: Sway
Re: Imparare il C
Offtopic: Noto con immenso piacere che alcuni qui se ne intendono di musicaulisse89 ha scritto:Offtopic: Io proporrei john_paul_jones_89. Ne sapeva in assoluto più di tutti.robert_plant_89 ha scritto:Offtopic:Offtopic:venerdi_12 ha scritto:Offtopic: OT
a robert_plant_89
Il tuo prossimo nick sara bonzo_89?
è una storia lunga
Scusate l'OT ma era irresistibile
-
- Linux 0.x
- Messaggi: 37
- Iscritto il: lun 22 ott 2007, 11:23
- Slackware: 12.1
- Kernel: 2.6.24.5
- Desktop: awesome
- Località: Valmontone (RM)
Re: Imparare il C
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
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
- andy-x
- Linux 1.x
- Messaggi: 139
- Iscritto il: lun 13 lug 2009, 11:19
- Slackware: 12.2
- Kernel: 2.6.27.7
- Desktop: kde
Re: Imparare il C
Grazie a tutti..... no no non sono a zero di programmazione..... faccio semplici programmi in qbasic 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.
Grazie, allora cerco i libri indicati... spero ci siano in italiano, mi risparmierei un po' di fatica.
-
- Linux 0.x
- Messaggi: 43
- Iscritto il: lun 19 giu 2006, 9:48
- Kernel: 2.6erotti
- Desktop: Xfce
- Distribuzione: Xubuntu
Re: Imparare il C
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.
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.
- robbybby
- Linux 4.x
- Messaggi: 1223
- Iscritto il: sab 16 dic 2006, 10:48
- Slackware: 13.1 / 64 bit
- Kernel: 3.3.x
- Desktop: KDE 4.4.5
- Località: Fra Trantor e Terminus
Re: Imparare il C
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?
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?
-
- Linux 0.x
- Messaggi: 43
- Iscritto il: lun 19 giu 2006, 9:48
- Kernel: 2.6erotti
- Desktop: Xfce
- Distribuzione: Xubuntu
Re: Imparare il C
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 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...
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 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...
- robbybby
- Linux 4.x
- Messaggi: 1223
- Iscritto il: sab 16 dic 2006, 10:48
- Slackware: 13.1 / 64 bit
- Kernel: 3.3.x
- Desktop: KDE 4.4.5
- Località: Fra Trantor e Terminus
Re: Imparare il C
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 barareGone Berserk ha scritto:Non barare