puntatori e tabelle
Moderatori:
dimaios,
carlomariamanenti
0
voti
[1] puntatori e tabelle
Buonasera a tutti, sono nuovo nel forum e spero possiate aiutarmi: Ho necessità di capire il funzionamento dei puntatori in quanto devo apportare delle modifiche a un softw esistente... il softw è stato creato con pl7pro, qualcuno puo aiutarmi?
-
m_dalpra
37,5k 6 10 12 - -EY Legend-

- Messaggi: 1155
- Iscritto il: 30 ago 2004, 11:04
- Località: Mestre (Venezia)
- Contatta:
2
voti
[2] Re: puntatori e tabelle
Non conosco il software che hai indicato, ma visto che nessuno per ora ti ha dato qualche "dritta" provo ad aiutarti
parlando in generale.
Un puntatore e' un numero, e' una variabile, ad esempio nel classico dei cicli che si fanno quando si studia informatica
FOR I:= 1 TO 10
PRINT I
NEXT
In questo caso I e' una coumunissima variabile del programma, ma se il programma usa una ARRAY o MATRICE,
allora I si dice che e' il suo puntatore; ad esempio, lo stesso programma di prima :
FOR I:=1 TO 10
PRINT Array[I]
NEXT
L'array o matrice e' come un albergo con tante camere numerate; in ogni camera c'e' un dato.
Se la matrice e' di interi, c'e' un numero; se la matrice e' di stringhe, c'e' un testo.
Il puntatore non e' altro che il numero che indica in quale camera dell'albergo stai leggendo o scrivendo un dato.
L'esempio vale per i PC ma anche per i PLC.
Spero di essere quantomeno riuscito a chiarire i concetti basilari.
Ciao
parlando in generale.
Un puntatore e' un numero, e' una variabile, ad esempio nel classico dei cicli che si fanno quando si studia informatica
FOR I:= 1 TO 10
PRINT I
NEXT
In questo caso I e' una coumunissima variabile del programma, ma se il programma usa una ARRAY o MATRICE,
allora I si dice che e' il suo puntatore; ad esempio, lo stesso programma di prima :
FOR I:=1 TO 10
PRINT Array[I]
NEXT
L'array o matrice e' come un albergo con tante camere numerate; in ogni camera c'e' un dato.
Se la matrice e' di interi, c'e' un numero; se la matrice e' di stringhe, c'e' un testo.
Il puntatore non e' altro che il numero che indica in quale camera dell'albergo stai leggendo o scrivendo un dato.
L'esempio vale per i PC ma anche per i PLC.
Spero di essere quantomeno riuscito a chiarire i concetti basilari.
Ciao
Marco
Quel che ci dà la vera forza per affrontare con piacere la vita è il sentirsi utile agli altri. z.m.
Quel che ci dà la vera forza per affrontare con piacere la vita è il sentirsi utile agli altri. z.m.
0
voti
[3] Re: puntatori e tabelle
detto piu' volgarmente il puntatore e' si' un "contenitore" ... ma il suo contenuto e' l'indirizzo di un altro "contenitore" ;P
cioe' un riferimento
e' come se ti dico:
Pi = 3.14 (salvato nell'indirizzo 0x0000001)
rif = &Pi
rif = 0x0000001
cioe' un riferimento
e' come se ti dico:
Pi = 3.14 (salvato nell'indirizzo 0x0000001)
rif = &Pi
rif = 0x0000001
-
Ivan_Iamoni
5.336 6 10 12 - Utente disattivato per decisione dell'amministrazione proprietaria del sito
- Messaggi: 2330
- Iscritto il: 22 ott 2006, 18:45
0
voti
[4] Re: puntatori e tabelle
L'esempio di Marco è molto contorto, e si chiarisce solo nell'ultima parte , vale a dire:
Quello che ha scritto Pylum è più chiaro , salvo il fatto che un puntatore può contenere un valore che sia l'indirizzo del dato a cui puntare , ma anche il contenuto del dato puntato , dipende dalla sua sintassi.
Questo chiaramente per i PLC .
Effettivamente il formato "pointer" e l'indirizzamento indiretto è una cosa molto lunga da spiegare in un post.
Ciao
Ivan
Il puntatore non e' altro che il numero che indica in quale camera dell'albergo stai leggendo o scrivendo un dato.
L'esempio vale per i PC ma anche per i PLC.
Quello che ha scritto Pylum è più chiaro , salvo il fatto che un puntatore può contenere un valore che sia l'indirizzo del dato a cui puntare , ma anche il contenuto del dato puntato , dipende dalla sua sintassi.
Questo chiaramente per i PLC .
Effettivamente il formato "pointer" e l'indirizzamento indiretto è una cosa molto lunga da spiegare in un post.
Ciao
Ivan
0
voti
[5] Re: puntatori e tabelle
PHYLUM!
pls stop coi Philum/Pylum/Phykum
pero' attenzione : un puntatore NON contiene
come dici tu - cambiando la sintassi (in C col * - in PLC nn ne ho idea
) ottieni l'accesso al dato puntato! la trovo una differenza importante perche' una variabile o un array da 1 giga lo vedo... un puntatore che nn sia tra 8 e 128 bit e' difficile trovarlo.
pls stop coi Philum/Pylum/Phykum
pero' attenzione : un puntatore NON contiene
-
Ivan_Iamoni
5.336 6 10 12 - Utente disattivato per decisione dell'amministrazione proprietaria del sito
- Messaggi: 2330
- Iscritto il: 22 ott 2006, 18:45
0
voti
[6] Re: puntatori e tabelle
Scusami , Stella.
Invece io non so in C , ma nel PLC dell'esempio che ti riportavo è proprio quello classico.
Essendo stata la richiesta di chiarimenti sul puntatore in PL7 (linguaggio di programmazione dei TXS premium) se non sbaglio.
Sintassi &...registro ,scrive nel registro il valore di indirizzo dato dal tipo di area (V) in questo caso e suo numero di identificazione.
E' un intero a 32 bit.
Nei PLC il dato è "finito" in formato Pointer è una D.word
Questo dato di tipo pointer, lo si può sommare o moltiplicare per un'altra costante , a proprio piacimento andando a modificare l'indirizzo dinamicamente.
Sintassi *...registro , scrive nella destinazione assegnata il valore del contenuto del dato il cui indirizzo è specificato nel registro stesso.
Oppure
Intendo dire che il dato puntatore o il registro ACx associato ad esso è un dato bi-direzionale.
Con la corretta sintassi può fornire l'informazione dell'indirizzo o il contenuto dell'indirizzo stesso.
Nel caso di dati "complessi come può essere una stringa , una matrice o array , il registro contiene solo le prime due word del dato stesso.
Per utilizzarle si usano i comandi di raggruppamento che sono BLOCKMOVE...X dove x è la lunghezza dell'area di memoria.
Scrive il contenuto a partire da VD1000 per 6 Dword , a partire da VD616 per 6 Dword a seguire.
Questa sintassi si usa nel caso le dimensioni del dato siano superiori ai 32 bit.
Spero di essere stato più chiaro.
Ciao
Ivan
Invece io non so in C , ma nel PLC dell'esempio che ti riportavo è proprio quello classico.
Essendo stata la richiesta di chiarimenti sul puntatore in PL7 (linguaggio di programmazione dei TXS premium) se non sbaglio.
Sintassi &...registro ,scrive nel registro il valore di indirizzo dato dal tipo di area (V) in questo caso e suo numero di identificazione.
Scrive nel registro AC1 l'indirizzo VB1000.MOVD &VB1000, AC2
E' un intero a 32 bit.
Nei PLC il dato è "finito" in formato Pointer è una D.word
Questo dato di tipo pointer, lo si può sommare o moltiplicare per un'altra costante , a proprio piacimento andando a modificare l'indirizzo dinamicamente.
Sintassi *...registro , scrive nella destinazione assegnata il valore del contenuto del dato il cui indirizzo è specificato nel registro stesso.
Scrive nel registro AC2 l'indirizzo VB1000 contenuto nell'accumulatore AC1.MOVD *AC1, AC2
Oppure
Scrive solo il dato contenuto nella prima word (VB1000+VB1001) nella word VW100.MOVw *AC1, vw10
Intendo dire che il dato puntatore o il registro ACx associato ad esso è un dato bi-direzionale.
Con la corretta sintassi può fornire l'informazione dell'indirizzo o il contenuto dell'indirizzo stesso.
Codice: Seleziona tutto
MOVW *AC1, LW8Nel caso di dati "complessi come può essere una stringa , una matrice o array , il registro contiene solo le prime due word del dato stesso.
Per utilizzarle si usano i comandi di raggruppamento che sono BLOCKMOVE...X dove x è la lunghezza dell'area di memoria.
Codice: Seleziona tutto
BMD *AC1, VD616, 6Questa sintassi si usa nel caso le dimensioni del dato siano superiori ai 32 bit.
Spero di essere stato più chiaro.
Ciao
Ivan

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)



