第12章 程式語言.

Slides:



Advertisements
Similar presentations
資料蒐集的方法(三):實驗法(實驗設計) (第七章)
Advertisements

布林代數的應用--- 全及項(最小項)和全或項(最大項)展開式
建立使用案例敘述 --Use Case Narrative
第七章 抽樣與抽樣分配 蒐集統計資料最常見的方式是抽查。這 牽涉到兩個問題: 抽出的樣本是否具有代表性?是否能反應出母體的特徵?
學習C++的基本語法 認識關鍵字與識別字的不同 學習程式碼偵錯的流程 學習如何提高程式的可讀性
Teacher : Ing-Jer Huang TA : Chien-Hung Chen 2015/6/3 Course Embedded Systems : Principles and Implementations Weekly Preview Question CH3.5 ~ CH /10/31.
第二章 太陽能電池的基本原理 及其結構 2-1 太陽能電池的基本原理 2-2 太陽能電池的基本結構 2-3 太陽能電池的製作.
Reference, primitive, call by XXX 必也正名乎 誌謝 : 部份文字取於前輩 TAHO 的文章.
如何將數字變成可用之資訊 現代化資料處理與應用概念. 如何將數字變成可用之資訊 人最容易接受的訊息是圖像化資訊。 在一堆數字中,要進行比較分析,一般會使用表格形 式計算與分析。 所以一般我們會將數字依關聯性, 轉換成表格計算與分析。 此表格一般稱試算表或稱表格。 再將結果轉換為圖表,進行比較與分析。
09 CHAPTER 軟體工程 9-1 寫程式9-1 寫程式 9-2 軟體開發生命週期9-2 軟體開發生命週期.
: OPENING DOORS ? 題組: Problem Set Archive with Online Judge 題號: 10606: OPENING DOORS 解題者:侯沛彣 解題日期: 2006 年 6 月 11 日 題意: - 某間學校有 N 個學生,每個學生都有自己的衣物櫃.
第一章 變數、常數及資料型態. 變數 C 程式語言的變數名稱 第一個字必須是英文字母或底線 (_) 之後可以是數字, 英文字母或底線 (_) 不可以是保留字 例: Num (Ο) _score (Ο) C&C (X) 8num (X)
Chapter 2 聯立線性方程式與矩陣 緒言 線性方程式組 (systems of linear equations) 出現 在多數線性模式 (linear model) 中。根據以往解 題的經驗,讀者們也許已發現方程式的解僅與 該方程式的係數有關,求解的過程也僅與係數 的運算有關,只要係數間的相關位置不改變,
1.1 電腦的特性 電腦能夠快速處理資料:電腦可在一秒內處理數百萬個 基本運算,這是人腦所不能做到的。原本人腦一天的工 作量,交給電腦可能僅需幾分鐘的時間就處理完畢。 電腦能夠快速處理資料:電腦可在一秒內處理數百萬個 基本運算,這是人腦所不能做到的。原本人腦一天的工 作量,交給電腦可能僅需幾分鐘的時間就處理完畢。
STAT0_sampling Random Sampling  母體: Finite population & Infinity population  由一大小為 N 的有限母體中抽出一樣本數為 n 的樣 本,若每一樣本被抽出的機率是一樣的,這樣本稱 為隨機樣本 (random sample)
1. 假設以下的敘述為一未提供 “ 捷徑計算 ” 能力的程式段,試用程 式設計的技巧,使此敘述經此改 寫的動作後,具有與 “ 捷徑計算 ” 之 處理方法相同之處理模式。 if and then E1 else E2 endif.
MATLAB 程式設計 第 11 章 多維陣列 多維陣列的定義 在 MATLAB 的資料型態中,向量可視為 一維陣列,矩陣可視二維陣列,對於維 度 (Dimensions) 超過 1 的陣列則均可視 為「多維陣列」 (Multidimesional Arrays , 簡稱 N-D Arrays)
第 18 章 名稱空間與例外處理 18-1 名稱空間 18-1 名稱空間 18-2 例外處理 18-2 例外處理.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
Chapter 07 低階程式語言.
Department of Air-conditioning and Refrigeration Engineering/ National Taipei University of Technology 模糊控制設計使用 MATLAB 李達生.
1 單元三 查詢結果的引用分析 Web of Science 利用指引 查看出版及被引用情況 在查詢結果的清單中,可以瀏覽近 20 年來查詢主題出版和被引用的情況。
JAVA 程式設計與資料結構 第十章 GUI Introdution III. File Chooser  File Chooser 是一個選擇檔案的圖形介面, 無論我們是要存檔還是要開啟檔案,使 用這個物件都會讓我們覺得容易且舒適。
第 7 章 程序與函數 7-1 模組化程式設計 7-1 模組化程式設計 7-2 VB.NET 的程序與函數 7-2 VB.NET 的程序與函數 7-3 程序與函數的變數範圍 7-3 程序與函數的變數範圍 7-4 VB.NET 常用的內建函數 7-4 VB.NET 常用的內建函數 7-5 遞迴函數 7-5.
© The McGraw-Hill Companies, Inc., 2008 第 6 章 製造流程的選擇與設計.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 貳 研究設計.
Chapter 13 塑模靜態觀點:物件圖 Static View : Object Diagram.
Introduction to Java Programming Lecture 17 Abstract Classes & Interfaces.
: The largest Clique ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11324: The largest Clique 解題者:李重儀 解題日期: 2008 年 11 月 24 日 題意: 簡單來說,給你一個 directed.
第三部分:研究設計 ( 二): 研究工具的信效度 與研究效度 (第九章之第 306 頁 -308 頁;第四章)
最新計算機概論 第 5 章 系統程式. 5-1 系統程式的類型 作業系統 (OS) : 介於電腦硬體與 應用軟體之間的 程式,除了提供 執行應用軟體的 環境,還負責分 配系統資源。
Department of Air-conditioning and Refrigeration Engineering/ National Taipei University of Technology MATLAB 操作與 系統動態模擬 SIMULINK 李達生.
CH.8 偵錯 Visual Basic CH.8 偵錯 Visual Basic  資三甲   章乃云 三種類型的錯誤 三種類型的錯誤.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 參 資料蒐集的方法.
第三章 自動再裝載運用篇 使用時機:裝載計劃完成時,尚有剩餘空 間的情形,維持已固定計劃而繼續做裝載 最佳化。以支持次日裝載計劃而提前調整 作業模式。 裝載物品設定和裝載容器設定如前兩章介 紹,於此不再重複此動作,直接從裝載計 劃設定開始,直接從系統內定的物品和容 器選取所需.
CH 15- 元件可靠度之驗證  驗證方法  指數模式之可靠度驗證  韋式模式之可靠度驗證  對數常態模式之可靠度驗證  失效數為零時之可靠度估算  各種失效模式之應用.
第二十一章 研究流程、論文結構        與研究範例 21-1  研究流程 21-2  論文結構 21-3  研究範例.
: Multisets and Sequences ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11023: Multisets and Sequences 解題者:葉貫中 解題日期: 2007 年 4 月 24 日 題意:在這個題目中,我們要定義.
資料結構實習-一 參數傳遞.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2008.
計算機概論 演算法與程式語言 李明山.
Section 4.2 Probability Models 機率模式. 由實驗看機率 實驗前先列出所有可能的實驗結果。 – 擲銅板:正面或反面。 – 擲骰子: 1~6 點。 – 擲骰子兩顆: (1,1),(1,2),(1,3),… 等 36 種。 決定每一個可能的實驗結果發生機率。 – 實驗後所有的實驗結果整理得到。
函式 Function Part.2 東海大學物理系‧資訊教育 施奇廷. 遞迴( Recursion ) 函式可以「呼叫自己」,這種動作稱為 「遞迴」 此程式的執行結果相當於陷入無窮迴圈, 無法停止(只能按 Ctrl-C ) 這給我們一個暗示:函式的遞迴呼叫可以 達到部分迴圈的效果.
Analyzing Case Study Evidence
JAVA 程式設計與資料結構 第二十章 Searching. Sequential Searching Sequential Searching 是最簡單的一種搜尋法,此演 算法可應用在 Array 或是 Linked List 此等資料結構。 Sequential Searching 的 worst-case.
資料結構實習-二.
演算法 8-1 最大數及最小數找法 8-2 排序 8-3 二元搜尋法.
Chapter 3 Entropy : An Additional Balance Equation
845: Gas Station Numbers ★★★ 題組: Problem Set Archive with Online Judge 題號: 845: Gas Station Numbers. 解題者:張維珊 解題日期: 2006 年 2 月 題意: 將輸入的數字,經過重新排列組合或旋轉數字,得到比原先的數字大,
Structural Equation Modeling Chapter 6 CFA 根據每個因素有多重指標,以減少 測量誤差並可建立問卷的構念效度 驗證性因素分析.
Chapter 10 m-way 搜尋樹與B-Tree
概念性產品企劃書 呂學儒 李政翰.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2009.
5 重複迴圈 5.1 增減運算符號 增量運算符號 減量運算符號
第 6 章 迴圈結構 6-1 計數迴圈 6-1 計數迴圈 6-2 條件迴圈 6-2 條件迴圈 6-3 巢狀迴圈 6-3 巢狀迴圈 6-4 While/End While 迴圈 6-4 While/End While 迴圈 6-5 跳出迴圈 6-5 跳出迴圈 6-6 VB.NET 的錯誤處理 6-6 VB.NET.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 壹 企業研究導論.
資訊科技概論 第7章 程式語言.
Teacher : Ing-Jer Huang TA : Chien-Hung Chen 2015/6/30 Course Embedded Systems : Principles and Implementations Weekly Preview Question CH7.1~CH /12/26.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 壹 企業研究導論.
幼兒行為觀察與記錄 第十章 軼事記錄法.
函式 Function 東海大學物理系‧資訊教育 施奇廷. 函式簡介 當程式越來越大、越複雜時,程式的維護、 除錯會變得更困難,此時必須引入函式來 簡化程式或將程式分段,將程式重複的部 分改寫為函式,將程式「模組化」 這種作法有下列優點:節省程式發展的時 間、邏輯容易瞭解、程式容易除錯、可分 工合作完成程式.
Visual C++重點複習.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 參 資料蒐集的方法.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2010.
: Finding Paths in Grid ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11486: Finding Paths in Grid 解題者:李重儀 解題日期: 2008 年 10 月 14 日 題意:給一個 7 個 column.
幼兒行為觀察與記錄 第八章 事件取樣法.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
Presentation transcript:

第12章 程式語言

章節大綱 12-1 程式語言的演進 12-2 程式語言的分類 12-3 程式語言的設計 12-4 程式設計的過程 12-5 程式執行的過程

12-1 程式語言的演進 指令 (instruction) 指揮電腦完成一項基本任務的命令。 程式 (program) 一組有順序的指令集合。 程式語言 (program language) 用來撰寫程式的語言。 回章節大綱

12-1-1 第一代語言-機器語言 機器語言 (machine language) 12-1-1 第一代語言-機器語言 機器語言 (machine language) 每個指令都是由0與1組合而成,包含了運算碼 (op-code) 與運算元 (operand) 兩個部分。 屬於機器相關語言,不具可攜性。 回章節大綱

12-1-2 第二代語言-組合語言 組合語言 (assembly language) 所撰寫的程式須經過組譯程式 (assembler) 轉換成目的碼或機器語言,才能執行。例如:ADD R3, R1, R2 (範例) 屬於機器相關語言,不具可攜性 機器語言和組合語言統稱為低階語言 回章節大綱

12-1-3 第三代語言-高階語言 語法近似於英文 屬於機器無關語言,撰寫的程式須經過直譯程式 (interpreter) 或編譯程式 (compiler) 轉換成目的碼或機器語言,才能執行 具可攜性,較易閱讀與學習,函數庫可擴充,但需經編譯程式或直譯程式轉換成目的碼或機器語言,執行速度較慢,佔記憶體較大 回章節大綱

12-1-4 第四代語言-超高階語言 超高階語言 (very high level language) 12-1-4 第四代語言-超高階語言 超高階語言 (very high level language) 使用者只要在套裝軟體選取工具、介面、資料庫或控制項,就能快速完成程式 回章節大綱

12-1-5 第五代語言-自然語言 自然語言允許使用者以多種方式來敘述同一件事情,主要應用在人工智慧方面。 回章節大綱

12-2 程式語言的分類 根據發展時間,將程式語言略分為一到五代 根據程式設計方式 (programming paradigm): 命令式 函數式 邏輯式 物件導向式 回章節大綱

12-2-1 命令式 命令式 (imperative paradigm) ,由命令與敘述所組成,又稱程序式 (proceduralparadigm) 典型命令式程式語言有FORTRAN、ALGOL、BASIC、C、COBOL、Ada、Pasca… 回章節大綱

12-2-1 命令式 FORTRAN IBM公司於1954年所發展出來的高階程式語言,一開始應用於IBM 740電腦的科學計算,現在則廣泛應用於經濟分析、工程數學及科學研究 ALGOL 在1960年代所發展出來的程式語言,主要用途是描述演算法 回章節大綱

12-2-1 命令式 BASIC 將FORTRAN加以簡化所創立的程式語言,接近人類自然語言及數學運算式,學習容易 C 12-2-1 命令式 BASIC 將FORTRAN加以簡化所創立的程式語言,接近人類自然語言及數學運算式,學習容易 C AT&T貝爾實驗室Dennis Ritchie於1972年所發展出來的程式語言,以C語言撰寫的程式具可攜性,執行速度快 回章節大綱

12-2-1 命令式 COBOL 美國國防部成立協會於1959年發展的程式語言,主要用途是從事大量檔案處理、資料輸入/輸出與商業計算 12-2-1 命令式 COBOL 美國國防部成立協會於1959年發展的程式語言,主要用途是從事大量檔案處理、資料輸入/輸出與商業計算 Ada具有高度的可攜性與可讀性,適合用來撰寫即時系統或同步運算程式 Pascal 承襲ALGOL理念所發展出來的程式語言,應用於校園教學 回章節大綱

12-2-2 函數式 函數式型態程式語言 LISP ML Miranda Gofer Scheme CLOS 函數式 (functional paradigm) 程式語言的代表首推LISP 由美國麻省理工學院 (MIT) 於1958年為人工智慧方面應用所發展,MacLISP強調效能與品質,InterLISP提供結構化的編輯器環境,Common LISP是使用最廣泛的版本 回章節大綱

12-2-3 邏輯式 邏輯式型態 (logic paradigm) 程式語言代表首推PROLOG,具邏輯推理性,主要用途是搜尋資料庫、定義演算法、撰寫編譯器、開發專家系統等 回章節大綱

12-2-4 物件導向式 物件導向式 (object-oriented paradigm) 程式語言的代表首推Simula,由KristenNygaard與Ole-Johan Dahl於1961 ~ 1967年所發展,其它還有SmallTalk、C++、Java、C#…。 物件導向程式設計 (OOP,object oriented programming) 是軟體發展過程極具影響性突破,物件可在不同的應用程式中被重複使用 回章節大綱

12-2-4 物件導向式 C++ AT&T貝爾實驗室承襲C語言理念發展的物件導向程式語言 Java 12-2-4 物件導向式 C++ AT&T貝爾實驗室承襲C語言理念發展的物件導向程式語言 Java Sun公司承襲C++理念發展的物件導向程式語言 C# 從C/C++ 發展出的簡單、現代化、具物件導向、型別安全的程式語言,語法類似C/C++ 回章節大綱

12-3 程式語言的設計 資料型別 (data type) 決定了資料將佔用的記憶體空間、能夠表示的範圍及程式處理資料的方式 Java規定變數在使用之前必須宣告資料型別 回章節大綱

12-3 程式語言的設計 常數 (constant) 列舉 (enumeration) 結構 (structure) final float PI = 3.14159; 列舉 (enumeration) enum weekdays {sun, mon, tue, wed, thu, fri, sat}; 結構 (structure) struct card{ int pips; char suit; }; 回章節大綱

12-3 程式語言的設計 陣列 (array) 陣列可存放多個資料 多數程式語言預設以索引0代表第一個元素,索引n - 1代表第n個元素 回章節大綱

12-3 程式語言的設計 流程控制 (flow control) 決定了程式的執行方向 第一種判斷結構 if (expression) statementA 第二種判斷結構 else statementB 回章節大綱

12-3 程式語言的設計 第三種判斷結構 switch (expression){ case value1: statement1 … default: statementN } 回章節大綱

12-3 程式語言的設計 第一種迴圈結構 while(expression) statementA 第二種迴圈結構 do 回章節大綱

12-3 程式語言的設計 第三種迴圈結構 for(expression1, expression2, expression3) statementA 回章節大綱

12-3 程式語言的設計 程序可將一段具有某種功能的敘述區塊寫成一個獨立的程式單元,給予特定名稱 程序使程式的執行速度減慢,因為多了呼叫,執行速度比直接將敘述寫進程式裡慢 參數的傳遞方式 傳值呼叫 (call by value) 傳址呼叫 (call by reference) 回章節大綱

12-4 程式設計的過程 定義與分析問題 設計演算法 流程圖 虛擬碼 撰寫程式 偵錯與測試 常見的程式錯誤 測試資料 維護與更新 回章節大綱

12-5 程式執行的過程 程式執行的過程: 文字編輯器或程式開發工具 巨集處理程式 組譯程式或編譯程式 偵錯程式 連結程式 (linker) /載入程式 (loader) 回章節大綱

12-4 程式設計的過程 虛擬碼 近似英文語法更為精確的方式來描述問題解法,舉例來說,假設要計算書籍的出貨金額,已知的資料有書籍的定價與數目,透過如下虛擬碼描述解決問題的方法: total = price per book * numbers of books 回章節大綱 回12-4 程式設計的過程

12-4 程式設計的過程 常見的程式錯誤有下列兩種: 終止執行錯誤 (Fatal Error) 這類的錯誤會導致程式終止執行 運作錯誤 (Nonfatal Error) 這類的錯誤會產生錯誤的執行結果 回章節大綱 回12-4 程式設計的過程

12-4 程式設計的過程 我們可藉由輸入下列資料檢查程式能否正確運作, 找出錯誤並加以更正: 合法的資料 不合法的資料 接近合法邊界的資料 回章節大綱 回12-4 程式設計的過程

課後習題 1. 機器語言與高階語言之異同。 2. 組譯語言、編譯語言與解譯語言之意用途與差異。 3. 何謂資料型別,分為那兩種? 4. 除基本型別外,一般程式語言又支援那些型別? 5. 程式流程分成那三種基本形式? 6. Algorithm, Pseudo-code, Program, Sub-procedure (Sub-program), Statement, Expression之意義。 7. Call by value與Call by reference之意義與差別。

資料結構課後習題 1. 基本資料型態有那幾種基本形式。 2. 常見的抽象資料型太有那些類型。 3. Array 與 Linked List之異同, 各有何優缺點。 4. 圖示Linked List Node之插入與刪除。 5. 排序之意義與用途。 6. Stack 與 Queue 之意差異, 使用時機為何? 7. 如何建立Binary Search Tree, 使用時機為何?