Newsgroup: it.comp.lang.c
Titolo: Quale manuale di C???

Ciao a tutti
Sono in possesso di "C Manuale di programmazione -P.Darnell P.Margolis"
edito dalla Mc Graw Hill edizione '97 (Versione 2)
E' un buon manuale o mi conviene cambiarlo al più presto??
Avevo pensato, sempre della McGraw a "-Bellini Guidi- Guida al linguaggio C"
Versione '99 è meglio del mio??
aspetto consigli
Del C non so niente mi serve per scopo didattica ma vorrei portare avanti la
programmazione.

programmazione.
Se decidi di acquistarlo fai un'ottima cosa, soprattutto perché più
che un manuale (come il Kernighan - Ritchie, "Linguaggio C - ansi C"),
è un corso di programmazione, ideale per chi inizia, e sopratutto che
dedica gli ultimi capitoli alle strutture dati (cosa che il K&R non
fa).
Unico neo che non ti elenca tutte le funzioni disponibili nelle
librerie standard, ma ne presenta solo alcune, anche se le principali.
NOTA: qualunque cosa tu decida di fare, NON comprare assolutamente
libri di Schildt (vedi "Linguaggio C++", edito dalla McGraw-Hill),
potresti pentirtene per il resto della tua vita ...
Paolo.

 Paolo.
Scusa, perchè ce l'hai con Schildt? Io sto usandi il suo "C: the complete
reference" e mi sembra un buonissimo libro: cosa gli manca?
Ciao,Fabio.

 wrote in message
news:7u4f4l$t5h$1...@pisanino.unipi.it...

Tengo accanto a me "C: the complete reference" come un buon cristiano tiene
la bibbia,ma dopo quello che ho letto sul ng mi sta venendo il tremendo
dubbio che mi abbia fatto imparare un sacco di str*****e.Come posso
verificare se è cosi?
Fabio.

verificare se è cosi?
Attenzione, la bibbia del buon programmatore è il Kernighan&Ritchie,
Lo Shildt è scritto dal demonio per tentarti ;)
--------------------------------------------------------
* Andrea Laforgia        (
andrea_...@bigfoot.com
) *
--------------------------------------------------------

Ciao,Fabio.
Allora, io non conosco ancora bene il C, quindi probabilmente non sono
ancora in grado di dare un giudizio affidabile
Il C non è un linguaggio fortemente tipato come il pascal. In C anche
se un programma si compila e il mio algoritmo è perfetto, il programma
compilato potrebbe crearmi un core di svariati mega appena lanciato
(cosa molto difficile in Pascal standard) !
Cosa centra questo?
Semplice: in Pascal ci sono pochi midi per ottenere uno stesso
risultato e se il compilatore li accetta il programma funziona
perfettamente.
In C ci sono una miriade di modi per ottenere la stessa cosa e alcuni
se pur funzionano, non danno affatto garanzia di affidabilità.
Esempio: io utilizzavo fflush(stdin) per ripulire il buffer della
tastiera, cosa sbagliata perché se pur abbia sempre funzionato, lo
standard non mi garanrisce il suo comportamente su stdin.
Se un autore commette errori, anche apparentemente insignificanti, in
un linguaggio di basso livello come il C, tu hai dei seri problemi. E'
un po' come se seguissi una manuale di assembly e ci fossero piccole
imprecisioni: ti lascio immaginare il risultato .......
Se un autore non è più che affidabile rischi di incorrere in questi
problemi.
Entrando nel caso specifico di Shildt:
1) leggiti i msg di altre persone (per esempio dovrebbe ancora esserci
un msg di Andrea Laforgia a proposito)
2) cerca in rete alcuni approfondimenti e vedrai molti pareri concordi
al mio
Se non ti ho convinto manda un msg a qualcun altro del ng, per esempio
Andrea Laforgia: probabilmente loro saranno più convincenti visto che
hanno molta più esperienza.
Paolo

 verificare se è cosi?
Prova a guardare su: 
http://www.lysator.liu.se/c/schildt.html
Io non ho il libro, ma dopo aver letto quel sito, dubito che lo prenderei in
considerazione...
--
Alessandro Monti

Ecco: adesso ho trovato (copiando da un msg di Alessandro Monti) un
link che dimostra la mia tesi ...
http://www.lysator.liu.se/c/schildt.html
Scusa, ma credo che all'autore del documento sia anche sfuggita
qualche cosa.
Mox

 wrote:
~NOTA: qualunque cosa tu decida di fare, NON comprare assolutamente
~libri di Schildt (vedi "Linguaggio C++", edito dalla McGraw-Hill),
~potresti pentirtene per il resto della tua vita ...
~Paolo.
?
io ce l'ho e non sembra fatto _malissimo_
certo non e' perfetto...
fritz

fritz
Il problema non č che sia fatto male (perché il tal caso ti
accorgeresti subito del problema e lo evitaresti), ma le imperfezioni,
tipo definizioni errate (per questo vedi il link) creano problemi piů
gravi, in quanto non č cosě facile accorgersene e in un linguaggio di
basso livello come il C questo puň comportre gravi errori, magari solo
in condizioni estreme (cosa quindi difficile da identificare).
Mox

 while (getchar() != EOF) ;
Questa non è una buona soluzione nel caso di interazione diretta con
l'utente in quanto richiede di inserire nello stream un carattere di EOF
che mi sembra una cosa abbastanza scomoda ed innaturale. Meglio
while (getchar() != '\n') ;
anche se, in effetti, questo non svuota completamente il buffer ma solo
fino al successivo "a capo". Però nella maggior parte dei casi è proprio
ciò che si vuole.
EMG

while (getchar() != '\n') ;
Mamma mia, dove ho la testa !
Quello che volevo scrivere č esattamente questo ! ;)


Salve,
Grazie per il msg che si riferisce in più parti a dei miei post.
Voglio scusarmi con tutti per i miei errori di espressione.
In effetti non volevo dire niente di troppo diverso da quanto detto da
Andrea.
So che non sei un guru, ma non è il caso che ti sminuisca troppo:
probabilmente è da vari anni che programmi, mentre io ho iniziato solo
l'hanno scorso. Inoltre mi sono rivolto a te e non ad altri (e questo
lo dico per scusarmi con gli altri frequentatori del ng), non perché
non li ritenga all'altezza, ma per la tua semplicità espressiva.
Quando parlavo della possibilità che un programma si compilasse
correttamente, ma che poi non funzionasse, anche a partire da un buon
algoritmo, ho effettivamente esagerato. Si è espresso molto più
chiaramente Andrea.
Il post di Andrea è comunque molto interessante soprattutto a riguardo
della filosofia del C, e spero che possa essere di aiuto a molti
programmatori.
Personalmente conserverò una copia di questo post e lo conserverò nel
libro di C.
Paolo.

 basso livello come il C questo può comportre gravi errori, magari solo


Prima di tutto leggiti il post di Andrea Laforgia (se non l'avessi
ancora fatto).
Posso riassumerti (spero in modo appropriato) che il libro migliore è
il K&R (Linguaggio C - Ansi C).
Se però sei completamente a digiuno di programmazione un buon testo è
il Bellini e Guidi - Linguaggio C - Edito da McGrawe-Hill
(probabilmente ho sbagliato a scrivere la casa editrice: scusatemi),
che non contiene l'elenco completo di tutte le funzioni disponibili
nelle librerie standard, ma presenta in modo chiaro anche le strutture
dati (cosa non molto utile per chi le conosce già, in quanto le avrà
studiate in modo più approfondito).
Paolo

you wrote :

--------------------------------------------------------


libro di C.
...ops... m'era partito un msg vuoto.
Voglio ringraziare Paolo e vorrei consigliargli di cambiare quell'EOF
presente nel codice che ho scritto nel msg precedente con un bel '\n'
;)


 wrote in message
GNgMON67tGzgGA...@4ax.com...


 * Andrea Laforgia        (
andrea_...@bigfoot.com
) *
No no no, questi errori rimarranno nella storia :-)))))))
San Vegeta
P.S. Cominciate a prepararvi a serie di domande assurde perchč ho finalmente
potuto abbandonare il Pascal e passare al C e al C++. Sapete com'č, sembra
che per passare Sistemi Operativi 1 si debba saper programmare un kernel piů
aggeggi connessi vari... :-P

Scusate ragazzi.....
Io, quando diedi l'esame di Fondamenti di Informatica, studiai, oltre che
dalle dispense del Prof., dal Gottfried.....che ne pensate? No è certo
completo o perfetto, ma per iniziare mi sono trovato benissimo.....pieno di
esempi!!!
Antonello


Ti riferisci ad un volume con la copertina bianca e la
scritta Ansi C stampata di traverso come un timbro postale?
Adesso ho la paranoia da libro bidone 8-(
Grazie Francesco.

Adesso ho la paranoia da libro bidone 8-(
Quello va bene : l'hanno scritto gli inventori del C !!! ;)
--
Andrea Laforgia        (
andrea_...@bigfoot.com
)

Ciao Andrea, grazie, comprato oggi pomeriggio,
vediamo se riesco a capirci qualcosa 8-)
Ciao Francesco.
