Diferència entre revisions de la pàgina «M3 - Programació estructurada / Continguts UF1: Taules»

De wikiserver
Dreceres ràpides: navegació, cerca
(Exemples)
(Exemples)
Línia 115: Línia 115:
 
     }
 
     }
 
   }
 
   }
</source
+
</source>
  
 
==Emmagatzematge de l’entrada de dades en una taula==
 
==Emmagatzematge de l’entrada de dades en una taula==

Revisió del 13:00, 17 feb 2018

Taules (Arrays)

  • Conjunt de variables que conté valors tots del mateix tipus.
  • El nombre de posició de l'element s'anomena l'índex.
Taules
  • 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]...

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.
Taules

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

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);
     }
   }

Emmagatzematge de l’entrada de dades en una taula

Entrada de seqüències de valors per teclat

Tractament seqüencial de taules

La sentència for

Recorregut de taules

La sentència for millorada

Cerca seqüencial en taules

Cerca seqüencial en taules ordenades

Taules multidimensionals

Taules bidimensionals amb files de diferents longituds

Creació de taules bidimensionals

Recorregut en taules bidimensionals

Cerca en taules bidimensionals