Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

2D arraya eta objetu arrayak

622 views

Published on

Programazioa II (2012): 1. gaia

Published in: Technology
  • Be the first to comment

  • Be the first to like this

2D arraya eta objetu arrayak

  1. 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. 2. Aurkezpena 1 Zer da objektu arraya? 2 Zertarako bi dimentsio? 3 Zer da 2D arraya? 4 Nola erabili? 5 Gogoratu beharrekoak
  3. 3. Aurkezpena 1 Zer da objektu arraya? 2 Zertarako bi dimentsio? 3 Zer da 2D arraya? 4 Nola erabili? 5 Gogoratu beharrekoak
  4. 4. Zer da objektu arraya? Posizio bakoitzean oinarrizko motako datu bat eduki ordez objektu jakin bat duen arraya da. String, Pertsona, etab.
  5. 5. Adibidea I Pertsona[] erabiltzaileak = new Pertsona[4];
  6. 6. Adibidea II Pertsona[] erabiltzaileak = new Pertsona[4]; erabiltzaileak[0] = new Pertsona("Ander");
  7. 7. Adibidea III Pertsona[] erabiltzaileak = new Pertsona[4]; erabiltzaileak[0] = new Pertsona("Ander"); erabiltzaileak[3] = new Pertsona("Irati");
  8. 8. Adibidea IV Pertsona[] erabiltzaileak = new Pertsona[4]; erabiltzaileak[0] = new Pertsona("Ander"); erabiltzaileak[3] = new Pertsona("Irati"); erabiltzaileak[1] = new Pertsona("Mikel");
  9. 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. 10. Aurkezpena 1 Zer da objektu arraya? 2 Zertarako bi dimentsio? 3 Zer da 2D arraya? 4 Nola erabili? 5 Gogoratu beharrekoak
  11. 11. Zertarako bi dimentsio? I Non aurki dezakegu 2Da? Autobusean, hegazkinean, zineman, San Mamesen...
  12. 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. 13. Zertarako bi dimentsio? III Eraikina (pisua, klasea) E302 → [ESIDE][3][02]
  14. 14. Zertarako bi dimentsio? IV Matrizeak
  15. 15. Zertarako bi dimentsio? V ...baita irudietan ere!
  16. 16. Aurkezpena 1 Zer da objektu arraya? 2 Zertarako bi dimentsio? 3 Zer da 2D arraya? 4 Nola erabili? 5 Gogoratu beharrekoak
  17. 17. Zer da 2D arraya? Bi dimentsiotako arraya == arraydun arraya
  18. 18. Aurkezpena 1 Zer da objektu arraya? 2 Zertarako bi dimentsio? 3 Zer da 2D arraya? 4 Nola erabili? 5 Gogoratu beharrekoak
  19. 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. 20. Aurkezpena 1 Zer da objektu arraya? 2 Zertarako bi dimentsio? 3 Zer da 2D arraya? 4 Nola erabili? 5 Gogoratu beharrekoak
  21. 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. 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. 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. 24. Lizentzia Irudien guztien jabetza intelektuala bere egileena* da, gainontzeko edukiak Creative Commons by-sa 3.0 lizentziapean daude. * Hobvias Sudoneighm, Dystopos eta yyycatch.

×