M3 - Programació estructurada / Continguts UF1: Taules
De wikiserver
Taules (Arrays)
- Conjunt de variables que conté valors tots del mateix tipus.
- El nombre de posició de l'element s'anomena l'índex.
- Conté N element.
- Per referir-se als diferents elements de la taula s'utilitza el nom de la taula seguit per l'índex entre claudàtors ([]).
- Primer element de la taula té índex 0.
- Els elements són: c[0], c[1], c[2]...
Contingut
Declaració i creació de taules
- La següent declaració i expressió crea una taula, que conté 12 elements int, i emmagatzema la referència
de la taula en la variable c:
int c[] = new int[12];
- Aquesta tasca també pot realitzar-se en dos passos, com es mostra a continuació:
int c[ ]; // declara la variable taula c = new int[12]; // crea la taula; ho assigna a la variable tipus taula
- En crear una taula, cadascun dels seus elements rep un valor predeterminat: zero per als elements numèrics, false per als elements boolean.
- Quan es declara un taula, el seu tipus i els claudàtors poden combinar-se al principi de la declaració per indicar que tots els identificadors a la declaració són variables tipus taula. Per exemple, la declaració
double[] taula1, taula2;
- indica que taula1 i taula2 són variables tipus “taula de double”. L'anterior declaració és
- equivalent a:
double taula1[]; double taula2[]; o double[] taula1; double[] taula2;
Inicialització de taules
- Es pot crear un taula i inicialitzar els seus elements amb una llista d'expressions separades per comes (llista inicialitzadora) tancada entre claus ({ i });
- la longitud de la taula es determina sobre la base del nombre d'elements en la llista inicialitzadora. Per exemple,
la declaració:
int arrayEnters[] = { 10, 20, 30, 40, 50 };
- crea un taula de cinc elements amb els valors d'índexs 0, 1, 2, 3 i 4. L'element arrayEnters [0] s'inicialitza amb 10, arrayEnters [1] s'inicialitza amb 20, i així en endavant.
- Aquesta declaració no requereix que new creï l'objecte taula.
- La grandària de la taula queda determinada pel nombre d'elements de la llista inicialitzadora.
Manipulació de dades
- No és possible usar l’identificador de l’array directament per invocar operacions i així manipular les dades contingudes.
- Per exemple, no és possible fer el següent:
int[] a = {10, 20, 30, 40, 50}; int[] b = {50, 60, 70, 80, 100}; int[] c = a + b;
- Les dades emmagatzemades dins d’arrays nomès es poden manipular de manera individual, posició per posició.
- Cada posició d’un array té exactament el mateix comportament que una variable de tipus primitiu.
Exemples
Inicialització de la taula mitjançant codi
L’aplicació següent crea una taula de 10 elements i assigna a cada element un dels enters parells del 2 al 20.
- La propietat length es dóna la longitud d’una taula
public class InicialitzacioTaula {
public static void main(String args[]) {
final int LONGITUD = 10; // declara la constant
int taula[] = new int[LONGITUD]; // crea la taula
// calcula el valor per a cada element de la taula
int comptador = 0;
while (comptador < taula.length) {
taula[comptador] = 2 + 2 * comptador;
comptador++;
}
}
}
Sumar els elements d’una taula
<source lang="java">
public class SumaTaula { public static void main(String args[]) {
int taula[] = {87, 68, 94, 100, 83, 78, 85, 91, 76, 87}; int total = 0; // suma el valor de cada elemento al total int comptador = 0; while (comptador < taula.length) { total = total + taula[ comptador]; comptador++; } System.out.println("Total dels elements de la taula: "+ total); } }
</source