Page 1 of 1

Array multidimensionali

PostPosted: 08 Apr 2013, 18:29
by anoir2
È possibile usare array multidimensionali su bascom? Se si, come? Vi ringrazio per la pazienza :)

Re: Array multidimensionali

PostPosted: 08 Apr 2013, 19:10
by Fagos
@anoir2, la funzione non è nativa ma e' possibilissimo, basta implementare 2 funzioni.
- una per settare l'array bidimensionale
- una per prelevare il valore dall'array bidimensionale

ciao

Re: Array multidimensionali

PostPosted: 09 Apr 2013, 07:41
by filosofo
@Anoir
quante dimensioni ti servono? inoltre, l'array è di tipo byte, word, o altro tipo?
poichè un array di 10*10 elementi byte si magnano 100byte di ram
ma già 10*10 di elementi double occupano 100*8 = 800 byte (non poco per un avr)

Re: Array multidimensionali

PostPosted: 09 Apr 2013, 07:57
by anoir2
deve essere un array di byte... 2 dimensioni

Re: Array multidimensionali

PostPosted: 09 Apr 2013, 09:24
by deluca
@anoir,
il bascom non supporta array a 2 dimensioni.
ma realizzare le funzioni per supportarle è semplicissimo come ha già detto @fagos.

questo un esempio di come dichiarare le funzioni:
Code: Select all
Const arrayd1 = 10                                         ' dimensione 1
Const arrayd2 = 10                                         ' dimensione 2
Const arrayd1d2 = arrayd1 * arrayd2               ' calcolo elementi in 2d-Array (100)

Declare Function Get_array2d(byval D1 As Byte, Byval D2 As Byte) As Byte
Declare Sub Set_array2d(byval D1 As Byte, Byval D2 As Byte, Byval Pvalue As Byte)
Dim Darray2d(arrayd1d2) As Byte                   'riserva n byte in memoria per l'array


Dimmi se sai come continuare...... se nò sono costretto a scrivervi il codice apposta

Re: Array multidimensionali

PostPosted: 09 Apr 2013, 11:05
by anoir2
Vabbe, è un array ad una sola dimensione che si utilizza con due for nidificati allora.. come avevo pensato già... Vabbe, vi ringrazio, saluti :D

Re: Array multidimensionali

PostPosted: 09 Apr 2013, 11:10
by deluca
@anoir, nessun vabbe!!
Non viene utilizzato nessun ciclo for,
vengono trattate come se fossero dei puntatori, il ciclo for non c'entra nulla. ;)