Lab 2009 #02

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
/*
METODI DI CREAZIONE DI MATRICI:
 
Per creare una matrice 3x3 di interi, 
senza inserire al suo interno dei valori
 
int[][] matrix = new int[3][3];
 
Per creare una matrice nxn di interi,
inserendo gli n valori al suo interno
 
int[][] matrix = {
			{1, 0, 0},
			{0, 1, 0},
			{0, 0, 1}
		};
 
Per poter accedere alla componente centrale
della matrice (che in questo caso contiene 1)
si deve indicare il numero di riga, il numero
di colonna, ricordando che la prima colonna
e la prima riga hanno indice 0.
 
int val_centrale = matrix[1][1];
 
---
 
La struttura di scelta composita, IF, prevede
una struttura di questo tipo:
 
if ( <condizione booleana> )
{
	...
	istruzioni
	...
}
else if ( <condizione booleana> )
{
	...
	istruzioni
	...
}
else 
{
	...
	istruzioni
	...
}
 
Ovviamente possono essere inseriti tanti else if
quanto è necessario, ma solamente un ultimo else.
 
---
 
La struttura di iterazione precondizionata, prevede
appunto prima dell'esecuzione delle istruzioni
da iterare il verificarsi di una condizione.
 
while ( <condizione booleana> )
{
	...
	istruzioni
	...
}
 
Se la condizione "d'entrata" non è mai verificata
l'iterazione non viene mai eseguita.
 
---
 
La struttura di iterazione postcondizionata,
prevede l'esecuzione delle istruzioni da iterare
almeno una volta, dopo di che viene controllata
la condizione "di uscita".
 
do {
	...
	istruzioni
	...
} while ( <condizione booleana> )
 
*/
public class Lab_20091119
{
	public static void main(String[] argv)
	{		
		//Creazione di una matrice 5x5
		int[][] matrix = new int[5][5];
 
		//Riempimento della matrice con numeri da 1 a 25
 
		//Inizializzazione di una variabile contatore
		int count = 0;
 
		//Creazione dei due for per lo scorrimento degli
		//elementi della matrice
		for ( int y=0; y<matrix.length; y++ )
		{
			for ( int x=0; x<matrix[y].length; x++ )
			{
				// Incremento del contatore
				// e assegnazione del valore alla componente
				// [x, y] della matrice
				matrix[y][x] = (++count);
			}
		}
 
		//Stampa della matrice come griglia 5x5
		for ( int y=0; y<matrix.length; y++ )
		{
			for ( int x=0; x<matrix[y].length; x++ )
			{
				System.out.printf("%3d",matrix[y][x]);
			}
			System.out.println();
		}
 
		//Utilizzo del while per la stampa della matrice
 
		//Inizializzazione della variabile contatore delle colonne
		//fuori dal ciclo di iterazione
		int y = 0;
 
		//Condizione d'uscita del primo while
		while ( y<matrix.length )
		{
			//Inizializzazione della variabile contatore
			//delle righe fuori dal ciclo di iterazione
			//più interno
			int x = 0;
 
			//Condizione d'uscita del secondo while
			while ( x<matrix[y].length )
			{
				//Stampa dei singoli valori della riga
				System.out.printf("%3d", matrix[y][x]);
 
				//Incremento del contatore delle righe
				x++;
			}
 
			//Incremento del contatore delle colonne
			y++;
 
			//Stampa un accapo per proseguire dalla riga successiva
			//alla prossima iterazione
			System.out.println();
		}
 
		//Utilizzo del do-while per la stampa della matrice
		//(il codice qui non è commentato perché identico al while)
 
		int Y = 0;
 
		do
		{
			int X = 0;
 
			do
			{
				System.out.printf("%3d", matrix[Y][X]);
				X++;
			}
			while (X<matrix[Y].length);
 
			Y++;
			System.out.println();
		}
		while (Y<matrix.length);
	}
}

About the Author

Hello everyone! I'm Andrea Rastelli, a 23 year old programmer, designer, 3D animator and compositor. You may follow me on Twitter and Facebook