SlideShare a Scribd company logo
2D arraya eta objetu
      arrayak
              ´
       Aitor Gomez-Goiri
    aitor.gomez@deusto.es

       Deustuko Unibertsitatea
        Ingeniaritza fakultatea
       http://www.deusto.es


           2012/01/31
Aurkezpena


  1   Zer da objektu arraya?


  2   Zertarako bi dimentsio?


  3   Zer da 2D arraya?


  4   Nola erabili?


  5   Gogoratu beharrekoak
Aurkezpena


  1   Zer da objektu arraya?

  2   Zertarako bi dimentsio?

  3   Zer da 2D arraya?

  4   Nola erabili?

  5   Gogoratu beharrekoak
Zer da objektu arraya?




     Posizio bakoitzean oinarrizko motako datu bat eduki ordez
     objektu jakin bat duen arraya da.
         String, Pertsona, etab.
Adibidea I




  Pertsona[] erabiltzaileak = new Pertsona[4];
Adibidea II



   Pertsona[] erabiltzaileak = new Pertsona[4];
   erabiltzaileak[0] = new Pertsona("Ander");
Adibidea III



   Pertsona[] erabiltzaileak = new Pertsona[4];
   erabiltzaileak[0] = new Pertsona("Ander");
   erabiltzaileak[3] = new Pertsona("Irati");
Adibidea IV



  Pertsona[] erabiltzaileak = new Pertsona[4];
  erabiltzaileak[0] = new Pertsona("Ander");
  erabiltzaileak[3] = new Pertsona("Irati");
  erabiltzaileak[1] = new Pertsona("Mikel");
Adibidea V


  Pertsona[] erabiltzaileak = new Pertsona[4];
  erabiltzaileak[0] = new Pertsona("Ander");
  erabiltzaileak[3] = new Pertsona("Irati");
  erabiltzaileak[1] = new Pertsona("Mikel");
  erabiltzaileak[2] = new Pertsona("Jon");
Aurkezpena


  1   Zer da objektu arraya?

  2   Zertarako bi dimentsio?

  3   Zer da 2D arraya?

  4   Nola erabili?

  5   Gogoratu beharrekoak
Zertarako bi dimentsio? I
      Non aurki dezakegu 2Da?
         Autobusean, hegazkinean, zineman, San Mamesen...
Zertarako bi dimentsio? II

      Taulak egiteko


  Table: Pertsona ¿ezagun, garrantzitsu? batzuen izen, abizenak eta
  jaiotze datak.

                 Izena     Abizena      Jaiotze data
                 James     Gosling      1955/05/19
                 Mike      Sheridan     ?/?/?
                 Patrick   Naughton     1965/?/?
                 Joshua    Bloch        1961/08/28
                 Brian     Goetz        ?/?/?
Zertarako bi dimentsio? III




    Eraikina (pisua, klasea)
        E302 → [ESIDE][3][02]
Zertarako bi dimentsio? IV



     Matrizeak
Zertarako bi dimentsio? V
     ...baita irudietan ere!
Aurkezpena


  1   Zer da objektu arraya?

  2   Zertarako bi dimentsio?

  3   Zer da 2D arraya?

  4   Nola erabili?

  5   Gogoratu beharrekoak
Zer da 2D arraya?
     Bi dimentsiotako arraya == arraydun arraya
Aurkezpena


  1   Zer da objektu arraya?

  2   Zertarako bi dimentsio?

  3   Zer da 2D arraya?

  4   Nola erabili?

  5   Gogoratu beharrekoak
Nola deklaratu eta ibili?

   /* 4 ilara eta 3 zutabeko "irudia" izena duen
      arraya sortzeko: */
   int[][] irudia = new int[4][3];


   /* azken ilararen (laugarrena, 3 posizioa) azken
   zutabean (hirugarrena, 2 posizioa) 3 balioa ezartzen
   dugu*/
   irudia[3][2] = 3;


   /* Array ibilketa */
   for(int i=0; i<irudia.length; i++)
     for(int j=0; i<irudia[i].length; j++)
       zeozerEgin(irudia[i,j]);
Aurkezpena


  1   Zer da objektu arraya?

  2   Zertarako bi dimentsio?

  3   Zer da 2D arraya?

  4   Nola erabili?

  5   Gogoratu beharrekoak
Gogoratu


  int[][] irudia = new int[4][3];

  // 1. dimentsioak 4 elementuko luzeera du (0tik 3ra)
  // 2. dimentsioak 3 elementuko luzeera du (0tik 2ra)

  irudia.length //   bere balioa: 4
  irudia[0].length   // bere balioa: 3
  irudia[3].length   // bere balioa: 3
  irudia[4].length   // ArrayIndexOutOfBoundsException

  irudia[0] // 0 posizioan dagoen 3 int dituen arraya
  irudia[2] // 2 posizioan dagoen 3 int dituen arraya

  irudia[2][2] // 2,2 posizioan dagoen int elementua
  irudia[2][3] // ArrayIndexOutOfBoundsException (2. dimentsioan)
Ohiko akatsak I
  // EZ: luzeerak parametroz pasatu
  public void arrayaErakutsi(int lehenengoDimLuzeera,
                             int bigarrenDimLuzeera,
                             int[][] biDArraya) {
    for(int i=0; i<lehenengoDimLuzeera; i++) {
      for(int j=0; j<bigarrenDimLuzeera; j++) {
        biDArraya[i][j] = biDArraya[i][j] * 2;
      }
    }
  }

  //BAI
  public void arrayaErakutsi(int[][] biDArraya) {
    for(int i=0; i<biDArraya.length; i++) {
      for(int j=0; j<biDArraya[i].length; j++) {
        biDArraya[i][j] = biDArraya[i][j] * 2;
      }
    }
  }
Ohiko akatsak II
  // EZ: 2. dimentsioan dagoen 0. elementuaren luzeera atera beti
  public void arrayaErakutsi(int[][] biDArraya) {
    for(int i=0; i<biDArraya.length; i++) {
      // Ondo dabil, biDArraya[0].length==biDArraya[1].length, etab.
      // delako, baina kontzeptualki ez da oso polita
      for(int j=0; j<biDArraya[0].length; j++) {
        biDArraya[i][j] = biDArraya[i][j] * 2;
      }
    }
  }

  //BAI: kontzeptualki hobe ibiliko dugun arrayaren
  //      luzeera ateratzen badugu
  public void arrayaErakutsi(int[][] biDArraya) {
     for(int i=0; i<biDArraya.length; i++) {
       for(int j=0; j<biDArraya[i].length; j++) {
         biDArraya[i][j] = biDArraya[i][j] * 2;
       }
     }
  }
Lizentzia


      Irudien guztien jabetza intelektuala bere egileena* da,
        gainontzeko edukiak Creative Commons by-sa 3.0
                        lizentziapean daude.




         * Hobvias Sudoneighm, Dystopos eta yyycatch.

More Related Content

More from Open University, KMi

Egitura linealak
Egitura linealakEgitura linealak
Egitura linealak
Open University, KMi
 
Konposizioa, herentzia eta polimorfismoa
Konposizioa, herentzia eta  polimorfismoa Konposizioa, herentzia eta  polimorfismoa
Konposizioa, herentzia eta polimorfismoa
Open University, KMi
 
Fitxategiak
FitxategiakFitxategiak
"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011
"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011
"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011
Open University, KMi
 
A Triple Space-Based Semantic Distributed Middleware for Internet of Things
A Triple Space-Based Semantic Distributed Middleware for Internet of ThingsA Triple Space-Based Semantic Distributed Middleware for Internet of Things
A Triple Space-Based Semantic Distributed Middleware for Internet of Things
Open University, KMi
 
Presentacion Defensa
Presentacion DefensaPresentacion Defensa
Presentacion Defensa
Open University, KMi
 
Introducción a PHP5
Introducción a PHP5Introducción a PHP5
Introducción a PHP5
Open University, KMi
 
Introducción a PHP5
Introducción a PHP5Introducción a PHP5
Introducción a PHP5
Open University, KMi
 

More from Open University, KMi (8)

Egitura linealak
Egitura linealakEgitura linealak
Egitura linealak
 
Konposizioa, herentzia eta polimorfismoa
Konposizioa, herentzia eta  polimorfismoa Konposizioa, herentzia eta  polimorfismoa
Konposizioa, herentzia eta polimorfismoa
 
Fitxategiak
FitxategiakFitxategiak
Fitxategiak
 
"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011
"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011
"On the complementarity of Triple Spaces and the Web of Things" poster @ WoT2011
 
A Triple Space-Based Semantic Distributed Middleware for Internet of Things
A Triple Space-Based Semantic Distributed Middleware for Internet of ThingsA Triple Space-Based Semantic Distributed Middleware for Internet of Things
A Triple Space-Based Semantic Distributed Middleware for Internet of Things
 
Presentacion Defensa
Presentacion DefensaPresentacion Defensa
Presentacion Defensa
 
Introducción a PHP5
Introducción a PHP5Introducción a PHP5
Introducción a PHP5
 
Introducción a PHP5
Introducción a PHP5Introducción a PHP5
Introducción a PHP5
 

2D arraya eta objetu arrayak

  • 1. 2D arraya eta objetu arrayak ´ Aitor Gomez-Goiri aitor.gomez@deusto.es Deustuko Unibertsitatea Ingeniaritza fakultatea http://www.deusto.es 2012/01/31
  • 2. Aurkezpena 1 Zer da objektu arraya? 2 Zertarako bi dimentsio? 3 Zer da 2D arraya? 4 Nola erabili? 5 Gogoratu beharrekoak
  • 3. Aurkezpena 1 Zer da objektu arraya? 2 Zertarako bi dimentsio? 3 Zer da 2D arraya? 4 Nola erabili? 5 Gogoratu beharrekoak
  • 4. Zer da objektu arraya? Posizio bakoitzean oinarrizko motako datu bat eduki ordez objektu jakin bat duen arraya da. String, Pertsona, etab.
  • 5. Adibidea I Pertsona[] erabiltzaileak = new Pertsona[4];
  • 6. Adibidea II Pertsona[] erabiltzaileak = new Pertsona[4]; erabiltzaileak[0] = new Pertsona("Ander");
  • 7. Adibidea III Pertsona[] erabiltzaileak = new Pertsona[4]; erabiltzaileak[0] = new Pertsona("Ander"); erabiltzaileak[3] = new Pertsona("Irati");
  • 8. Adibidea IV Pertsona[] erabiltzaileak = new Pertsona[4]; erabiltzaileak[0] = new Pertsona("Ander"); erabiltzaileak[3] = new Pertsona("Irati"); erabiltzaileak[1] = new Pertsona("Mikel");
  • 9. Adibidea V Pertsona[] erabiltzaileak = new Pertsona[4]; erabiltzaileak[0] = new Pertsona("Ander"); erabiltzaileak[3] = new Pertsona("Irati"); erabiltzaileak[1] = new Pertsona("Mikel"); erabiltzaileak[2] = new Pertsona("Jon");
  • 10. Aurkezpena 1 Zer da objektu arraya? 2 Zertarako bi dimentsio? 3 Zer da 2D arraya? 4 Nola erabili? 5 Gogoratu beharrekoak
  • 11. Zertarako bi dimentsio? I Non aurki dezakegu 2Da? Autobusean, hegazkinean, zineman, San Mamesen...
  • 12. Zertarako bi dimentsio? II Taulak egiteko Table: Pertsona ¿ezagun, garrantzitsu? batzuen izen, abizenak eta jaiotze datak. Izena Abizena Jaiotze data James Gosling 1955/05/19 Mike Sheridan ?/?/? Patrick Naughton 1965/?/? Joshua Bloch 1961/08/28 Brian Goetz ?/?/?
  • 13. Zertarako bi dimentsio? III Eraikina (pisua, klasea) E302 → [ESIDE][3][02]
  • 14. Zertarako bi dimentsio? IV Matrizeak
  • 15. Zertarako bi dimentsio? V ...baita irudietan ere!
  • 16. Aurkezpena 1 Zer da objektu arraya? 2 Zertarako bi dimentsio? 3 Zer da 2D arraya? 4 Nola erabili? 5 Gogoratu beharrekoak
  • 17. Zer da 2D arraya? Bi dimentsiotako arraya == arraydun arraya
  • 18. Aurkezpena 1 Zer da objektu arraya? 2 Zertarako bi dimentsio? 3 Zer da 2D arraya? 4 Nola erabili? 5 Gogoratu beharrekoak
  • 19. Nola deklaratu eta ibili? /* 4 ilara eta 3 zutabeko "irudia" izena duen arraya sortzeko: */ int[][] irudia = new int[4][3]; /* azken ilararen (laugarrena, 3 posizioa) azken zutabean (hirugarrena, 2 posizioa) 3 balioa ezartzen dugu*/ irudia[3][2] = 3; /* Array ibilketa */ for(int i=0; i<irudia.length; i++) for(int j=0; i<irudia[i].length; j++) zeozerEgin(irudia[i,j]);
  • 20. Aurkezpena 1 Zer da objektu arraya? 2 Zertarako bi dimentsio? 3 Zer da 2D arraya? 4 Nola erabili? 5 Gogoratu beharrekoak
  • 21. Gogoratu int[][] irudia = new int[4][3]; // 1. dimentsioak 4 elementuko luzeera du (0tik 3ra) // 2. dimentsioak 3 elementuko luzeera du (0tik 2ra) irudia.length // bere balioa: 4 irudia[0].length // bere balioa: 3 irudia[3].length // bere balioa: 3 irudia[4].length // ArrayIndexOutOfBoundsException irudia[0] // 0 posizioan dagoen 3 int dituen arraya irudia[2] // 2 posizioan dagoen 3 int dituen arraya irudia[2][2] // 2,2 posizioan dagoen int elementua irudia[2][3] // ArrayIndexOutOfBoundsException (2. dimentsioan)
  • 22. Ohiko akatsak I // EZ: luzeerak parametroz pasatu public void arrayaErakutsi(int lehenengoDimLuzeera, int bigarrenDimLuzeera, int[][] biDArraya) { for(int i=0; i<lehenengoDimLuzeera; i++) { for(int j=0; j<bigarrenDimLuzeera; j++) { biDArraya[i][j] = biDArraya[i][j] * 2; } } } //BAI public void arrayaErakutsi(int[][] biDArraya) { for(int i=0; i<biDArraya.length; i++) { for(int j=0; j<biDArraya[i].length; j++) { biDArraya[i][j] = biDArraya[i][j] * 2; } } }
  • 23. Ohiko akatsak II // EZ: 2. dimentsioan dagoen 0. elementuaren luzeera atera beti public void arrayaErakutsi(int[][] biDArraya) { for(int i=0; i<biDArraya.length; i++) { // Ondo dabil, biDArraya[0].length==biDArraya[1].length, etab. // delako, baina kontzeptualki ez da oso polita for(int j=0; j<biDArraya[0].length; j++) { biDArraya[i][j] = biDArraya[i][j] * 2; } } } //BAI: kontzeptualki hobe ibiliko dugun arrayaren // luzeera ateratzen badugu public void arrayaErakutsi(int[][] biDArraya) { for(int i=0; i<biDArraya.length; i++) { for(int j=0; j<biDArraya[i].length; j++) { biDArraya[i][j] = biDArraya[i][j] * 2; } } }
  • 24. Lizentzia Irudien guztien jabetza intelektuala bere egileena* da, gainontzeko edukiak Creative Commons by-sa 3.0 lizentziapean daude. * Hobvias Sudoneighm, Dystopos eta yyycatch.