Mul$dimensional ¡arrays ¡
CSCI ¡136: ¡Fundamentals ¡of ¡Computer ¡Science ¡II ¡ ¡• ¡ ¡Keith ¡Vertanen ¡ ¡
Mul$dimensional arrays CSCI 136: Fundamentals of Computer - - PowerPoint PPT Presentation
Mul$dimensional arrays CSCI 136: Fundamentals of Computer Science II Keith Vertanen Overview Mul,dimensional arrays An array of arrays 2D
CSCI ¡136: ¡Fundamentals ¡of ¡Computer ¡Science ¡II ¡ ¡• ¡ ¡Keith ¡Vertanen ¡ ¡
2 ¡
3 ¡
4 ¡
5 ¡ 45.0 ¡ 48.0 ¡ 48.9 ¡ 48.9 ¡ 48.0 ¡ 46.0 ¡ 45.0 ¡ 46.9 ¡ 45.0 ¡ 48.2 ¡ 48.2 ¡ 48.2 ¡ 55.9 ¡ 57.0 ¡ 59.0 ¡ 57.9 ¡ 57.9 ¡ 57.2 ¡ 54.0 ¡ 50.0 ¡ 48.9 ¡ 46.9 ¡ 44.6 ¡ 45.0 ¡ 44.1 ¡ 43.0 ¡ 43.0 ¡ 43.0 ¡ 39.9 ¡ 37.9 ¡ 37.4 ¡ 39.0 ¡ 39.0 ¡ 39.0 ¡ 39.0 ¡ 37.9 ¡ 39.2 ¡ 41.0 ¡ 41.0 ¡ 41.0 ¡ 39.0 ¡ 37.9 ¡ 36.0 ¡ 35.6 ¡ 33.8 ¡ 32.0 ¡ 32.0 ¡ 30.2 ¡ 30.2 ¡ 28.0 ¡ 27.0 ¡ 23.0 ¡ 23.0 ¡ 23.0 ¡ 19.9 ¡ 19.0 ¡ 19.0 ¡ 23.0 ¡ 30.9 ¡ 33.1 ¡ 34.0 ¡ 37.0 ¡ 35.6 ¡ 36.0 ¡ 32.0 ¡ 32.0 ¡ 32.0 ¡ 27.0 ¡ 27.0 ¡ 25.0 ¡ 21.9 ¡ 23.0 ¡ 21.9 ¡ 21.0 ¡ 21.0 ¡ 21.0 ¡ 19.4 ¡ 17.6 ¡ 17.6 ¡ 17.6 ¡ 19.4 ¡ 19.0 ¡ 21.0 ¡ 26.1 ¡ 34.0 ¡ 37.4 ¡ 39.0 ¡ 41.0 ¡ 41.0 ¡ 39.0 ¡ 37.0 ¡ 37.0 ¡ 37.0 ¡ 34.0 ¡ 35.1 ¡ 34.0 ¡ 33.8 ¡ 32.0 ¡ 37.0 ¡ 30.9 ¡ 32.0 ¡ 34.0 ¡ 33.1 ¡ 30.9 ¡ 32.0 ¡ 35.1 ¡ 39.0 ¡ 41.0 ¡ 39.9 ¡ 42.1 ¡ 43.0 ¡ 43.0 ¡ 42.1 ¡ 39.9 ¡ 36.0 ¡ 33.1 ¡ 27.0 ¡ 25.0 ¡ 23.0 ¡ 19.9 ¡ 19.9 ¡ 19.0 ¡ 18.0 ¡ 16.0 ¡ 16.0 ¡ 15.1 ¡ 14.0 ¡ 14.0 ¡ 15.1 ¡ 21.0 ¡ 27.0 ¡ 34.0 ¡ 41.0 ¡ 48.0 ¡ 52.0 ¡ 50.0 ¡ 51.1 ¡ 50.0 ¡ 46.0 ¡ 48.9 ¡ 44.1 ¡ 44.1 ¡ 39.9 ¡ 39.2 ¡ 46.0 ¡ 46.0 ¡ 45.0 ¡ 44.6 ¡ 44.1 ¡ 44.1 ¡ 44.1 ¡ 44.1 ¡ 42.1 ¡ 42.1 ¡ 42.8 ¡ 44.1 ¡ 45.0 ¡ 46.9 ¡ 46.0 ¡ 44.1 ¡ 44.1 ¡ 42.8 ¡ 39.0 ¡ 37.0 ¡ 35.1 ¡ 35.1 ¡ 30.9 ¡ 30.0 ¡
10/24/11 10/29/11 01:53 20:53
6 ¡
final ¡int ¡DAYS ¡ ¡= ¡7; ¡ final ¡int ¡HOURS ¡= ¡24; ¡ double ¡[][] ¡a ¡= ¡new ¡double[DAYS][HOURS]; ¡ a[i][j] ¡
a[0][0] ¡ a[0][1] ¡ a[0][2] ¡ ... ¡ a[0][22] ¡ a[0][23] ¡ a[1][0] ¡ a[1][1] ¡ a[1][2] ¡ … ¡ a[1][22] ¡ a[1][23] ¡ … ¡ … ¡ … ¡ … ¡ …. ¡ … ¡ a[6][0] ¡ a[6][1] ¡ a[6][2] ¡ … ¡ a[6][22] ¡ a[6][23] ¡
7 ¡
final ¡int ¡DAYS ¡ ¡= ¡7; ¡ final ¡int ¡HOURS ¡= ¡24; ¡ double ¡[][] ¡a ¡= ¡new ¡double[DAYS][HOURS]; ¡ double ¡min ¡= ¡Double.POSTIVE_INFINITY; ¡ double ¡max ¡= ¡Double.NEGATIVE_INFINITY; ¡ ¡ for ¡(int ¡day ¡= ¡0; ¡day ¡< ¡DAYS; ¡day++) ¡ { ¡ ¡ ¡ ¡for ¡(int ¡hour ¡= ¡0; ¡hour ¡< ¡HOURS; ¡hour++) ¡ ¡ ¡ ¡{ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡a[day][hour] ¡= ¡StdIn.readDouble(); ¡ ¡ ¡ ¡ ¡ ¡ ¡min ¡= ¡Math.min(min, ¡a[day][hour]); ¡ ¡ ¡ ¡ ¡ ¡ ¡max ¡= ¡Math.max(max, ¡a[day][hour]); ¡ ¡ ¡ ¡ ¡ ¡ ¡} ¡ } ¡ System.out.println("min ¡= ¡" ¡+ ¡min ¡+ ¡", ¡max ¡= ¡" ¡+ ¡max); ¡
8 ¡
9 ¡
¡ ... ¡ System.out.println("min ¡= ¡" ¡+ ¡min ¡+ ¡", ¡max ¡= ¡" ¡+ ¡max); ¡ ¡ final ¡double ¡BOX_SIZE ¡= ¡0.02; ¡ double ¡range ¡= ¡max ¡-‑ ¡min; ¡ ¡ ¡ ¡ ¡ for ¡(int ¡day ¡= ¡0; ¡day ¡< ¡DAYS; ¡day++) ¡ { ¡ ¡ ¡ ¡for ¡(int ¡hour ¡= ¡0; ¡hour ¡< ¡HOURS; ¡hour++) ¡ ¡ ¡ ¡{ ¡ ¡ ¡ ¡ ¡ ¡ ¡float ¡proportion ¡= ¡(float) ¡((a[day][hour] ¡-‑ ¡min) ¡/ ¡range); ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Color ¡c ¡= ¡new ¡Color(proportion, ¡0.0f, ¡1.0f ¡-‑ ¡proportion); ¡ ¡ ¡ ¡ ¡ ¡ ¡StdDraw.setPenColor(c); ¡ ¡ ¡ ¡ ¡ ¡ ¡StdDraw.filledRectangle(1.0 ¡/ ¡HOURS ¡* ¡hour, ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡1.0 ¡/ ¡DAYS ¡* ¡(DAYS ¡-‑ ¡day ¡-‑ ¡1), ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡BOX_SIZE, ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡BOX_SIZE); ¡ ¡ ¡ ¡ ¡ ¡ ¡} ¡ } ¡ ¡
10 ¡
a[0][0] ¡ a[0][1] ¡ a[0][2] ¡ a[0][3] ¡ ¡ ¡... ¡ a[0][22] ¡a[0][23] ¡
45.0 48.0 48.9 48.9 44.6 45.0
a[1][0] ¡ a[1][1] ¡ a[1][2] ¡ a[1][3] ¡ ¡ ¡... ¡ a[1][22] ¡a[1][23] ¡
44.1 43.0 43.0 43.0 32.0 30.2
11 ¡
a[0][0] ¡ a[0][1] ¡ a[0][2] ¡ a[0][3] ¡ ¡ ¡... ¡ a[0][22] ¡a[0][23] ¡
45.0 48.0 48.9 48.9 44.6 45.0
a[1][0] ¡ a[1][1] ¡ a[1][2] ¡ a[1][3] ¡ ¡ ¡... ¡ a[1][22] ¡a[1][23] ¡
44.1 43.0 43.0 43.0 32.0 30.2
12 ¡
public ¡static ¡double ¡average(double ¡[][] ¡nums) ¡ { ¡ ¡ ¡ ¡double ¡sum ¡= ¡0.0; ¡ ¡ ¡ ¡int ¡count ¡= ¡0; ¡ ¡ ¡ ¡for ¡(int ¡i ¡= ¡0; ¡i ¡< ¡??????; ¡i++) ¡ ¡ ¡ ¡{ ¡ ¡ ¡ ¡ ¡ ¡ ¡for ¡(int ¡j ¡= ¡0; ¡j ¡< ¡??????; ¡j++) ¡ ¡ ¡ ¡ ¡ ¡ ¡{ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡sum ¡+= ¡nums[???][???]; ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡count++; ¡ ¡ ¡ ¡ ¡ ¡ ¡} ¡ ¡ ¡ ¡} ¡ ¡ ¡ ¡return ¡??????; ¡ } ¡ ¡
13 ¡
public ¡static ¡double ¡average(double ¡[][] ¡nums) ¡ { ¡ ¡ ¡ ¡double ¡sum ¡= ¡0.0; ¡ ¡ ¡ ¡int ¡count ¡= ¡0; ¡ ¡ ¡ ¡for ¡(int ¡i ¡= ¡0; ¡i ¡< ¡nums.length; ¡i++) ¡ ¡ ¡ ¡{ ¡ ¡ ¡ ¡ ¡ ¡ ¡for ¡(int ¡j ¡= ¡0; ¡j ¡< ¡nums[i].length; ¡j++) ¡ ¡ ¡ ¡ ¡ ¡ ¡{ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡sum ¡+= ¡nums[i][j]; ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡count++; ¡ ¡ ¡ ¡ ¡ ¡ ¡} ¡ ¡ ¡ ¡} ¡ ¡ ¡ ¡return ¡sum ¡/ ¡count; ¡ } ¡ ¡
14 ¡
a[0][0] ¡ a[0][1] ¡ a[0][2] ¡ a[0][3] ¡ ¡ ¡... ¡ a[0][22] ¡a[0][23] ¡
45.0 48.0 48.9 48.9 44.6 45.0
a[1][0] ¡ a[1][1] ¡ a[1][2] ¡ a[1][3] ¡ ¡ ¡... ¡ a[1][19] ¡a[1][20] ¡
44.1 43.0 45.2 46.6 32.0 30.2
15 ¡
// ¡An ¡array ¡with ¡three ¡rows ¡ double ¡[][] ¡a ¡= ¡new ¡double[3][]; ¡ ¡ // ¡First ¡row ¡can ¡have ¡2 ¡numbers ¡ a[0] ¡= ¡new ¡double[2]; ¡ ¡ // ¡Second ¡row ¡can ¡have ¡3 ¡numbers ¡ a[1] ¡= ¡new ¡double[3]; ¡ ¡ // ¡Third ¡row ¡can ¡have ¡4 ¡numbers ¡ a[2] ¡= ¡new ¡double[4]; ¡
a[0][0] ¡ a[0][1] ¡ a[1][0] ¡ a[1][1] ¡ a[1][2] ¡ a[2][0] ¡ a[2][1] ¡ a[2][2] ¡ a[2][3] ¡
a.length ¡ ¡ ¡ ¡= ¡3 ¡ a[0].length ¡= ¡2 ¡ a[1].length ¡= ¡3 ¡ a[2].length ¡= ¡4 ¡
16 ¡
final ¡int ¡DAYS ¡ ¡= ¡7; ¡ final ¡int ¡HOURS ¡= ¡24; ¡ double ¡min ¡= ¡Double.MAX_VALUE; ¡ double ¡max ¡= ¡Double.MIN_VALUE; ¡ ¡ double ¡[][] ¡a ¡= ¡new ¡double[DAYS][]; ¡ ¡ for ¡(int ¡day ¡= ¡0; ¡day ¡< ¡DAYS; ¡day ¡++) ¡ { ¡ ¡ ¡ ¡String ¡line ¡= ¡StdIn.readLine(); ¡ ¡ ¡ ¡String ¡[] ¡temps ¡= ¡line.split("\\s+"); ¡ ¡ ¡ ¡ ¡a[day] ¡= ¡new ¡double[temps.length]; ¡ ¡ ¡ ¡ ¡for ¡(int ¡hour ¡= ¡0; ¡hour ¡< ¡temps.length; ¡hour++) ¡ ¡ ¡ ¡{ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡a[day][hour] ¡= ¡Double.parseDouble(temps[hour]); ¡ ¡ ¡ ¡ ¡ ¡ ¡min ¡= ¡Math.min(min, ¡a[day][hour]); ¡ ¡ ¡ ¡ ¡ ¡ ¡max ¡= ¡Math.max(max, ¡a[day][hour]); ¡ ¡ ¡ ¡ ¡ ¡ ¡} ¡ } ¡
17 ¡
¡ ¡ ¡ for ¡(int ¡day ¡= ¡0; ¡day ¡< ¡DAYS; ¡day++) ¡ { ¡ ¡ ¡ ¡for ¡(int ¡hour ¡= ¡0; ¡hour ¡< ¡a[day].length; ¡hour++) ¡ ¡ ¡ ¡{ ¡ ¡ ¡ ¡ ¡ ¡ ¡float ¡proportion ¡= ¡(float) ¡((a[day][hour] ¡-‑ ¡min) ¡/ ¡range); ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Color ¡c ¡= ¡new ¡Color(proportion, ¡0.0f, ¡1.0f ¡-‑ ¡proportion); ¡ ¡ ¡ ¡ ¡ ¡ ¡StdDraw.setPenColor(c); ¡ ¡ ¡ ¡ ¡ ¡ ¡StdDraw.filledRectangle(1.0 ¡/ ¡HOURS ¡* ¡(hour ¡+ ¡0.5), ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡1.0 ¡/ ¡DAYS ¡* ¡(DAYS ¡– ¡day ¡-‑ ¡1 ¡+ ¡0.5), ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡BOX_SIZE, ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡BOX_SIZE); ¡ ¡ ¡ ¡ ¡ ¡ ¡} ¡ } ¡
18 ¡
final ¡int ¡X_MAX ¡ ¡= ¡100; ¡ final ¡int ¡Y_MAX ¡ ¡= ¡100; ¡ final ¡int ¡FLOORS ¡= ¡10; ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ Avatar ¡[][][] ¡avatars ¡= ¡new ¡Avatar[X_MAX][Y_MAX][FLOORS]; ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ // ¡Create ¡the ¡first ¡player ¡in ¡the ¡middle ¡of ¡the ¡first ¡floor ¡ avatars[49][49][0] ¡= ¡new ¡Avatar(); ¡
19 ¡
hgp://eisforexplore.blogspot.com/2013/02/array-‑city.html ¡