9-4 二維陣列

 Flash無法直接宣告二維(含)以上陣列,需先宣告一維陣列,再將一維陣列中個別陣列元素宣告為一維陣列,變成二維陣列。

   宣告一個3x5二維陣列,陣列名稱為height。

height=Array(3);

for(i=0; i<=2; i++){

       height[i]=Array(5);

}

將一維陣列元素再宣告為一維陣列,其方式與前一節語法相同,也可以給予初始值。

 

 


將二個人的姓名、性別、身高、體重等4個欄位儲存。

2x4二維陣列,並輸出於文字欄位中。

結果:

 

 

 

 

 

影格1程式:

01

02

03

04

05

06

07

08

09

10

11

12

13

person=Array(2);

for(i=0;i<=1;i++){

    person[i]=Array(4);

}

person[0]=["王淑娟","女",165, 65];

person[1]=["李文彬","男",170, 75];

show_txt.text="姓名   性別    身高    體重"+newline;

for(i=0;i<=1;i++){

for(j=0;j<=3;j++){

        show_txt.text+=person[i][j]+"       ";

    }

    show_txt.text+=newline;

}

解說:

行1:宣告person為一維陣列,具有2個元素,person[0]與person[1]。

行2∼4:將person[0]與person[1]宣告為一維陣列,具有4個元素,分別為person[0][0],person[0][1],person[0][2],person[0][3]與person[1][0],person[1][1],person[1][2],person[1][3]。

如下圖所示

Person[0][0]

Person[0][1]

Person[0][2]

Person[0][3]

Person[1][0]

Person[1][1]

Person[1][2]

Person[1][3]

Person

Person[0]

Person[1]

 

行5:設定person[0]的4個元素初始值,也就是王淑娟的個人資料。

person[0][0]  person[0][1]   person[0][2]   person[0][3]

王淑娟

女

165

65

Person[0]

 

行6:設定person[1]的4個元素初始值,也就是李文彬的個人資料。

person[1][0]  person[1][1]   person[1][2]   person[1][3]

李文彬

男

170

75

Person[1]

 

行7:輸出個人資料欄位的名稱。

行8∼13:輸出2個人的所有資料。

行9∼11:輸出每一個人的4個欄位資料,兩個資料之間有空白。

行12:每一個人資料都在同一行,不同人的資料在不同行。

 

 


     計算小明與小文二個人的國文、英文、數學三科的平均分數,平均分數採取四捨五入。

結果:

 

 

 

 

 

影格1程式:

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

name=["小明","小文"];

ave=[0,0];

score=Array(2);

score[0]=[91,92,92];

score[1]=[80,81,80];

for(i=0;i<=1;i++){

    for(j=0;j<=2;j++){

        ave[i]+=score[i][j];

    }

    ave[i]=Math.round(ave[i]/3);

}

show_txt.text="姓名  國文   英文   數學   平均 "+newline;

for(i=0;i<=1;i++){

    show_txt.text+=name[i]+"    ";

    for(j=0;j<=2;j++){

        show_txt.text+=score[i][j]+"     ";

    }

    show_txt.text+=ave[i]+"   ";

    show_txt.text+=newline;

}

解說:

行1:name為一維陣列存二個人姓名。

行2:ave為一維陣列存二個人的平均分數,剛開始假設為0分。

行3∼5:存小明、小文二個人的三科成績。score為2x3的二維陣列。

行6∼11:分別計算兩個人的三科平均分數。

行7∼9:將三科成績和存於ave中,

   小明成績

ave[0] = score[0][0] + score[0][1] + score[0][2]

           國文成績 +英文成績 + 數學成績

行10:計算個人平均分數,採取四捨五入,為了節省記憶體,總分與平均分數用相同陣列,為避免混淆也可以用不同陣列名稱,只是需另外宣告總分的陣列

  

            tot=Array(2);

            tot=[0,0];

行8改成   tot[i]+=score[i][i];

行10改成  ave[i]=Math.round(tot[i]/3);

行12∼20:輸出二個人的姓名、國文、英文、數學,平均等資料。