1 / 22

第 1 章 資料結構概觀

資料結構設計與 C++ 程式應用 Fundamentals of Data Structures and Their Applications Using C++. 第 1 章 資料結構概觀. 資料結構設計與 C++ 程式應用 版權所有 禁止重製. 1.1 資料 (Data) 與資訊 (Information). 資料 (Data)

Download Presentation

第 1 章 資料結構概觀

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 資料結構設計與C++程式應用 Fundamentals of Data Structures and Their Applications Using C++ 第1章 資料結構概觀 資料結構設計與C++程式應用 版權所有 禁止重製

  2. 1.1 資料(Data)與資訊 (Information) • 資料(Data) • 資訊(Information)

  3. 1.2 資料表示法 • 資料分成兩類: 數值資料(Numeric Data) — 可以做加、減、乘、除、運算處理的資料,如學生成績、員工薪水、貨品存量、銷售業績等。 文數資料(Alphanumeric Data) — 不能做運算處理的資料,如學生姓名、地址、圖書目錄、貨品名稱等。只能儲存在計算機中做分類、排序處理。

  4. 資料表示法 • 資料表示法有九種 數值資料(Numeric Data): 整數 — 分區十進位式、緊緻十進位式、固定點式、不帶正負符號的固定點式。 實數 —短浮點式、長浮點式。 文數資料(Alphanumeric Data): BCD碼、EBCDIC碼、ASCII碼。

  5. 1.2.1 分區十進位式 • 分區十進位式(Zone Decimal Format) • 利用「區域位元」和「數值位元」合併表示一個數字。 • 以最小有效位數的區域位元來當做正、負符號之位元;1100 代表正,1101 代表負而 1111代表沒有正負符號。 ※陰影者為區域位元

  6. 1.2.2 緊緻十進位式 • 緊緻十進位式(Packed Decimal Format) • 將分區十進位式的區域位元全部刪除,只保留數值位元; • 在最小有效位數後面加上四個位元當做正負符號之指標,以1100表示正號,1101表示負號,而1111表示沒有正負符號

  7. 1.2.3 固定點式 • 固定點式(Fixed Point):短,長固定點式 • 短固定點式佔用兩個位元組(16位元) • 長固定點式佔用四個位元組(32位元) • 短,長固定點式第一個位元用來表示正負符號,0代表+,1代表-;其餘位元是數值位元。 • 數值大小的範圍:  短固定點式:  長固定點式:

  8. 1.2.3 固定點式 • 圖示如下: +19 用 8 位元來表示,可以寫成 "00010011" -19 之 1補數表示法為 "11101100" -19 之 2補數表示法為 "11101101"

  9. 1.2.4 不帶正負符號的固定點式 • 不帶正負符號的固定點式(Unsigned Integer) • 這種表示法通常佔兩個位元組(16位元),全部的位元均用來表示一個數值,其數值的範圍為0至65535之間。 • 實數資料的輸出格式有兩種: • 1.dd‥d.dd‥d,例如:4372.891。 • 2.0.dd‥dE±dd ,例如:0.4372891E+04。 • 實數資料在電腦有兩種表示法:長,短浮點式。

  10. 1.2.5 短浮點式,1.2.6 長浮點式 • 短浮點式(32位元) • 長浮點式(64位元)

  11. 例題 • 指數部份(7位元) • 指數部份七個位元表示法之對照如下表 例如:利用短浮點式來表示13.125。 13.125的二進位數為1101.001= 0.1101001× 指數值為4,故指數指數部份的值為4+64=68,即二進位為1000100。 因此13.125短浮點式表示為:

  12. 1.2.7 BCD碼 • BCD碼(Binary Code Decimal) • 2個區域位元, • 4個數字位元。

  13. 1.2.8 EBCDIC碼 • EBCDIC碼(Extended Binary Code Decimal Interchange Code) • 4個區域位元, • 4個數字位元。

  14. 1.2.9 ASCII碼 • ASCII碼( American Standard Code Information Interchange) • 3個區域位元, • 4個數字位元。

  15. 1.3 演繹法 一個演繹法必須滿足下列五個條件 1.有限性: 亦即須能在有限個步驟之內解決問題。 2.明確性: 即每一個步驟必須條理分明,意義清楚。 3.得具有輸入資料: 一個演繹法所須之輸入資料可有可無。 4.須具有輸出資料。 5.有效性: 每一個步驟或運算若交給人們用紙筆來執行或計算, 須能在有限時間內完成。

  16. 演繹法例題

  17. 1.4 程式的發展步驟 1.分析問題 2.撰寫演繹法 3.撰寫程式 4.編輯程式 5.編譯、除錯、測試及執行程式 6.文件整理

  18. 一個程式的好壞通常有下列的標準 (1).正確性:是否完成所規定之事項,並正確的解決問題。 (2).可讀性:是否讓人容易了解程式之原意。 (3).易維護性:程式是否具有單元程序、結構化、模組化之 基礎。 (4).清晰性:程式中的變數名稱、段落名稱等皆須有意義, 即應有程式編寫的風格。 (5).文書性:是否有完備的程式說明文件。 (6).效率性:是否簡單、明瞭地直接表示程式的意圖,以最少 的程式碼、最快的執行速度來完成。

  19. 程式設計師應養成良好的程式編寫風格 (1).程式要段落分明,並以有條不紊的區塊式排列。 (2).識別字的命名須有意義。 (3).須簡單且直接表達程式的意義,若能引用內建函數就 直接引用。 (4).撰寫結構化程式,引用基本的控制流程結構。 (5).儘量少用GOTO,避免不必要之分枝(Branch)。 (6).多開發副程式,儘量使程式單元化。

  20. 程式設計師應養成良好的程式編寫風格 (7).儘量將輸入與輸出(Presentation)、處理邏輯(Logic)與 資料儲存(Data Store)三者獨立開來。 (8).輸入資料的次數,儘量不要預定數量,應以特殊記號 代表資料的結尾,如此資料的輸入次數將較有彈性。 (9).先考慮程式的正確性、清晰性、易讀性及可維護性, 接著再考慮程式的效率性。 (10).程式需要適時適地加上一些註解,以提升程式的可讀性。

  21. 1.5 資料的組織 • 陣列 — 第2章 • 鏈結串列— 第3章 • 堆疊— 第4章 • 佇列— 第4章 • 樹狀結構— 第6章 • 圖形— 第7章 • 網路— 第7章 • 排序— 第8章 • 搜尋— 第9章 • 赫序— 第10章

  22. 第一章習題 • 將2進位 110001011 化成10進位、8進位、16進位 ? • 將10進位正整數13用8位元表示出來,其以1補數及2補數之表示法為何 ? • 將13.125用短浮點數表示出 ? • 設有一可裝滿5ml的量杯A及可裝滿3ml之量杯B,A、B均沒有刻度,試寫一演繹法以量出4ml之水。 • 完成下列演繹法及程式: (1) 輸入3個整數並找出最大數。 (2) 假設班上有5位同學,輸入所有同學姓名和分數,找出所有分數高過班上總平均的同學。 註:習題作業1~5以A4紙張書寫下週上課繳交。

More Related