/* *************************************************************************
* Ora introdurremo gli Array.
* Un array e' un'insieme di elementi dello stesso tipo, cui e' possibile
* accedere tramite un indice, che e' il numero dell'elemento, partendo da
* zero. Per esempio con indice 0 si accede al primo elemento, con indice
* 3 si accede al quarto elemento. Questi elementi possono essere delle
* variabili INT,FLOAT, o di altro tipo.
* Da notare che gli indici sono numeri interi non negativi, e vanno da
* 0 a n-1, dove n e' il numero di elementi.
* Gli indici possono essere variabili di tipo int, short, byte.
* Agli array si da un nome a piacere, col quale identificheremo tutti gli
* elementi (variabili) che lo compongono. In altre parole gli elementi
* condividono lo stesso nome (quello dell'array).
* Gli array in java sono degli oggetti, a differenza del C, ed esiste
* un controllo su di essi, in modo da non poter scrivere oltre il loro
* limite: se si tenta di accedere ad un array con un indice superiore
* all'ultimo elemento si genera un'eccezione ArrayIndexOutOfBounds (indice
* fuori dai margini). Essendo oggetti non basta dichiararli con:
*
* Tipo[] nome; -> Esempio: int[] mioarray;
*
* Ma occorre anche istanziarli, allocando memoria per essi, tramite
* l'operatore "new", in questo modo:
*
* int[] mioarray = new int[10];
*
* In questo caso dichiariamo e allochiamo un array, composto da 10 interi,
* di nome mioarray. Il suo indice andra' da 0 a 9.
* Si puo' anche inizializzare subito:
*
* int[] mioarray = {35,21,28,123,321};
*
* Dichiarando i suoi elementi, si alloca come con l'operatore "new": questo
* array avra' 5 elementi, con indice da 0 a 4.
* Pre leggere e scrivere nell'array si usera' questa forma:
*
* mioarray[0]=3; * Metto nel primo elemento il valore 3 *
*
* Il numero che mettiamo tra parentesi quadre e' l'indice, ossia il numero
* di elemento dell'array, partendo da 0.
* Facciamo una prima prova con gli array.
************************************************************************* */
import java.io.*; // Include le funzioni I/O standard di base.
class Jlez3a { // Da qua inizia la classe Jlez3a
public static void main(String args[]) // Definiamo il metodo Main.
{ // Inizio del main()
int[] prova = new int[4]; // Un array con 4 elementi interi, che
// quindi avra' indici da 0 a 3
prova[0]=20; // Mettiamo un 20 nel primo elemento dell'array
System.out.println("\nChe valore metto nel secondo elemento?");
int pippo = leggiInt(); // Chiamo il metodo "int leggiInt()"
prova[1] = pippo; // Copiamo pippo nel secondo elemento...
pippo *= 2; // Equivalente a pippo = pippo*2
prova[2] = pippo; // Il terzo elemento vale pippo*2
pippo = prova[0] + prova[1];
prova[3] = pippo; // Il quarto elemento e' uguale al primo
// piu' il secondo
System.out.println("\nIl primo elemento vale " + prova[0]);
System.out.println("\nIl secondo elemento vale " + prova[1]);
System.out.println("\nIl terzo elemento vale " + prova[2]);
System.out.println("\nIl quarto elemento vale " + prova[3]);
} // Fine del metodo principale Main()
/* -------------------------------------------------------------------------
* Ora definiamo un metodo chiamato leggiInt(), che in entrata non ha
* parametri, e in uscita restituisce un numero intero immesso da tastiera.
* int leggiInt()
* ----------------------------------------------------------------------- */
public static int leggiInt()
{
try {
DataInputStream leggilo = new DataInputStream(System.in);
String stringa = leggilo.readLine(); // dichiaro e leggo stringa.
return(Integer.valueOf(stringa).intValue()); // e la converto in int.
}
catch (Exception e) {
System.out.println("Errore: " + e + " nella lettura da tastiera");
System.exit(0);
return(-1); // Questo return serve solo perche' il metodo
// abbia un int di ritorno anche in caso di errore
}
} // Fine di "int leggiInt()"
} // Fine della classe Jlez3a
