第六章结构型态.ppt

  1. 1、本文档共58页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章结构型态.ppt

第六章 結構型態 本書於2-2節已介紹若干基本資料型態,像是整數、實數、布林、字元及字串等,本章則針對一些進階的資料型態予以介紹,如陣列(Array)、記錄(Record)及集合(Set)。 6-1 陣列 6-2 動態物件變數與動態物件陣列 6-3 紀錄 6-4 集合 6-1 陣列 處理少量的資料,可以為每一筆資料設定一個變數,但如果資料量非常龐大,譬如一個班級的50位同學成績,若分別設定A1、A2…A50等50個變數,則是一件相當麻煩的事。為了解決大批的資料處理,遂有陣列(Array)的使用。要儲存一個班級的數學成績可以宣告一個一維陣列,例如 A: array[1..50] of integer代表50個人的數學成績,則A[1]可以用來表示1號同學的數學成績。若要表達每班每人的國、英、數三科成績時,可以宣告一個二維陣列 A: array[1..3, 1..50] of integer來表示,其中A[1][1]表示1號國文成績、A[1][2]表示1號英文成績、A[1][3]表示1號數學成績,A[2][1]則表示2號國文成績,依此類推。同理,如果一年級有12班,則可以宣告一個三維陣列A: array[1..12, 1..3, 1..50] of integer來儲存,其中A[7][42][2]代表7班42號英文成績,以此類推。如果一個學校有三個年級則可宣告一個四維陣列A: array [1...3, 1...12, 1...3, 1...50] of integer來儲存,其中A[2][8][24][3]表示二年級八班24號數學成績。 Delphi使用陣列的步驟: 陣列型態宣告 使用陣列的第一步驟為宣告一個陣列型態,語法如下: 型態名稱 = array[陣列下標..陣列上標] of 資料型態 以上語法說明如下: 1. 型態名稱應符合2-1節的識別字命名規則。 2. 資料型態可以是任一資料型態。 3. 以下敘述為宣告MyArray是一個一維整數陣列型態。 type MyArray=array [1..8] of integer; //陣列型態宣告 陣列變數宣告 於第三章,我們已知道一般變數宣告如下: i : integer; 以上敘述是宣告 i 為整數型態變數,陣列變數的宣告同基本資料型態, 以下敘述即為宣告a, b均是MyArray的陣列型態。 var a ,b:MyArray; //陣列變數宣告 經過以上的宣告,a與b陣列各配置8個單位的記憶體,如下所示。 a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] b[1] b[2] b[3] b[4] b[5] b[6] b[7] b[8] 以上陣列型態及陣列型態變數的宣告,通常可合而為一,如下所示: var a ,b:array [1..8] of integer; //陣列型態變數宣告 陣列初值 Delphi的陣列是使用中括號([ ]),以下式子為設定a陣列的索引2初值為3。 a[2]:=3; 此外,C與Java語言皆可於陣列的宣告中設定初值,但到目前為止,除了常數陣列外,尚無法於陣列宣告中,一併給予初值。 陣列的運算 以下語法可將a[2] 的值取出。 c:= a[2]; 陣列的複製 兩個相同型態與大小的陣列,可以互相複製。其複製語法如下,則b陣列的每一元素均與a陣列相同。 b:=a; 範例6-1a 本範例示範 1. 陣列型態的宣告。 2. 陣列變數的宣告。 3. 陣列初值的設定。 4. 陣列的存取與運算。 5. 陣列的輸出。 6. 陣列的複製。 範例6-1b 請使用陣列讀入5個學生的國文成績, 並可由使用者輸入座號來查詢成績。 範例6-1c 同上範例,但計算平均、最高分及最低分 範例6-1d 請寫一程式將任意十進位轉為N進位。 (2≦N≦16) 泡沫排序法 於一數列當中,從第一筆資料逐一往後兩兩給予比較,若前者大於後者,則兩者交換(本例為由小而大排序,若由大而小排序,則當前者小於後者時,兩者交換),每次的比較與交換均可得該數列的最大值於數列最右邊(末端),所以若有N筆資料進行排序,則應作N-1階次的逐一比較,且每階次的逐一比較範圍均逐漸減一個,此即為泡沫排序法(Bubble Sort)。若有8、9、7、1、2五筆資料,則其排序過程如下: 1.將資料由左而右排列如下: 8 9 7 1 2 2.共有五筆資料n=5,共須進行四個階次的逐一比較,每一階次都能將該階次的最大值移至最右邊,四個階次的逐一比較細節說明如下: (4) 從第一筆資料到第二筆資料兩兩比較,若前者大於後者則兩者交換如下,排序完成。 3.若有N筆資料,則應作N-1階次的比

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档