Newsgroup: it.comp.lang.c
Titolo: miglio libro per cominciare

salve a tutti,
sono iscritto al primo anno di ingegneria informatica e mi servirebbe un
buon libro per cominciare a programmare in c.
che mi consigliate ?

 wrote:

Brian W. Kernighan e Dennis M. Ritchie, Il linguaggio C (Principi di
Programmazione e Manuale di Riferimento), Pearson (Prentice Hall),
Seconda edizione italiana
Chi meglio degli autori del linguaggio?
:-)
ciao,
salvo


wrote:



Io lascerei perdere il KR, che secondo me, perc hi comincia da zero risulta
troppo macchinoso, inoltre non presenta molti esempi. Io mi sono trovato
benissimo con il Deitel & Deitel "C Corso completo di programmazione", che
speiga in maniera piů che esaustiva dai principi della programmazione, sino
ad argomenti piů avanzati come gestione della memoria e strutture dati.
Inoltre č correlato di moltissimi esempi spiegati passo passo e da
altrettanti esercizi e domande di autovalutazione di cui sono reperibili,
sul sito degli autori, le soluzioni.

 troppo macchinoso,
IMHO meglio leggerla, e poi passare ad altro libro :-)
La seconda parte č il "Manuale di riferimento", e se letto bene aiuta
molto ad imparare la sintassi.
Gli esempi servono, ma saper usare certe sottigliezze della sintassi č
fondamentale per affinare il proprio modo di programmare.
E comunque, nella K&R gli esempi "fondamentali" ci sono :)
ciao,
salvo

 IMHO meglio leggerla, e poi passare ad altro libro :-)
Meglio leggere qualcosa di piu' chiaro e poi (se proprio non se ne
puo' fare a meno) passare al K&R.
K&R e' un libro per iniziati e non per iniziandi. E' scritto per
gente che sa gia' programmare e vola su un mucchio di dettagli che
non si puo' pretendere che un neofita conosca gia'.
Una cosa del genere
#include <stdio.h>
/* conta caratteri; seconda versione */
main()
{
   double nc;
   for(nc = 0; getchar() != EOF; ++nc)
      ; // notare i ';' isolato
   printf("%f\n", nc);
}
non e' nemmeno da far sapere che esiste ad un poveraccio che ha
appena preso in mano un libro sul "C" ed e' arrivato solo a pag 18.
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG


università di Palermo con modalità teledidattica (nettuno)

 appena preso in mano un libro sul "C"
non vedo perché. Il ; isolato dice che non serve istruzione, perché il
ciclo for fa già tutto. Quanto a printf() e la sua sinstassi ostica è
vero che un "cout <<" del C++ è molto più semplice da capire, ma il C è
così, sia nella K&R, sia negli altri libri :-)
Del resto, si dovrebbe presumere sempre che "il poveraccio" sappia cos'è
la programmazione, and so on, e se studia sino a pag 14 della K&R
leggerà in chiaro che "c = getchar() !=EOF" equivale a "c = (getchar()
!EOF)" e che vuol dire che si controlla poi sinché un ciclo for non
appuri che il carattere letto non sia EOF, ovvero fine del file.
La sintassi del C non è delle più "semplici", ma neppure così arcana :-)
A mio avviso, ma sempre IMHO, hi :) , sapere cosa pensano Kernighan e
Ritchie, Stroustrup, Larry Wall ecc. dei "loro" linguaggi è importante.
Poi leggendo altri buoni libri si hanno già idee più chiare sulla
struttura di un linguaggio. Altrimenti ci si affida a certi "tutorial"
che "semplificano" tutto, con il rischio di ...non far capire molto :)
printf ("ciao\n");
cout << "ciao\n"; 
print "ciao\n";
-- 
salvo

 ; // notare i ';' isolato
"Un punto e virgola pervaso di energia venuto dallo spazio", per parafrasare
una telecronaca olimpica sentita ieri. :-)
Comunque, non sono tanto d'accordo col tuo giudizio sul K&R. Generazioni di
programmatori hanno imparato il C (e magari anche la stessa programmazione)
proprio da quel libro: saranno mica stati tutti geni venuti dallo spazio!
Il K&R insegna il C così com'è e come deve essere. Non è colpa di nessuno se
il lettore ha scelto (o gli tocca) di imparare proprio questo linguaggio.
Costrutti idiomatici come l'istruzione nulla (cioè quel ";" isolato) o una
funzione con side-effect (quella getchar) usata dentro una condizione sono
cose tipiche del C. Se uno non viene esposto a questo genere di cose fin da
subito, non si formerà mai *quella* mentalità e finirà per scrivere in "C
alla VB".
Concordo che il K&R possa essere affiancato da altri testi, ma non si può
prescindere dalla "fonte" stessa del C. Un programmatore C che non conosca
il K&R è come un Don Camillo che non conosca il Vangelo o un Peppone che non
conosca Il manifesto del partito comunista.
I miei dEuro == .2;
--
Cingar
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/


wrote:

stavo notando come le videolezioni non sono niente male!!
ma la videolezione sul C è possibile visionarla?!

 appena preso in mano un libro sul "C" ed e' arrivato solo a pag 18.
Si, ma quando è arrivato a pagina 50 lo deve sapere. Così come deve 
sapere cosa comporta scrivere (esempio stupido)
if(i==0 || !fseek(stream, i, SEEK_SET))
perchè altrimenti il programma fa davvero cose che il programmatore non 
vuole e non si aspetta.
Non tutti i testi che ho potuto vedere descrivono correttamente come 
vengono valutati gli operatori logici, *sicuramente* nessuna delle 
dispense che mi sono capitate sottomano lo fa, anche se spreca paginate 
di carta in discorsi e esempi. E d'altra parte cosa vuoi imparare del C 
se non questi concetti?

 chiarezza un concetto è quello di usare la terminologia corretta.
Di solito prima si impara a tenersi in piedi, poi si inizia a correre,
poi ci si prepara per le olimpiadi. Consigliare il K&R ad uno che non
ha mai scritto una riga di codice in vita sua e' come suggerire un
training olimpico ad un bambino che a malapena gattona.
A mio giudizio il K&R _NON_ e' un libro per imparare a programmare da
zero.


 zero.
L'obiettivo di un testo è comune, spiegare il C, se il K&R prepara alle 
olimpiadi allora anche gli altri testi lo fanno. Mi pare di capire 
lamenti che il K&R parte da un livello più alto o fa una salita più 
ripida, potrei anche essere d'accordo ma: IMHO la difficoltà del C non è 
imparare la semantica (essenziale) per cui partire da zero è comunque un 
percorso sbagliato. Per carità, si può fare, però chiedersi cosa vuol 
dire booleano, o non sapere come il computer rappresenta i numeri, o non 
conoscere cos'è la memoria e come si accede, non è un viatico per 
imparare a scrivere un programma in C.

 zero.
Io condivido con te e non capisco perche' questo tuo commento abbia
scatenato tanto casino.
Il K&R va benissimo per chi parte da 0 in materia di C, ma non va bene se
uno non hai mai programmato prima, nemmeno in nessun altro linguaggio.
Imparare il C con il K&R e' possibile e generazioni di programmatori lo
hanno fatto. Ma imparare a programmare in C, senza alcuna base di
programmazione, con il K&R e' un modo per complicarsi la vita. E' un libro
fantastico, che ogni programmatore C dovrebbe avere, ma....se uno non sa
nemmeno cosa voglia dire programmare, beh, questo libro puo' a mio avviso
risultare molto ostico.
La cosa migliore, se uno e' a 0 di programmazione,  e' affiancare il K&R ad
altri testi, prendendo un testo che sia molto piu' discorsivo, didattico e
semplice. Il K&R da solo va bene invece ad uno che e' a 0 di C, ma ha gia'
programmato in qualche altro linguaggio.
Tommy

 scatenato tanto casino.
Boh... Quando qualcosa diventa un mito e' difficile fargli una
critica: si rischia di essere impopolari (nella migliore delle
ipotesi). :-)
Non mi sembra di aver affermato che e' un cesso, ho solo detto
che e' ostico, troppo (a mio giudizio) per un neofita della
programmazione.
Il giudizio rimane, anche dopo questo thread. :-)


 programmazione.
Ecco, qui sono d'accordo. In effetti, prima ancora di sapere che esistesse
il K&R, sapevo il Basic, un assemby e un po' il Pascal. Se fossi partito
aprendo il K&R a pagina 1, oggi probabilmente farei il fioraio, non il
programmatore...
Ma, dal tono della domanda originale, m'era parso di capire che Pigreco non
fosse completamente digiuno di programmazione. Non conosco Ingegneria
Informatica ma, se sta attaccando con il C, non dovrebbe aver già fatto il
Pascal?
Mi chiedo insomma se è davvero il K&R a essere ostico, e non piuttosto il C
in sé: un linguaggio tutto fatto di segni di punteggiatura non è il massimo
per un principiante.


 programmato in qualche altro linguaggio.
Ma no... non c'entrano nulla gli altri linguaggi. Il C vuole solo una 
base di fondamenti di informatica, a differenza di *alcuni* (non tutti, 
ovvio) altri linguaggi che ti consentono ampiamente di arrangiarti. Ma 
li vuole il C, non il K&R...
Conoscere "qualche altro linguaggio" non sempre è una base adeguata, 
anzi se ci si riferisce ai soliti linguaggi che si imparano "a secco" 
non lo è mai, ci puoi scommettere. Ci sono altri linguaggi che uno 
acquisisce con sudore sui libri e sangue sulla tastiera ma quelli non 
fanno testo, spesso in quei casi è il C a fare da base.
IMHO il K&R parla il linguaggio giusto per spiegare il C (peraltro in 
un'ottima traduzione italiana), chi vuole studiare il C non vedo perchè 
non possa capirlo. Poi per carità, tutte le strade portano a Roma.

 appena preso in mano un libro sul "C" ed e' arrivato solo a pag 18.
Io a suo tempo mi innamorai del C proprio per ragioni del genere.

 chiarezza un concetto è quello di usare la terminologia corretta.
Anche perche` per tutte le discipline e` richiesta (e per esempio in 
ambito scolastico valutata espressamente) la proprieta` di linguaggio.
Di programmatori che parlano come praticoni non se ne puo` piu`.
Un esempio da un altro campo... suono la chitarra in un gruppo. E i miei 
compagni decisero di fare un pezzo, che io pero` non avevo mai sentito.
Mi spiegarono come era una melodia che dovevo fare...
Bene. Era sempre fuori tempo, dicevano. In realta` era a tempo, ma non 
era cosi` che doveva essere fatto.
Ci si arrabatto` con 'quando arrivi a questa nota, conta uno due tre eh 
e poi suoni... tutti a dar consigli.
Nulla... non veniva come doveva venire.
Poi arrivo` la flautista, e disse. Beh.. devi solo partire in levare. 
Chiaramente poi venne perfetto.
Per dire che il linguaggio tecnico, bisogna capirlo comunque.

 Poi per carità, tutte le strade portano a Roma.
ok
Tommy