2D arraya eta objetu arrayak

24
2D arraya eta objetu arrayak Aitor G ´ omez-Goiri [email protected] Deustuko Unibertsitatea Ingeniaritza fakultatea http://www.deusto.es 2012/01/31

description

Programazioa II (2012): 1. gaia

Transcript of 2D arraya eta objetu arrayak

Page 1: 2D arraya eta objetu arrayak

2D arraya eta objetuarrayak

Aitor [email protected]

Deustuko UnibertsitateaIngeniaritza fakultateahttp://www.deusto.es

2012/01/31

Page 2: 2D arraya eta objetu arrayak

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

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

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

Adibidea I

Pertsona[] erabiltzaileak = new Pertsona[4];

Page 6: 2D arraya eta objetu arrayak

Adibidea II

Pertsona[] erabiltzaileak = new Pertsona[4];

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

Page 7: 2D arraya eta objetu arrayak

Adibidea III

Pertsona[] erabiltzaileak = new Pertsona[4];

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

erabiltzaileak[3] = new Pertsona("Irati");

Page 8: 2D arraya eta objetu arrayak

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

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

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

Zertarako bi dimentsio? I

Non aurki dezakegu 2Da?Autobusean, hegazkinean, zineman, San Mamesen...

Page 12: 2D arraya eta objetu arrayak

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

Zertarako bi dimentsio? III

Eraikina (pisua, klasea)E302 → [ESIDE][3][02]

Page 14: 2D arraya eta objetu arrayak

Zertarako bi dimentsio? IV

Matrizeak

Page 15: 2D arraya eta objetu arrayak

Zertarako bi dimentsio? V

...baita irudietan ere!

Page 16: 2D arraya eta objetu arrayak

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

Zer da 2D arraya?

Bi dimentsiotako arraya == arraydun arraya

Page 18: 2D arraya eta objetu arrayak

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

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

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

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

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

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

Lizentzia

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

lizentziapean daude.

* Hobvias Sudoneighm, Dystopos eta yyycatch.