Pagina Iniziale | Preferiti Comunity: Login | Registrati | Newsletter | Forum | Concorsi Newsgroup
Canali: Hardware | Software | Files | Webmaster | Cellulari | Shop
Nel sito: News | Articoli | Files | Manuali | Consigli PC | Schede cellulari | Programmaz. | Hosting | Motori Ricerca | Glossario | Link
Servizi: Shopping | Forum | Crea un BLOG | Cartucce Compatibili | Tool News |   Sponsor: Automazione Industriale
  Articoli

Recensioni
Consigli per PC


  News e files

Software
Telefonia
Internet
Tecnologia
Files e Download


  Manualistica

Guide HW/SW
Scripts ASP
Scripts HTML
Scripts Java
Scripts Delphi
Glossario


  Shopping

Hardware
Software e Giochi
Elettronica
Cinema e Film
Console e Accessori
Prodotti Ufficio
Formazione e Corsi

Tieniti aggiornato sul mondo della tecnologia con la nostra newsletter!
La tecnologia sulla tua
casella e-mail

[Info Newsletter]


Concessionaria Pubblicitaria

<< News Precedente [Fine Pagina] News Successiva >>
Array e matrici dinamiche

Un articolo di: Stefano Zilli del 07/02/2003      Letture: 21722

Uno dei vantaggi degli array e delle matrici rispetto alle liste è che è possibile accedere ad un elemento qualunque semplicemente usando l'indice. Questo però comporta uno svantaggio che consiste nella dimensione fissa definita in fase di progettazione degli array cosa che non avviene invece per le liste in quanto sono create e ridimensionate a run-time.

In questo script vedremo come creare degli array o matrici in modo dinamico mantenendo il vantaggio di poter accedere direttamente agli elementi tramite indice e la possibilità di ridimensionare l'array o matrice.
Delphi permette infatti di definire un array dinamico semplicemente omettendo di scrivere la sua lunghezza:
var
  // Array a dimensione fisssa
  ArrayFisso:array [0..9] of integer;
  // Array a dimensione dinamica
  ArrayDinamico: array of integer;   
   // Matrice a dimensione fissa
  MatriceDinamica: array of array of integer;
Come possiamo notare nella seconda e terza dichiarazione non abbiamo indicato la dimensione. Le matrici inoltre si dichiarano come array di array, questo permette di creare matrici rettangolari/quadrate o a dimensione indipendente per ogni colonna. Ma vediamo adesso come inizializzare questi array ad una dimensione voluta a run-time:
var Dimensione:integer;
  ...
  Dimensione:=33;
  SetLength(ArrayDinamico,Dimensione);
  ...
  Dimensione:=58;
  SetLength(ArrayDinamico,Dimensione);
  ...
  Dimensione:=10;
  SetLength(ArrayDinamico,Dimensione);
Con l'istruzione SetLength abbiamo allocato dinamicamente un array di 33 elementi. E' possibile ridimensionare successivamente l'array richiamando nuovamente la funzione SetLength con un nuovo valore. Nel caso la nuova dimensione sia maggiore di quella precedente, gli elementi già presenti verranno conservati, se si tratta di un ridimensionamento verso il basso gli elementi oltre il nuovo indice non saranno più accessibili tramite l'array.
Vediamo ora come allocare le matrici in modo dinamico:
  ...
  Dimensione:=10;
  SetLength(MatriceDinamica,Dimensione,Dimensione*2);
In questo modo abbiamo allocato una matrice con 10 colonne e 20 righe ma è anche possibile allocare una matrice con un numero di righe diverse per ogni colonna:
  ...
  SetLength(MatriceDinamica,4);
  SetLength(MatriceDinamica[1],2);
  SetLength(MatriceDinamica[2],4);
  SetLength(MatriceDinamica[3],8);
  SetLength(MatriceDinamica[4],16);
In questo modo abbiamo prima creato le 4 colonne e poi abbiamo allocato per ogni colonna (tramite utilizzando la posizione MatriceDinamica[i]) un valore diverso di righe.

Una volta allocati, gli array e le matrci dinamiche vengono utilizzati come normali array o matrici accedendo all'elemento nel solito modo.



[Indietro]    [Su]      [Home]      [Commenti]      [V. Stampabile]

Commento di Anonimo (ip: 80.16.184.65), scritto il 19/02/2005 alle 10:53:06
GRADEVOLE ARTICOLO

Commento di Anonimo (ip: 85.33.216.91), scritto il 28/11/2006 alle 12:18:07
il mio pc da ieri presenta il messaggio: no array defined, press F1 to repair.come fare per risolvere?

Commento di Anonimo (ip: 196.206.191.85), scritto il 10/05/2007 alle 17:08:02
gggggggggggggggggggg hhh

Commenta questa notizia:
Non hai ancora fatto il
Login, puoi inserire commenti solo come anonimo.
ATTENZIONE: il tuo IP verrà memorizzato e mostrato a fianco del commento; con la pressione del tasto invia commento si esprime il consenso alla pubblicazione di tale informazione personale.
A discrezione dello staff, i commenti ritenuti non adatti od offensivi potranno essere rimossi. Nel caso di utilizzo di espressioni volgari od offensive il comportamento verrà segnalato al provider interessato.
Se non ti sei ancora registrato, cosa aspetti? Registrati subito.

Da ora puoi discutere dei problemi informatici anche sul nostro FORUM

Testo del commento:


  News correlate
 Array e matrici dinamiche
 Finestra "Trova file o cartella"
 Verificare se il Drive "A:" è pronto
 Leggere e scrivere lo stato della tastiera
 Usare il registro di Windows
 Quake2 da Visual C a Delphi
 Percorso dell'applicazione
 Disabilitare i tasti Alt+Tab e Ctrl+Esc
  Ultime dal Forum

david sedaris essays love
free essay on annual sports day
internal employee relations case studies
informal essay on global warming
aricept side effects elderly
sample college admissions essay prompts
thesis presented for the degree
sample essay benefits computer
baylor graduate school dissertation

Comunicazioni / Note Legali / Staff / Collabora / Pubblicità / Privacy / Contatti


Triboo Media s.r.l. (società socio unico) - Viale Sarca 336 - Edificio 16, 20126 Milano (MI) Cap. Soc. 1.250.000,00 euro i.v. - P.IVA, C.F. e CCIAA di Milano IT06933670967 - REA MI-1924178 tel. +39 02 64741470 - fax +39 02 64741494 Società sottoposta alla direzione e coordinamento di TRIBOO SPA - all rights reserved CAP. SOC. EURO 28.740.210 I.V. - P.IVA 02387250307 - COD. FISC. e numero iscrizione al registro delle imprese CCIAA MI : 02387250307 tel.+39 02 64741401 - fax + 39 02 64741491. Utenti Connessi: 258


Pagina creata in 0,08sec. Powered by JuiceADV S.r.l.

Stats v0.1 (0,016sec.)