Newsgroup: it.comp.lang.delphi
Titolo: Puntatori

Qualcuno ha qualche manualetto interessante sui puntatori ?
p.s. ho già guardato su 
http://gpi.eden.it/
grazie 2000.
                               _________________
                               ( 
Gna...@wappi.com
 )
                               ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

 p.s. ho già guardato su 
http://gpi.eden.it/
Vuoi sapere qualcosa di particolare?
[come implementare liste, suppongo...]
Ciao :-)
--
(¯`·.¸¸.·´¯`·.¸¸.-> Andrea <-.¸¸.·´¯`·.¸¸.·´¯)
AntiSpam: rimuovere il trattino basso dall'indirizzo per rispondere
AntiSpam: remove the underscore from the e-mail address to reply

p.s. ho già guardato su 
http://gpi.eden.it/
Se ti interessa qualcosa in particolare chiedi pure qui nel NG ! Di testi
pronti non se ne trovano...
Colgo l'occasione per proporre una mia ideuccia... Perchè non fare una FAQ
oppure un piccolo testo introduttivo a Delphi (da usare appunto come FAQ)
che parli un po' in generale di tutto (tipi, puntatori, classi, DB, giochi,
Client/Server, VCL, Win32 ecc.) ? Sarebbe una gran cosa, visto che di
tutorial in italiano per Delphi sembra non essercene nessuno in rete...
Sarebbe un piccolo contributo per aiutare Delphi ad espandersi e sarebbe
molto utile ai newbies. Magari suddividendosi gli argomenti in quattro o
cinque persone si perderebbe poco tempo per un buon risultato...
Che ne dite ? Io potrei parlare un po' di tutto tranne di DB.
Ciao !!                                {MSX}

 [come implementare liste, suppongo...]
si, li sto studiando a scuola, ma non mi piace come le spiega il mio prof di
informatica allora ho deciso di studiarmeli da solo.
una cosa che non ho capito è a cosa mi serve una lista doppiamente
concatenata? e una circolare?
grazie
gna...@wappi.com



 cinque persone si perderebbe poco tempo per un buon risultato...
Ci sto. e se si facesse un mega manualone ?
gna...@wappi.com

>Ci sto. e se si facesse un mega manualone ?
Già sarebbe una bella cosa...
Tu che cosa scriveresti ?

 Tu che cosa scriveresti ?
Si potrebbe fare così: si decide un argomento e si posta quello che
ognuno sa di quell'argomento, ed infine si estrae una specie di sunto di
tutto.
E magari si potrebbe aprire un sito dove mettere questo Manuale.
Che ne dite?

Ciao Davide.
Le liste le ho studiate a Programmazione I, quindi ti dico cosa ho
capito:
Una lista è una struttura "dinamica" per la rappresentazione dei dati,
ed il modo di rappresentare una lista con le strutture dati del Pascal
che più si avvicina all'idea di una sequenza di elementi di lunghezza
non predefinita, di carattere "dinamico", è quello offerto dall'uso
delle variabili di tipo "puntatore".
In generale si potrebbe parlare di due tipi di liste, quelle
monodirezionali e bidirezionali. In quelle monodirezionali puoi andare
solo in una direzione, di solito in avanti, mentre in quelle
bidirezionali puoi andare sia avanti che indietro.
Ma facciamo un esempio di definizione di una lista monodirezionale (che
è quella che ho fatto io) in linguaggio Pascal
type
  lista:^Nodo
  Nodo=record
         Dato:integer;
         Next:Lista;
       end;
Quella che ho scritto è la definizione di una lista di interi. Come puoi
vedere è una definizione un po' strana: usi una definizione, quella di
nodo, che ancora non è definita, ed utilizzo la definizione del campo
Next come tutta la struttura Nodo di cui fa parte; è una cosa un po'
inusuale, ed infatti è l'unico caso in cui sono concessi delle
definizioni dei dati in questa maniera.
Per accedere a questa struttura dati bisogna farlo con un puntatore
(chiamato iniziale) che risiede fuori dalla lista, percui per riferirsi
alla lista basta farlo tramite il puntatore alla lista.
Una caratteristica di questa struttura è la facilità di modifica: per
cancellare un nodo basta aggiornare il puntatore del suo predecessore
che dovrà puntare al successore del nodo cancellato.
In generale, se P è il puntatore, P^ è l'oggetto puntato.
Per inizializzare tutta questa struttura dati, e quindi basta farlo per
il puntatore iniziale, si usa la procedura pascal new(p) se p fosse il
puntatore iniziale alla lista.
Per ora direi basta, se hai altri problemi, scrivimi


 Che ne dite?
perfetto. quando si comincia ?

E magari si potrebbe aprire un sito dove mettere questo Manuale.
Io metto a disposizione la mia pagina (
http://gpi.eden.it/abc/delphi
)
Ciao !                        {MSX}

 concatenata? e una circolare?
Le liste di puntatori a records [immagino] sono uno degli innumerevoli campi
di impiego dei puntatori.
Nel tuo caso se per una lista doppiamente concatenata intendi quacosa che
abbia come nodo base un puntatore ad un record simile a questo
Type Nodo=record
             valore:integer;
             NodoPrima, NodoDopo:Nodo;
      end;
l'utilità sta nel fatto che puoi scrivere funzioni ricorsive che scorrano la
lista in entrambi i sensi della "catena"...
Se (ed è il caso della lista a concatenamento singolo) hai solo il puntatore
al record successivo non potrai mai "tornare su" ma potrai solo scorrere
verso il basso [escludiamo l'eventualità che l'ultimo nodo punti al primo {e
penso che questo caso sia quello che chiami "lista circolare"}]...
Molte volte capita di aver bisogno (anche solo per questioni di comodità) di
avere il riferimento al record precedente...
In che linguaggio stai lavorando? [Delphi?]


 In che linguaggio stai lavorando? [Delphi?]
si, ho iniziato ad usare delphi dalla 1°, comunque ne so un po di visual
basic, pascal, c, assembler. in effetti penso che il più comodo ed
funzionale sia delphi.
ciao
gna...@wappi.com

 funzionale sia delphi.
Sei fortunato: io (povero me) mi ritrovo (in 4a scientifico sperimentale) a
giochicchiare con TurboPascal [a livelli demenziali]....
