Consigli
Sono al primo anno di ingegneria informatica,e non avendo mai fatto informatica prima d'ora mi ritrovo in seria difficoltà con la programmazione c++(soprattutto dalle classi in poi).
I libri che ho sono:
--Fondamenti di programmazione struturata in c++(Clementini); --C++(Bjarne Stroustrup) --Informatica arte e mestiere;
Ho notato che a parte il clementini gli altri libri non sono leggibili da chi come me voleva partire da zero.
Dato che mi trovo in difficoltà "solo" sulla programmazione strutturata avete qualche libro da consigliarmi?(a questo punto credo che solo i libri delle superiori siano adatti a me,poi non so...)
Sono in crisi
perchè con tutta la buona volontà proprio non riesco a fare gli esercizi proposti,e tra due mesi ho l'esame.
Voi cosa consigliate di fare?Si può compiere quest'impresa titanica da soli (il prof ormai viaggia come un treno e l'ho perso).
I libri che ho sono:
--Fondamenti di programmazione struturata in c++(Clementini); --C++(Bjarne Stroustrup) --Informatica arte e mestiere;
Ho notato che a parte il clementini gli altri libri non sono leggibili da chi come me voleva partire da zero.
Dato che mi trovo in difficoltà "solo" sulla programmazione strutturata avete qualche libro da consigliarmi?(a questo punto credo che solo i libri delle superiori siano adatti a me,poi non so...)
Sono in crisi

Voi cosa consigliate di fare?Si può compiere quest'impresa titanica da soli (il prof ormai viaggia come un treno e l'ho perso).
Risposte
"Mifert4":
Sono in crisiperchè con tutta la buona volontà proprio non riesco a fare gli esercizi proposti,e tra due mesi ho l'esame.
Voi cosa consigliate di fare?Si può compiere quest'impresa titanica da soli (il prof ormai viaggia come un treno e l'ho perso).
Io non andrei in crisi per il C.
Per quanto riguarda il materiale la risposta è "su Internet". Internet è piena di tutorial, esercizi, esempi, spiegazioni, specialmente per chi inizia.
Il problema del materiale d'aiuto inzia quando usi funzioni avanzate.

Capisco che le classi siano un po' difficili da digerire, ma d'altra parte all'esame il programmino da scrivere sarà relativamente semplice e corto per cui, non ci sarà tempo per scrivere alcuna classe, tanto più che non avrai davanti il PC.
In due mesi la vedo fattibile, però vuol dire che i prossimi due mesi li passi davanti al compilatore C.
Se poi hai dei dubbi, chiedi. Il C non ha mai ucciso nessuno.

@Sergio:
molto interessante ciò che hai descritto. Devo dire di aver letto di questa terminologia su di un libro di 20 anni fa....
Ho letto il wiki mi sembra di capire che oggi non si usa più questo nome, che mi è più familiare con "flusso di controllo" o modelli molto più complessi.
Ma sai se in letteratura (in passato) ci si riferisce con altri nomi a questo paradigma?
molto interessante ciò che hai descritto. Devo dire di aver letto di questa terminologia su di un libro di 20 anni fa....
Ho letto il wiki mi sembra di capire che oggi non si usa più questo nome, che mi è più familiare con "flusso di controllo" o modelli molto più complessi.
Ma sai se in letteratura (in passato) ci si riferisce con altri nomi a questo paradigma?
"Sergio":
Scusami, ma non ho capito quale sarebbe "questo nome" che non si usa più.
Che io sappia, si parla di "programmazione strutturata" e di "programmazione orientata agli oggetti" da più di quarant'anni e se ne parla ancora.

Sono andato a controllare alcune vecchie note, e si parla proprio di programmazione strutturata. L'avevo proprio dimenticata questa terminologia (programmazione strutturata), ed avendola letta su un vecchio libro e non più incontrata nei miei studi (se non con altri nomi), ho pensato non fosse più utilizzata.
Si impara sempre qualcosa

Grazie Sergio,davvero molto utile la tua spiegazione.
@Sergio: In effetti il C++ è enormemente cambiato da quella data. Credo che non fosse stato ancora standardizzato (dopotutto nel 1990 avevo solo 5 anni e certamente non mi preoccupavo ancora del C++
). Sicuramente c'è stato uno standard più recente ed una sua espansione e c'è una nuova versione che si sta avvicinando. Ma quello insegnato alle università non è probabilmente molto diverso da quello che hai imparato agli inizi degli anni 90..
Viene ancora sfortunatamente insegnato il C con classi invece che il C++ moderno.
@Mifert4: Anche se un libro più accessibile è certamente utile, credo che l'ideale, se hai difficoltà a comprendere questi concetti, sia di farti aiutare da qualcuno (per esempio un compagno/a di corso o un professore o assistente o qualcuno che ti dia ripetizioni). Per imparare a programmare è infatti necessario imparare a pensare in un certo modo e credo che sia difficile insegnare a farlo in un libro stampato. Soprattutto se l'obiettivo del libro è comunque quello di imparare un particolare linguaggio.


@Mifert4: Anche se un libro più accessibile è certamente utile, credo che l'ideale, se hai difficoltà a comprendere questi concetti, sia di farti aiutare da qualcuno (per esempio un compagno/a di corso o un professore o assistente o qualcuno che ti dia ripetizioni). Per imparare a programmare è infatti necessario imparare a pensare in un certo modo e credo che sia difficile insegnare a farlo in un libro stampato. Soprattutto se l'obiettivo del libro è comunque quello di imparare un particolare linguaggio.
Visto che il problema è alla base, prima di partire con un testo specifico di OOP con il C++ andrei su un testo generico di OOP, giusto per capire i concetti di base, anche perchè poi è più facile passare dal C++ ad un altro linguaggio come Java, Delphi o altro ancora.
"Sergio":
Non posso essere d'accordo, per il semplice motivo che io ho imparato proprio sui libriIl problema è che i testi davvero buoni, quelli che davvero insegnano, sono pochi.
Anche io ho studiato principalmente sui libri, ma non credo che sia stato il metodo più efficiente per farlo e non me la sento di consigliarlo ad una persona che ha difficoltà a comprendere le idee base della programmazione. Io ho avuto la fortuna di non aver avuto alcuna difficoltà a capire questi concetti, ma non credo che il merito fosse del libro (che a posteriori posso giudicare come pessimo). Probabilmente avevo un modo di pensare più affine a quello necessario per riuscire a programmare e questo mi ha permesso di andare avanti anche senza una guida. Sono però convinto che avere una guida sia molto utile in questo e in praticamente tutti i settori del sapere. Anche solo per avere un punto di riferimento e una persona a cui chiedere quando qualche concetto appare incomprensibile.
"apatriarca":
Viene ancora sfortunatamente insegnato il C con classi invece che il C++ moderno.
a dire il vero, si insegna anche il C con i costrutti del C++ (un C++ light)

"hamming_burst":
[quote="apatriarca"]Viene ancora sfortunatamente insegnato il C con classi invece che il C++ moderno.
a dire il vero, si insegna anche il C con i costrutti del C++ (un C++ light)


"Sergio":
Se basi il tuo giudizio su libri pessimi, non posso che concordare![]()
Vuoi qualche esempio di libro ottimo? Il Kernighan & Ritchie su cui ho imparato il C, il vecchio Lippman per il C++ (pessimo, invece, il primo Stroustrup), Writing efficient programs di Bentley, Advanced Unix Programming di Rockind.
Ma chi ti dice che l'"umano" che ti assiste sia ottimo e non pessimo?
Non mi riferisco solo a quel libro e non solo alla programmazione. Per come sono fatto, preferisco una persona ad un libro (anche se certamente un libro è utile come riferimento). Almeno per comprendere le idee principali degli argomenti. E' poi ovvio che ci sono pessimi insegnanti o semplicemente persone il cui metodo di insegnamento non sia adatto al proprio metodo di studio. Come per i libri, è giusto scegliere.
Tu ed io abbiamo probabilmente una cosa in comune: non solo e non tanto un "modo di pensare più affine a quello necessario per riuscire a programmare", ma soprattutto tanta passione. Tanta passione fa superare qualsiasi ostacolo, anche i libri pessimi (nel mio caso, Stroustrup).
Concordo. Lo Stroustrup non è un libro pessimo, solo inadatto al tuo livello in quel momento. Non hai mai voluto essere un libro per imparare a programmare usando il C++ o per imparare la programmazione ad oggetti. E' adatto come secondo o terzo libro.

Mifert4 si trova «difficoltà con la programmazione c++(soprattutto dalle classi in poi)». Se le difficoltà nascono con le classi vuol dire che per il resto "ce la fa", e non è poco. I suoi problemi: ...
I libri sono certamente inadatti alle sue necessità ed il corso sicuramente troppo breve o inadatto*. E sono d'accordo nel dire che ha senza dubbio bisogno di un buon testo di riferimento (i buoni sono però tutti in inglese). Credo che l'aiuto di una persona umana, attraverso il forum o di persona, sia però molto importante e immagino che se continua a tornare a fare domande in questo forum sia perché ha trovato nel forum le risposte che cercava.
* Credo che sia comunque molto difficile organizzare un primo corso di programmazione perché i livelli degli studenti sono così diversi che è difficile riuscire a fare un corso che sia adatto a tutti. E i corsi sempre più brevi rendono la cosa solo più difficile.
[Mini-OT]
@Sergio:
ascolta, mi hai parecchio lasciato spiazzato.
Non aver sentito parlare di questo formalismo (modello) di programmazione mi ha davvero fatto pensare.
Perciò vorrei aprofittare delle tue conoscenze e chiederti, se puoi dirmi dove si piazza correttamente la "programmazione strutturata" (PS) nei vari livelli di astrazione nello studio dei linguaggi di programmazione.
Io ne conosco alcuni derivata dalla semantica dei linguaggi, e decisamente la definizione di PS non la ho mai incontrata, perciò vorrei capire dove si piazza (se è un sottoinsieme, un macro paradigma, ecc..).
Gli elenco classificandoli sugli operatori della semantica (if, while, rec, ecc...):
formalismi basati su stati e memorie:
- programmazione imperativa IMP (sottogruppo: programmazione sequenziale): insieme di operatori che eseguono direttamente il comando sequenzialmente
basati su stati, memorie ed ambiente:
- programmazione applicativa e procedurale: estensione di IMP con la possibilità di raggruppare il codice in scope e procedure.
- programmazione applicativa con salti: estensione di cui sopra con la possibilità di fare salti tra il codice (goto, break, ...)
basati su funzioni ed ambienti:
- paradigma funzionale FUN
- programmazione concorrente CON/b]
- programmazione object-oriented
Se te dici che la programmazione O-O è allo stesso livello della PS mi fai pensare esista un'astrazione maggiore che inglobi IMP,FUN,CON, ec...
esempio: la programmazione O-O può essere un formalismo per estendere un linguaggio IMP perciò è allo stesso livello, ma la PS è già un formalismo che descrive IMP.
Se il dubbio è chiaro, se no cerco di rispiegarmi.
Se sai chiarirmi il tutto, ti ringrazio
[/Mini-OT]
@Sergio:
ascolta, mi hai parecchio lasciato spiazzato.
Non aver sentito parlare di questo formalismo (modello) di programmazione mi ha davvero fatto pensare.
Perciò vorrei aprofittare delle tue conoscenze e chiederti, se puoi dirmi dove si piazza correttamente la "programmazione strutturata" (PS) nei vari livelli di astrazione nello studio dei linguaggi di programmazione.
Io ne conosco alcuni derivata dalla semantica dei linguaggi, e decisamente la definizione di PS non la ho mai incontrata, perciò vorrei capire dove si piazza (se è un sottoinsieme, un macro paradigma, ecc..).
Gli elenco classificandoli sugli operatori della semantica (if, while, rec, ecc...):
formalismi basati su stati e memorie:
- programmazione imperativa IMP (sottogruppo: programmazione sequenziale): insieme di operatori che eseguono direttamente il comando sequenzialmente
basati su stati, memorie ed ambiente:
- programmazione applicativa e procedurale: estensione di IMP con la possibilità di raggruppare il codice in scope e procedure.
- programmazione applicativa con salti: estensione di cui sopra con la possibilità di fare salti tra il codice (goto, break, ...)
basati su funzioni ed ambienti:
- paradigma funzionale FUN
- programmazione concorrente CON/b]
- programmazione object-oriented
Se te dici che la programmazione O-O è allo stesso livello della PS mi fai pensare esista un'astrazione maggiore che inglobi IMP,FUN,CON, ec...
esempio: la programmazione O-O può essere un formalismo per estendere un linguaggio IMP perciò è allo stesso livello, ma la PS è già un formalismo che descrive IMP.
Se il dubbio è chiaro, se no cerco di rispiegarmi.
Se sai chiarirmi il tutto, ti ringrazio

[/Mini-OT]
"apatriarca":
[quote="hamming_burst"][quote="apatriarca"]Viene ancora sfortunatamente insegnato il C con classi invece che il C++ moderno.
a dire il vero, si insegna anche il C con i costrutti del C++ (un C++ light)


esatto

Da me han fatto così, studiarsi il C poi è stato un po' complicato perchè si strutturava il codice in un modo, bha spero che han cambiato sistema di insegnamento.
"hamming_burst":
[Mini-OT]
@Sergio:
ascolta, mi hai parecchio lasciato spiazzato.
Non aver sentito parlare di questo formalismo (modello) di programmazione mi ha davvero fatto pensare.
Perciò vorrei aprofittare delle tue conoscenze e chiederti, se puoi dirmi dove si piazza correttamente la "programmazione strutturata" (PS) nei vari livelli di astrazione nello studio dei linguaggi di programmazione.
Io ne conosco alcuni derivata dalla semantica dei linguaggi, e decisamente la definizione di PS non la ho mai incontrata, perciò vorrei capire dove si piazza (se è un sottoinsieme, un macro paradigma, ecc..).
....
[/Mini-OT]
Su wikipedia c'è qualcosa http://it.wikipedia.org/wiki/Programmazione_strutturata, però trovo strano che non venga menzionato in un corso di laurea in informatica....
"GundamRX91":
Su wikipedia c'è qualcosa http://it.wikipedia.org/wiki/Programmazione_strutturata, però trovo strano che non venga menzionato in un corso di laurea in informatica....
certo ho letto wiki

La questione è che da quando ho iniziato lo ho trovato scritto solo una volta. Sergio ha fatto notare che è ancora vivo questo termine e perciò non è decaduto, come invece pensavo.
Nello studio dei linguaggi di programmazione (semantica) se fosse ancora in voga lo avrei dovuto trovare, per questo se capisco a che livello è forse riesco a capire perchè lo ho saltato, forse si usa in altri studi dei linguaggi

Immaginavo
Si, comunque è ancora in uso o per lo meno qui in azienda lo si usa come termine, anche se utilizziamo la OOP, sottointendendo che il software sviluppato è anche "strutturato"

Si, comunque è ancora in uso o per lo meno qui in azienda lo si usa come termine, anche se utilizziamo la OOP, sottointendendo che il software sviluppato è anche "strutturato"

immagino che se continua a tornare a fare domande in questo forum sia perché ha trovato nel forum le risposte che cercava.
Se potessi farei una statua d'oro a questo forum e questo sito

ok ho capito di cosa si tratta.
Adesso, penso, che le basi di ciò siano talmente intriseche ed ovvie, che viene citato solo come cenno storico od introduzione alla programmazione O-O.
Nella mia classificazione va messo in una nuova categoria, ma che può inglobare IMP ed altro per vincolare il linguaggio sotto il paradigma PS.
Penso che come teoria a se (e non come paradigma) sia fatta in corsi proprio di ottimizzazione del codice in fase di compilazione, con analisi data-flow e penso solo li abbia senso.
Al massimo penso che alcuni principi siano estrapolati per scrivere buon codice ed insegnati in corsi di Ingegneria del Software (es. "Il principio di Parnas" base della O-OP è valido per ogni linguaggio).
un grazie Sergio
Adesso, penso, che le basi di ciò siano talmente intriseche ed ovvie, che viene citato solo come cenno storico od introduzione alla programmazione O-O.
Nella mia classificazione va messo in una nuova categoria, ma che può inglobare IMP ed altro per vincolare il linguaggio sotto il paradigma PS.
Penso che come teoria a se (e non come paradigma) sia fatta in corsi proprio di ottimizzazione del codice in fase di compilazione, con analisi data-flow e penso solo li abbia senso.
Al massimo penso che alcuni principi siano estrapolati per scrivere buon codice ed insegnati in corsi di Ingegneria del Software (es. "Il principio di Parnas" base della O-OP è valido per ogni linguaggio).
un grazie Sergio

"Sergio":
Io non lo dico
...
Per il resto, sono sicuro che altri sanno muoversi molto meglio di me in classificazioni come quella che proponi.
E' sufficiente questo
http://en.wikipedia.org/wiki/Programming_paradigm
(un sunto abbastanza ben fatto).
PPS. Decisamente, uichipèdia in italiano lascia (spesso) molto a desiderare...