Potresti mostrarmi un esempio su come calcolare la posizione di un elemento in una matrice multidimensionale.
È illustrato nel libro Concetto dei linguaggi di programmazione di Robert Sebesta che la posizione di un elemento è data dalla formula
location(a[i,j]) = address_of(a[1,1]) + ((i - 1)*n + (j - 1))*element_size
dove n
è il numero di elementi per riga e a[1,1]
è l'indirizzo di base (indicizzazione basata su 1).
Ho cercato di trovare la posizione di [5,5]
in una matrice 7 × 7, assumendo element_size=2
. Calcolando manualmente ho ottenuto il valore 66. Ma durante il calcolo utilizzando la formula ho ottenuto il valore 64:
location(a[5,5]) = 0 + ((4*7) + 4)*2 = 64
È corretto o no? Potresti dirmi come si è verificata la differenza di due.