Newsgroup: it.comp.programmare
Titolo: Strutturata o a oggetti

Ciao, sono ai primi passi della programmazione, ho letto solo un pò di
teoria, vorrei capire meglio la differenza tra programmazione
strutturata e programmazione a oggetti. Potreste fare un esempio
astratto di come un problema  si può risolvere con la progr.
strutturata e come lo stesso può essere risolto con la progr. a
oggetti? Più che codice (che ancora non capisco) vorrei capire dal
punto di vista concettuale
Vi ringrazio.

 strutturata e programmazione a oggetti.
15 anni di tempo ;)
La strutturata non č altro che la precedente procedurale dove alcune
regole costringevano ad abbandonare il famoso spaghetti-code (in primis
senza jump), ma sempre di programmazione procedurale trattasi.
Per gli oggetti lascio a chi ne sa piů di me.



Non mi sembra molto sensato studiare la teoria prima di avere fatto pratica.
Sarebbe come cercare di capire nel gioco del calcio la differenza tra marcare a uomo e marcare a zona senza avere mai visto una partita.
Comunque, premesso che la programmazione a oggetti e' molto "strutturata", provo a darti una spiegazione.
Per programmazione strutturata si intende scrivere del codice annidato: il programma contiene dati globali e moduli, i moduli contengono dati di modulo e routine, le routine contengono dati di routine, istruzioni, e blocchi, e i blocchi contengono dati di blocco, istruzioni e altri blocchi.
Per programmazione a oggetti (sarebbe meglio dire a classi), si intende che nella gerarchia precedente si inserisce il costrutto "classe", che nella programmazione a oggetti pura sostituisce il contentto di modulo, mentre nella programmazione a oggetti ibrida lo accompagna.
Quindi le classi contengono dati e routine. La differenza tra classe e modulo e' che un definisce staticamente i propri dati, mentre la classe viene istanziata dichiarando oggetti di tale classe. Ogni oggetto distinto di una classe contiene una copia distinta delle variabili definite nella classe. In tal modo, una classe finisce per essere un tipo definito dall'utente, e gli oggetti istanziati da tale classe sono le variabili aventi tale tipo.
-- 
	Carlo Milanesi
 
http://digilander.libero.it/carlmila

...

Accordo pienamente con quanto detto da Carlo Milanesi.
Si capisce meglio programmando!
Romanzando e semplificando...
Un tempo si scriveva tanto codice con rimandi del tipo goto XY,
con variabili che finivano per avere lo stesso nome e con tante
prodedure che si differenziavano di poco.
Diciamo il vecchio Basic.
Per chi programmava in Pascal le cose potevano andare un pò meglio
evitando per esempio pericolosi goto difficili da aggiornare.
Modula 2, C (e altri linguaggi) davano anche la possibilità di raggruppare
le variabili in strutture annidate, e il codice che ne risultava 
era meno prolisso, più leggibile e pulito.
Ma quando i programmi diventavano veramente grossi e complessi,
visto il successo dei concetti di modulo, annidamento, scope,
si è cercato di raggruppare ancora più funzionalità nella struttura
(ereditarietà, incapsulamento anche di funzioni).
E la classe fu. E gli oggetti, come istanziazione di classe, pure.
E poi non si avevano più tante procedure che si differenziavano di poco,
ma un'unica in grado di adattarsi alle differenze (polimorfismo).
Da quanto detto spero che si possa immaginare l'esempio richiesto.
Ciao

 Un tempo si scriveva tanto codice con rimandi del tipo goto XY,
dalla programmazione strutturata agli oggetti direi a spanne che ci
stanno 15anni...
btw faceva paura il goto? dovevi provare con la ALTER (cobol, pari a
cambiare indirizzo di una jmp ad ogni ciclo) allora! ;)