Sei sulla pagina 1di 5

Inizializzazione e stampa di array

Introduzione
In precedenza abbiamo visto che linizializzazione di un array pu creare problemi quando il numero di elementi elevato. Nel seguito viene proposto un algoritmo per linizializzazione di array che utilizza un ciclo con contatore e che da preferire alla valorizzazione elemento per elemento. Infine viene presentato anche un algoritmo per la stampa a video di un array.

Inizializzazione di array
Vedremo ora un algoritmo per inizializzare un array di interi. Lo stesso algoritmo, con le opportune modifiche sui dati, pu essere utilizzato per array di qualunque tipo base. TABELLA DATI ID a[] i DIM Descrizione array di interi indice dellarray e contatore di ciclo Dimensione dellarray I/O/L/C I L C 4 Valore Iniz. Tipo intero* intero intero Vincoli

* Nella colonna Tipo, per un array, viene riportato il tipo base. FLOW CHART
Start i= 0 2 i<DIM V 3 output(Inserire un intero) 4 5 input(a[i]) i= i+1 F 1

End

Autore: Cinzia Bocchi Ultimo aggiornamento: 20/09/11

Simulazione dellalgoritmo Supponiamo di voler inizializzare larray a nel seguente modo. situazione finale desiderata

a :
100 0 50 1 81 2 23 3

indici

situazione iniziale

a :

indici

i
ciclo istruz 1 2 3-4 5 i 0 a[0] a[1] a[2] a[3] condizione Vera 100 1

situazione dopo il primo ciclo

a :
100 0 1 2 3

indici

i
ciclo istruz 1 2 3-4 5 2 3-4 5 i 0 a[0] a[1] a[2] a[3] condizione Vera 100 1 Vera 50 2

Autore: Cinzia Bocchi Ultimo aggiornamento: 20/09/11

situazione dopo il secondo ciclo

a :
100 0 50 1 2 3

indici

i
ciclo istruz 1 2 3-4 5 2 3-4 5 2 3-4 5 i 0 a[0] a[1] a[2] a[3] condizione Vera 100 1 Vera 50 2 Vera 81 3

situazione dopo il terzo ciclo

a :
100 0 50 1 81 2 3

indici

i
ciclo istruz 1 2 3-4 5 2 3-4 5 2 3-4 5 2 3-4 5 i 0 a[0] a[1] a[2] a[3] condizione Vera 100 1 Vera 50 2 Vera 81 3 Vera 23 4

Autore: Cinzia Bocchi Ultimo aggiornamento: 20/09/11

situazione dopo il quarto ciclo

a :
100 0 50 1 81 2 23 3

indici

i
ciclo istruz 1 2 3-4 5 2 3-4 5 2 3-4 5 2 3-4 5 2 i 0 a[0] a[1] a[2] a[3] condizione Vera 100 1 Vera 50 2 Vera 81 3 Vera 23 4 Falsa

Osservazione Lindice i si sposta lungo larray consentendo di valorizzare ciascun elemento. Fate attenzione ad utilizzare un valore di indice compreso tra 0 e DIM-1. In caso contrario verr segnalato un errore. Lascio a voi il compito di individuarlo. Codifica Java Vediamo in seguito due possibili codifiche: una con lo statement FOR e laltra con lo statement WHILE.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 import javax.swing.*; class InitArray { public static void main(String args[]) { //Dichiarazioni final int DIM= 4; int a[]= new int[DIM]; int i; //Istruzioni for(i=0;i<DIM;i++) { a[i]= Integer.parseInt(JOptionPane.showInputDialog("Inserire l'intero in posizione "+i)); } System.exit(0);

Autore: Cinzia Bocchi Ultimo aggiornamento: 20/09/11

16 17

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18

import javax.swing.*; class InitArray { public static void main(String args[]) { //Dichiarazioni final int DIM= 4; int a[]= new int[DIM]; int i=0; //Istruzioni while(i<DIM) { a[i]= Integer.parseInt(JOptionPane.showInputDialog("Inserire l'intero in posizione "+i)); i++; } System.exit(0); } }

Stampa di array
La stampa a video di un array avviene in maniera simile allinizializzazione. Propongo solo lalgoritmo, lasciando a voi la simulazione e la codifica come esercizio.
Start i= 0 2 i<DIM V 3 output(a[i]) i= i+1 F 1

End

Quest'opera stata rilasciata con licenza Creative Commons Attribution-ShareAlike 3.0 Unported. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-sa/3.0/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.

Autore: Cinzia Bocchi Ultimo aggiornamento: 20/09/11