Newsgroup: it.comp.lang.c++
Titolo: libri free e online sul c++

salve a tutti,
avrei un quesito da porre: chi fosse quasi a digiuno di programmazione (sia
a oggetti che "normale") e volesse trovare in rete qualche corso on line o
qualche libro in pdf (o simile) per poter imparare il c++, dove potrebbe
andare? sgoogleggiando si trovano milioni di risultati, ma o sono a
pagamento o sono a livello base (troppo base, non vanno oltre il classico
programma helloworld.cpp, tanto per capirci).
Ho trovato i libri di eckel, thinking in c++ e non mi pare malvagio;
qualcuno ha qualcos'altro da consigliare?
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 qualcuno ha qualcos'altro da consigliare?
http://tinyurl.com/2e9tz2
ciao


Immagino che se l'autore di quel tutorial non s'è firmato, un motivo
c'è.
M'è bastato leggere "Gli array sono dei puntatori!" per avere dei
conati di vomito.
State lontani dal manuale (pessimo) esposto a quel link e seguite,
invece, l'ottimo testo di Bruce Eckel, reperibile in rete.

 c'è.
http://tinyurl.com/23ey8e
, per l'identificazione del poveretto in
questione
ciao


Beh, in realtà la firma c'è... (
http://tinyurl.com/23ey8e
)
In ogni caso, questo corso a me sembra ben fatto. Dire *array* e dire 
*puntatore costante* a te non dice niente?
Ciao. 

 *puntatore costante* a te non dice niente?
Mi dice che stai prendendo un abbaglio grande quanto una casa. Array e
puntatore costante non significa dire la stessa cosa. Array e
puntatori sono caratteristiche del linguaggio *profondamente* distinte
e del C e del C++. Un array non è *MAI* un puntatore, semmai vi decade
(lo standard parla proprio di "decays") in condizioni specifiche (ci
sono i fatidici 3 casi in cui ciò non avviene e di cui si è parlato
innumerevoli volte qui e in it.comp.lang.c). Ti convinci ora o andiamo
avanti ? :-)

 dallo standard: "to decay").
Ho fatto una piccola ricerchina e sostanzialmente sono d'accordo con
te con
quello che dicevi nel lontano 2004.
Nello studio introduttivo del C++ mi sono appoggiato *anche* a questo
link.
Informazioni poco rigorose certo ma nei tutorial introduttivi di
solito è così;
a meno che non hai altre risorse da condividere.
NB. *non* considero l'eccellente Thinking come introduttivo
comunque...
ciao
Ciao.

io suggerisco "C++ annotations"; e quello che adottiamo qui ed e'
ottimo (e gratuito).
http://www.icce.rug.nl/documents/cplusplus/cplusplus.html
-- 
|   Maurizio Loreti -- 
ROT13:ybe...@cq.vasa.vg
   |  (@_
| Un. of Padova, Dept. of Physics, Padova, Italy |  //\
|     
http://www.pd.infn.it/~loreti/mlo.html
     |  V_/_

 solito è così;
Nei tutorial introduttivi, tutto ci può essere, *meno* che la mancanza
di rigore.
Altrimenti, a cosa esattamente si sta introducendo?


mah, di solito le introduzioni sono dirette a un pubblico sprovvisto
delle nozioni fondamentali e formulate con un linguaggio largamente
comprensibile. E di solito "largamente comprensibile" != "rigore" :)
ciao.

comprensibile. E di solito "largamente comprensibile" != "rigore" :)
E' una visione a mio parere errata. Che un argomento sia trattato in
maniera largamente comprensibile, non vuol dire che debba
necessariamente mancare di rigore. Si può insegnare argomenti
difficili in modo semplice, pur non peccando di correttezza formale. 
Il rigore, inteso come la stretta aderenza alla precisione tecnica, è
necessario _proprio_ per far passare i principi in modo corretto e non
inficia affatto la semplicità dell'esposizione.
Tanto per tornare in argomento: a che pro imparare da un manuale come
quello che hai riportato, che manca appunto di rigore, se poi
bisognerà impiegare del tempo, successivamente, a correggere le
nozioni errate? si è perso tempo e basta.

 si è perso tempo e basta.
Sì e no. Non so te, ma io spulcio sia le biblioteche che internet;
compulso quanto più materiale possibile e ritengo quello che mi
serve.
Come disse quel tale, non vi è altra scienza che la quantitativa! Non
sai quante cose interessati ho trovato per errore...
Serendipity!

 serve.
Io leggo qualsiasi cosa venga scritta su un argomento, se mi
interessa, ma sto ben attento a discostarmi dalla roba notoriamente
scritta coi piedi, a casaccio da chi si improvvisa divulgatore. E' il
caso, ad esempio, dei manuali di Herbert Schildt, noti per la facilità
di lettura e altrimenti noti per la quantità di errori presenti. Non
si fa mai un buon affare nel leggere e studiare materiale scadente,
perché bisognerà impiegare del tempo, successivamente, per correggere
il tiro. Senza contare le innumerevoli figuracce che è possibile fare
(come qui dentro, quando si ritiene, perché lo si è letto sul manuale,
che un array e un puntatore siano la stessa cosa).

Non si fa mai un buon affare nel leggere e studiare materiale scadente...
Ripeto, marcando i concetti: "Non so te, ma io spulcio sia le
biblioteche che internet;
compulso quanto più materiale possibile e *ritengo quello che mi
serve*".
(Chissà il nostro "anonimo" che cavolo penserà di tutta questa
discussione... boh!, secondo me passa a Python :P)
Ciao.

 serve*".
E io ripeto, marcando il non sense della tua affermazione: le persone
che si affacciano su un argomento, non hanno i mezzi per capire che
cosa va tenuto da parte e che cosa va scartato, assorbono
semplicemente le nozioni che si trovano davanti e, non conoscendo
appunto l'argomento, le prendono per buone. Salvo poi,
successivamente, vedere crollare (non senza sofferenza in termini di
figuracce) le convinzioni sbagliate acquisite.
Chiudo qui la discussione, sperando che l'OP si sia deciso a scartare
il link e procurarsi invece l'ottimo testo di Eckel.

ok, anch'io mi sono stancato.
ciao

 comprensibile. E di solito "largamente comprensibile" != "rigore" :)
Se e' cosi' e' malissimo. I testi per principianti dovrebbero essere
se possibile ancor piu' rigorosi e accurati dei testi avanzati,
perche' rivolti ad un pubblico che si presume privo degli strumenti
necessari per cogliere imprecisioni e inesattezze.
La comprensibilita' si puo' benissimo ottenere attraverso la chiarezza
del linguaggio e l'omissione di dettagli non rilevanti alla
comprensione dell'argomento che si sta trattando. La verita' e' che
scrivere per principianti e' difficile, a maggior ragione in un paese
come il nostro che ha scarsa tradizione di divulgazione scentifica.
Ciao,
Nicola


Si è tanto discusso in questo thread di "rigore", "accuratezza", e così via; 
ma tornando alle esigenze di un principiante che volesse dare una prima 
passata al linguaggio, ma in modo *rigoroso* e snello, a parte il già citato 
Eckel, di cui tutti ne apprezzano il valore, esistono dunque altri tutorial 
in rete (anche in inglese naturalmente) che meritino un primo livello di 
studio?
Mettiamola così, cerchiamo di stilare una personale classifica di gradimento 
di corsi di C++ in cui ci siamo imbattuti in rete.
Ciao a tutti. 

 conati di vomito.
...
Ma la cosa ancora più bella è dopo si addentra in spiegazioni e dettagli 
tipo:
la dichiarazione di un array comporta allocazione di memoria non solo 
per una variabile puntatore (il nome dell'array), ma anche per l'area 
puntata, di cui viene predefinita la lunghezza; inoltre il puntatore 
viene dichiarato const e inizializzato con l'indirizzo dell'area puntata 
(cioè del primo elemento dell'array).
  Es.:         int lista[5];
	alloca memoria per il puntatore costante lista;
	alloca memoria per 5 valori di tipo int;
	inizializza lista con &lista[0]
Ma le chicche non finiscono qui:
giusto dando un'occhiata mi sono imbattuto in:
- Il C++ ammette che si ridefinisca più volte la stessa variabile, 
purché in ambiti diversi;...
- Una variabile è detta automatica (o dinamica), ....
D'altra parte questa roba è sul sito del CNR...
(e qualcuno ha addirittura il coraggio di affermare che in Italia 
spendiamo poco per la ricerca: MENO MALE dico io pensando che questi 
soldi vanno a finire al CNR)

 Ciao a tutti.
Ecco questa è una buona idea!

 soldi vanno a finire al CNR)
ma infatti, perché non proponiamo di chiuderlo. Tanto non è più 
comodo usare brevetti americani (o cinesi) già bell'e pronti ?
:-)
Ciao
Soviet

 :-)
Guarda, senza voler fare polemica, ma io ci ho avuto a che fare per 
lavoro e (ma sarà stato SICURAMENTE un caso sfortunato) stendiamo un 
velo pietoso.
Per quanto ho avuto modo di vedere, nel mio campo (automazione 
industriale) ricerca la fanno le aziende, che brevettano e come! Anzi in 
molti settori le aziende italiane sono straleader mondiali: un motivo ci 
sarà non credi?
Università e CNR partecipano quando è ora di spartirsi eventuali 
finanziamenti pubblici dando un contributo tecnico praticamente nullo: 
loro sono interessati ad "altri" progetti più "difficili", più "teorici" 
più "bla bla bla". Detto in pratica loro sono interessati a fare ricerca 
su roba che anche se non funziona fa lo stesso!!! Dove c'è da ottenere 
un risultato misurabile e funzionante, scappano alla larga!
Naturalmente IMHO.
--
GM

 un risultato misurabile e funzionante, scappano alla larga!
Personalmente, ho partecipato a un progetto che, almeno sulla carta,
si annunciava come qualcosa di estremamente stimolante: l'intero
sistema informativo di una università di una grande città italiana
(non citerò né l'una né l'altra); il cliente, formalmente, era un
consorzio di università (che non citerò) e si occupava anche del
management del progetto. Tutta gente senza esperienza, che faceva
pretese assurde, imponeva meccanismi astrusi, spingeva i nostri
analisti negli angoli e gli legava le mani. Il progetto è miseramente
fallito perché alla fine ci si è accorti tutti che il funzionamento
reale delle cose non interessava a nessuno, il progetto era nato solo
per spartire i grandi finanziamenti ottenuti. Quando noi consulenti
abbiamo cominciato a sentire puzza di bruciato, c'è stata una vera e
propria diaspora.

di lettura e altrimenti noti per la quantità di errori presenti.
Bene, è proprio una buona notizia!
Io sono appena agli inizi e ho comprato, guardacaso, proprio la quarta
(nuova) edizione de "C++ la guida completa" di Shildt perchè credevo
fosse uno dei testi migliori sull'argomento. Mi è stato consigliato da
tantissime persone su vari forum, così come i due volumi di Deitel e
il citato manuale di Eckel (che già possiedo, entrambi).
Leggendo il manuale di Shildt (sono appunto agli inizi) lo sto
trovando molto chiaro e metodico, mi piace la chiarezza con cui spiega
e la linearità con cui affronta gli argomenti, senza dispersioni o
divagazioni .....
....ma a questo punto, dal momento che sono un novellino e non ho
esperienza in merito, sicuramente mi sto sbagliando.....e forse sarò
uno di quelli che impareranno le cose sbagliate e perderanno tempo poi
per disimparare le sciocchezze acquisite e per "aggiustare il tiro".
Vabbé, ormai i soldi per Shildt li ho spesi.....che faccio, lo brucio?
Ci faccio il falò di ferragosto?
Dopo essermi brevemente documentato, personalmente fatico a credere
che Schildt, che se non vado errando è uno degli autori di manuali
informatici più seguiti ed acquistati in assoluto (insieme ad altri,
ovviamente), possa definirsi un "improvvisato divulgatore che scrive
roba con i piedi". Se ha un pubblico di lettori, studenti e
appassionati così ampio, evidentemente non è soltanto perchè "scrive
bene", ma ci sarà anche qualche contenuto valido, no?
Ovvio che possano esistere degli errori nei suoi manuali, ma non credo
siano una caratteristica esclusiva sua: tutti commettono errori, che
siano di stampa o di contenuto, ma per questo esistono le "errata
corrige" di correzione. Nessun libro è perfetto.
Fino ad ora, al punto dove sono arrivato, tutto quello che ho letto
sul suo manuale è esattamente coincidente alle stesse informazioni
reperite su altri manuali di C++, quindi evidentemente non dice solo
cavolate.....oppure tutti i manuali sono sbagliati ad eccezione di
Eckel?
Ovviamente IMHO.
Uomoserio

 cavolate..
...
Se vuoi un parere autorevole sui libri di Schildt:
http://www.accu.org/index.php/book_reviews?url=search.xqy%3Fx&term=Herbert+Schildt&field=author

 Eckel?
No, ci sono anche i libri di Stroustrup, Lippman/Lajoie/Moo, Koenig/
Moo; per non parlare di Meyers, Sutter, Alexandrescu...
Ci sono alcuni autori che seguono l'evoluzione del linguaggio e sono
rigorosi nella loro esposizione; altri anno dopo anno mungono libri
che magari 10-15 anni fa avevano un loro valore (vedi Deitel/Deitel) o
anche no (vedi Schildt).
Ciao,
Nicola

 Naturalmente IMHO.
Nella tua esperienza probabilmente. Il gruppo che mio padre dirige per
esempio è in un network di eccellenza europea. E in compenso quest'anno
possono fare ricerca solo 6 mesi su 12 perchè non ci sono abbastanza
fondi per tenere accese tutto l'anno le macchine.
Suggerirei di non fare di tutta l'erba un fascio insomma.
E suggerirei di mandare mail a chi di dovere facendogli presente quali
inesattezze presenta il suo corso. 
-- 
blog:  
http://www.akropolix.net/rik0/blogs
 | Uccidete i filosofi,
site:  
http://www.akropolix.net/rik0/
      | tenetevi riso e
forum: 
http://www.akropolix.net/forum/
     | bacchette per voi.


Quindi anche Deitel/Deitel sarebbero fra gli autori da sconsigliare, a
tuo avviso ?
Perfetto, considerato che su calda raccomandazione di molte persone ho
comperato, oltre a Schildt, anche il manuale "C++ Fondamenti di
programmazione" di Deitel/Deitel, ora il da farsi è chiaro:
- Buttare 2 manuali che in totale mi sono costati quasi 90 Euro.
- Mandare a fanc... tutti quelli che me li hanno raccomandati come
ottimi testi
- Studiarmi il libro di Eckel (che fra tutti quelli "ok" che mi hai
citato è l'unico che ho senza spendere altri soldi) e mangiarmi il
fegato pensando ai soldi che ho buttato via.
Oppure avete una valida alternativa da suggerirmi?
Proverò a venderli come usati su e-bay, magari trovo altri "fessi" che
li comprano a occhi chiusi!
Mah.....
Ciao,
Uomoserio

Eckel?
Esistono manuali e manuali. I testi di Bruce Eckel, Bjarne Stroustrup,
Stanley Lippman, Carlo Pescio, ecc... sono i testi da tenere
sicuramente sulla scrivania. Poi esistono libri come quelli di Schildt
da usare, appunto, per il caminetto...

 Eckel?
Ti hanno detto anche altri nomi di testi ben fatti. Eckel veniva spinto
perchè gratuito e perchè se non ti va di spendere altri soldi questo può
essere un buon colpo.
