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 | Hosting Aruba | 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: 10187

25,10 Euro
Famiglie - dinamiche interpersonali e processi psico-sociali da HOEPLI.it



  Buono sconto 4% su Toner e Cartucce agli utenti AZpoint. SU Iomiricarico.it!!

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


Domini Email SpazioWeb
a partire da € 9.99+IVA annui


  Ultime dal Forum

Guadagnare soldi con GDI
PinkPTC
Fai lavorare i tuoi soldi
PAGANTE
L'unica PTC che ti permette di acquistare i ref
ptc paganti
Paid to click nuova PTC pagante alti guadagni
alice adsl a 7 mega con modem vecchio
IERI SERA VINTI 230 EURO SEGUENDO LA GUIDA..

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


Copyright ZETA TECH S.r.l. (P.IVA : 02387250307), tutti i diritti riservati Utenti Connessi: 532

Programmi


Pagina creata in 0.59sec. Powered by Zeta Tech S.r.l.

Stats v0.1 (0.000sec.)