2d arraya eta objetu arrayak
DESCRIPTION
Programazioa II (2012): 1. gaiaTRANSCRIPT
![Page 1: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/1.jpg)
2D arraya eta objetuarrayak
Aitor [email protected]
Deustuko UnibertsitateaIngeniaritza fakultateahttp://www.deusto.es
2012/01/31
![Page 2: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/2.jpg)
Aurkezpena
1 Zer da objektu arraya?
2 Zertarako bi dimentsio?
3 Zer da 2D arraya?
4 Nola erabili?
5 Gogoratu beharrekoak
![Page 3: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/3.jpg)
Aurkezpena
1 Zer da objektu arraya?
2 Zertarako bi dimentsio?
3 Zer da 2D arraya?
4 Nola erabili?
5 Gogoratu beharrekoak
![Page 4: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/4.jpg)
Zer da objektu arraya?
Posizio bakoitzean oinarrizko motako datu bat eduki ordezobjektu jakin bat duen arraya da.
String, Pertsona, etab.
![Page 5: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/5.jpg)
Adibidea I
Pertsona[] erabiltzaileak = new Pertsona[4];
![Page 6: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/6.jpg)
Adibidea II
Pertsona[] erabiltzaileak = new Pertsona[4];
erabiltzaileak[0] = new Pertsona("Ander");
![Page 7: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/7.jpg)
Adibidea III
Pertsona[] erabiltzaileak = new Pertsona[4];
erabiltzaileak[0] = new Pertsona("Ander");
erabiltzaileak[3] = new Pertsona("Irati");
![Page 8: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/8.jpg)
Adibidea IV
Pertsona[] erabiltzaileak = new Pertsona[4];
erabiltzaileak[0] = new Pertsona("Ander");
erabiltzaileak[3] = new Pertsona("Irati");
erabiltzaileak[1] = new Pertsona("Mikel");
![Page 9: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/9.jpg)
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");
![Page 10: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/10.jpg)
Aurkezpena
1 Zer da objektu arraya?
2 Zertarako bi dimentsio?
3 Zer da 2D arraya?
4 Nola erabili?
5 Gogoratu beharrekoak
![Page 11: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/11.jpg)
Zertarako bi dimentsio? I
Non aurki dezakegu 2Da?Autobusean, hegazkinean, zineman, San Mamesen...
![Page 12: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/12.jpg)
Zertarako bi dimentsio? II
Taulak egiteko
Table: Pertsona ¿ezagun, garrantzitsu? batzuen izen, abizenak etajaiotze datak.
Izena Abizena Jaiotze dataJames Gosling 1955/05/19Mike Sheridan ?/?/?Patrick Naughton 1965/?/?Joshua Bloch 1961/08/28Brian Goetz ?/?/?
![Page 13: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/13.jpg)
Zertarako bi dimentsio? III
Eraikina (pisua, klasea)E302 → [ESIDE][3][02]
![Page 14: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/14.jpg)
Zertarako bi dimentsio? IV
Matrizeak
![Page 15: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/15.jpg)
Zertarako bi dimentsio? V
...baita irudietan ere!
![Page 16: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/16.jpg)
Aurkezpena
1 Zer da objektu arraya?
2 Zertarako bi dimentsio?
3 Zer da 2D arraya?
4 Nola erabili?
5 Gogoratu beharrekoak
![Page 17: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/17.jpg)
Zer da 2D arraya?
Bi dimentsiotako arraya == arraydun arraya
![Page 18: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/18.jpg)
Aurkezpena
1 Zer da objektu arraya?
2 Zertarako bi dimentsio?
3 Zer da 2D arraya?
4 Nola erabili?
5 Gogoratu beharrekoak
![Page 19: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/19.jpg)
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]);
![Page 20: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/20.jpg)
Aurkezpena
1 Zer da objektu arraya?
2 Zertarako bi dimentsio?
3 Zer da 2D arraya?
4 Nola erabili?
5 Gogoratu beharrekoak
![Page 21: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/21.jpg)
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)
![Page 22: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/22.jpg)
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;
}
}
}
![Page 23: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/23.jpg)
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;
}
}
}
![Page 24: 2D arraya eta objetu arrayak](https://reader034.vdocuments.pub/reader034/viewer/2022052507/5588ff2ed8b42a9e3f8b4747/html5/thumbnails/24.jpg)
Lizentzia
Irudien guztien jabetza intelektuala bere egileena* da,gainontzeko edukiak Creative Commons by-sa 3.0
lizentziapean daude.
* Hobvias Sudoneighm, Dystopos eta yyycatch.