第三章 變數與繫結 陳維魁 博士 儒林圖書公司. 2 大綱  變數的定義  變數元件  儲存區配置問題  參考的透明性  完全計算  捷徑計算  繫結 (binding)  繫結時間  精選習題.

Slides:



Advertisements
Similar presentations
Divide-and-Conquer. 什麼是 divide-and-conquer ? Divide 就是把問題分割 Conquer 則是把答案結合起來.
Advertisements

6-1 指標簡介 6-2 指標與陣列 6-3 動態配置記憶體 6-4 本章綜合練習
Chapter 10 馬可夫鏈 緒言 如果讀者仔細觀察日常生活中所發生的 諸多事件,必然會發現有些事件的未來 發展或演變與該事件現階段的狀況全然 無關,這種事件稱為獨立試行過程 (process of independent trials) ;而另一些 事件則會受到該事件現階段的狀況影響。
本章結構 前言 符號介紹與立透法則 指數機率分配 基本無限來源模式 基本有限來源模式 等候系統的經濟分析-最佳化 進階等候模式 16-1.
布林代數的應用--- 全及項(最小項)和全或項(最大項)展開式
第七章 抽樣與抽樣分配 蒐集統計資料最常見的方式是抽查。這 牽涉到兩個問題: 抽出的樣本是否具有代表性?是否能反應出母體的特徵?
學習C++的基本語法 認識關鍵字與識別字的不同 學習程式碼偵錯的流程 學習如何提高程式的可讀性
第九章 如何寫結果 HOW to Write the Results CONTENT OF THE RESULTS 結果的內容 – 1. 將實驗大致的描述 並不需要重複實驗細節 2. 呈現數據 並以過去時態重現 3. 在文稿裡應呈現 ” 代表數據 ” 而不是一再的重 複資料.
Reference, primitive, call by XXX 必也正名乎 誌謝 : 部份文字取於前輩 TAHO 的文章.
1 Web of Science 利用指引 單元二 瀏覽與處理查詢結果. 2 瀏覽檢索結果 查出的結果,預設以時間排列, 使用者可改變結果的排列方式: 還可以依被引用次數、相關度、 第一作者、刊名、出版年等排序 回到前先查的結果畫面 點選想看資料的完整書目 本館訂購範圍的期刊 全文,便可直接連結.
亂數產生器安全性評估 之統計測試 SEC HW7 姓名:翁玉芬 學號:
Review of Chapter 3 - 已學過的 rules( 回顧 )- 朝陽科技大學 資訊管理系 李麗華 教授.
: OPENING DOORS ? 題組: Problem Set Archive with Online Judge 題號: 10606: OPENING DOORS 解題者:侯沛彣 解題日期: 2006 年 6 月 11 日 題意: - 某間學校有 N 個學生,每個學生都有自己的衣物櫃.
第一章 變數、常數及資料型態. 變數 C 程式語言的變數名稱 第一個字必須是英文字母或底線 (_) 之後可以是數字, 英文字母或底線 (_) 不可以是保留字 例: Num (Ο) _score (Ο) C&C (X) 8num (X)
1.1 電腦的特性 電腦能夠快速處理資料:電腦可在一秒內處理數百萬個 基本運算,這是人腦所不能做到的。原本人腦一天的工 作量,交給電腦可能僅需幾分鐘的時間就處理完畢。 電腦能夠快速處理資料:電腦可在一秒內處理數百萬個 基本運算,這是人腦所不能做到的。原本人腦一天的工 作量,交給電腦可能僅需幾分鐘的時間就處理完畢。
STAT0_sampling Random Sampling  母體: Finite population & Infinity population  由一大小為 N 的有限母體中抽出一樣本數為 n 的樣 本,若每一樣本被抽出的機率是一樣的,這樣本稱 為隨機樣本 (random sample)
1. 假設以下的敘述為一未提供 “ 捷徑計算 ” 能力的程式段,試用程 式設計的技巧,使此敘述經此改 寫的動作後,具有與 “ 捷徑計算 ” 之 處理方法相同之處理模式。 if and then E1 else E2 endif.
Structural Equation Modeling Chapter 7 觀察變數路徑分析=路徑分析 觀察變數路徑分析.
JAVA 程式設計與資料結構 第十四章 Linked List. Introduction Linked List 的結構就是將物件排成一列, 有點像是 Array ,但是我們卻無法直接經 由 index 得到其中的物件 在 Linked List 中,每一個點我們稱之為 node ,第一個 node.
8.1 何謂高度平衡二元搜尋樹 8.2 高度平衡二元搜尋樹的加入 8.3 高度平衡二元搜尋樹的刪除
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
Chapter 07 低階程式語言.
第 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.
1 第十三章 Pascal 程式語言 陳維魁 博士 儒林圖書公司.
Introduction to Java Programming Lecture 5: Using Java Classes : String & Math Spring 2009.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
1 第四章 多變數函數的微分學 § 4.1 偏導數定義 定義 極限值 ■. 2 定理 極限值的基本定理 (1) 極限值的唯一性 : 若 存在,則 其值必為唯一。 (2) 若 且 ( 與 為常數 ) , 則 且 為常數且.
論文研討 2 學分 授課教師:吳俊概.
陳維魁 博士 儒林圖書公司 第四章 資料型態 陳維魁 博士 儒林圖書公司.
Chapter 13 塑模靜態觀點:物件圖 Static View : Object Diagram.
Introduction to Java Programming Lecture 17 Abstract Classes & Interfaces.
第 5 章 深入 Response 物件 製作. 網頁的轉向與強制輸出 - 讓網頁轉彎的 Redirect 敘述 運用 Response 物件的 Redirect 方法,將瀏覽器顯 示的網頁,導向至其他網頁,語法如下: Response.Redirect 網頁路徑與名稱 此網頁路徑與名稱  若是導向到同一台.
:Problem D: Bit-wise Sequence ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10232: Problem D: Bit-wise Sequence 解題者:李濟宇 解題日期: 2006 年 4 月 16.
最新計算機概論 第 5 章 系統程式. 5-1 系統程式的類型 作業系統 (OS) : 介於電腦硬體與 應用軟體之間的 程式,除了提供 執行應用軟體的 環境,還負責分 配系統資源。
Chapter 20 塑模動態觀點:狀態圖 Statechart Diagram. 學習目標  說明狀態圖的目的  定義狀態圖的基本記號  展示狀態圖的建構  定義活動、內部事件及遞延事件的狀態 圖記號.
CH 15- 元件可靠度之驗證  驗證方法  指數模式之可靠度驗證  韋式模式之可靠度驗證  對數常態模式之可靠度驗證  失效數為零時之可靠度估算  各種失效模式之應用.
資料庫程式設計與系統管理 SQL Server 2005 Express 第六章 進階資料庫設計.
第十章 再論結構. 指標與結構的關係 /* File name: ex10-1a.c */ #include int main() { struct student { char *name; int score; }; struct student st= {"Brian", 97}; struct.
Fugacity Coefficient and Fugacity
: Multisets and Sequences ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11023: Multisets and Sequences 解題者:葉貫中 解題日期: 2007 年 4 月 24 日 題意:在這個題目中,我們要定義.
:Nuts for nuts..Nuts for nuts.. ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 10944:Nuts for nuts.. 解題者:楊家豪 解題日期: 2006 年 2 月 題意: 給定兩個正整數 x,y.
1. 假設以下的敘述為一未提供 “ 捷徑計算 ” 能力的程式段,試用程 式設計的技巧,使此敘述經此改 寫的動作後,具有與 “ 捷徑計算 ” 之 處理方法相同之處理模式。 if and then E1 else E2 endif.
資料結構實習-一 參數傳遞.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2008.
計算機概論 演算法與程式語言 李明山.
: Beautiful Numbers ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11472: Beautiful Numbers 解題者:邱經達 解題日期: 2011 年 5 月 5 日 題意: 若一個 N 進位的數用到該.
Section 4.2 Probability Models 機率模式. 由實驗看機率 實驗前先列出所有可能的實驗結果。 – 擲銅板:正面或反面。 – 擲骰子: 1~6 點。 – 擲骰子兩顆: (1,1),(1,2),(1,3),… 等 36 種。 決定每一個可能的實驗結果發生機率。 – 實驗後所有的實驗結果整理得到。
函式 Function Part.2 東海大學物理系‧資訊教育 施奇廷. 遞迴( Recursion ) 函式可以「呼叫自己」,這種動作稱為 「遞迴」 此程式的執行結果相當於陷入無窮迴圈, 無法停止(只能按 Ctrl-C ) 這給我們一個暗示:函式的遞迴呼叫可以 達到部分迴圈的效果.
資料結構實習-二.
演算法 8-1 最大數及最小數找法 8-2 排序 8-3 二元搜尋法.
845: Gas Station Numbers ★★★ 題組: Problem Set Archive with Online Judge 題號: 845: Gas Station Numbers. 解題者:張維珊 解題日期: 2006 年 2 月 題意: 將輸入的數字,經過重新排列組合或旋轉數字,得到比原先的數字大,
Chapter 10 m-way 搜尋樹與B-Tree
演算法課程 (Algorithms) 國立聯合大學 資訊管理學系 陳士杰老師 Course 7 貪婪法則 Greedy Approach.
Probability Distribution 機率分配 汪群超 12/12. 目的:產生具均等分配的數值 (Data) ,並以 『直方圖』的功能計算出數值在不同範圍內出現 的頻率,及繪製數值的分配圖,以反應出該 機率分配的特性。
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2009.
5 重複迴圈 5.1 增減運算符號 增量運算符號 減量運算符號
SQL 進階查詢.
函式 Function 東海大學物理系‧資訊教育 施奇廷. 函式簡介 當程式越來越大、越複雜時,程式的維護、 除錯會變得更困難,此時必須引入函式來 簡化程式或將程式分段,將程式重複的部 分改寫為函式,將程式「模組化」 這種作法有下列優點:節省程式發展的時 間、邏輯容易瞭解、程式容易除錯、可分 工合作完成程式.
Visual C++重點複習.
1 Introduction to Java Programming Lecture 3 Mathematical Operators Spring 2008.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2010.
7.4 程式範例 在螢幕上寫出“Hello” 的程式 (參考 code/pep-p200.odc).
Microsoft Excel.
: Finding Paths in Grid ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11486: Finding Paths in Grid 解題者:李重儀 解題日期: 2008 年 10 月 14 日 題意:給一個 7 個 column.
幼兒行為觀察與記錄 第八章 事件取樣法.
1 Introduction to Java Programming Lecture 3 Mathematical Operators Spring 2009.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
VHDL語法(3).
: How many 0's? ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11038: How many 0’s? 解題者:楊鵬宇 解題日期: 2007 年 5 月 15 日 題意:寫下題目給的 m 與 n(m
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
Presentation transcript:

第三章 變數與繫結 陳維魁 博士 儒林圖書公司

2 大綱  變數的定義  變數元件  儲存區配置問題  參考的透明性  完全計算  捷徑計算  繫結 (binding)  繫結時間  精選習題

3 變數的定義  變數是由四個元件所組成 名稱 (name) 屬性 (attribute) 引用 (reference) 值 (value)

4 變數元件  名稱 變數的名字 並非所有的變數都是有名稱的,有的變數是沒 有名稱的,如指標變數 (pointer variable) 的名稱 僅是引用 (reference) 該變數的方式,並非真正 的名稱,此類變數稱為不具名變數 (anonymous variable) 。

5 變數元件  屬性 屬性即為型態,代表變數的性質 如整數、實數、字元、字串及布林值等等 變數的屬性有的程式語言是在設計程式時決定, 如 Pascal ;有些則是在執行的時候決定,如 SNOBOL

6 變數元件  引用 即指變數的儲存位址 詳細內容請見第二節之內容

7 變數元件  值 變數的值 以 C 語言的 “int x = 1;” 敘述來作為範例,此敘述 表示宣告一個名稱為 x 的變數,其屬性為整數 而值為 1 ,但其在記憶體中的位址則需視系統 是利用靜態儲存區配置或動態儲存區配置才能 決定系統會於何時配置記憶體空間給變數 x 使 用

8 儲存區配置問題  靜態儲存區配置 (static storage allocation) 代表程式執行前,配置記憶體空間給變數 如 Fortran , Cobol , Pascal 的全域變數與 PL/1 的 static 記 憶指令 可加速執行的速度。  動態儲存區配置 (dynamic storage allocation) 代表程式執行時,配置記憶體空間給變數 如 Algol 60 , APL , LISP , Snobol 與 Pascal 的區域變數 可增加執行時的彈性,但執行速度較慢

9 參考的透明性  referential transparency  意義 程式執行的過程中, 計算運算式 (expression) 後, 應 只能得到一個值, 不能更改或破壞原來執行的環 境這種現象便是參考的透明性

10 完全計算  complete circuit evaluation  指對運算式作求值動作時,必需做完整個 運算式才可得出最後的結果,如此的計算 方式便稱為完全計算

11 捷徑計算  short circuit evaluation  short cut evaluation  指對運算式 ( 通常是指布林運算式 ) 作求值 動作時,無需做完整個運算式即可得出最 後的結果

12 捷徑計算範例  A1×A2×A3×……×A100 若 A1 為 0 ,則 A1×A2×A3×……×A100 之結果為 0 ,不需將整個運算式計算完畢再決定最後的 結果值  A and B and C 若 A 為 false 則運算式的結果為 false ,不需將整 個運算式計算完畢再決定最後的結果值  A or B or C 只要 A 為 true 則整個運算式的結果就為 true ,不 需將整個運算式計算完畢再決定最後的結果值

13 捷徑計算  各種語言對 “ 捷徑計算 ” 的處理方式  內定 (default) 法 PASCAL 內定採用完全計算  若在程式段中加入 “{$B-}” 敘述,則在該敘述後之所有布林 運算式將採用捷徑計算  若利用 “{$B+}” 則可恢復完全計算 C 與 C++ 則內定採用捷徑計算  運算子 (operator) 法 ADA 利用 AND THEN 及 OR ELSE 代表採用捷徑計算  A OR ELSE B OR ELSE C 及 A AND THEN B AND THEN C  AND 及 OR 則是代表採用完全計算 JAVA 利用 || 及 && 代表採用捷徑計算,而 | 及 & 則是代表採 用完全計算。

14 繫結 (binding)  意義 繫結是指變數的名稱與其位址, 屬性或值相結合 的動作

15 繫結時間  程式語言設計時的繫結 程式語言所提供的所有可能資料型態 所有符號的意義等等  程式語言製作時的繫結 所有跟機器相關的特性及變數可能的值 在不同計算機中即使相同的數學運算式,亦可 能得到不同的結果

16 繫結時間  翻譯時的繫結 變數的位址 ( 若採靜態儲存區配置法 ) 變數真正的型態 ( 若採外顯式 —explicit 型態法 ) 。  執行時的繫結 變數的位址 ( 若採動態儲存區配置法 ) 變數真正的型態 ( 若採內隱式 —implicit 型態法 ) 變數真正的值

17 範例 假設 “y = x+100;” 為一個 C 語言的敘述 (statement) ,若 a. 以 “=” 為指定運算子 (assignment operator) b. 以 “+” 為加法符號 c.“+” 表示整數加法 d.“100” 表示十進位的一百 e. 整數 100 的內部表示法 (internal representation) f.100 為整數 g.x, y 的型態 (type) h.x, y 的值 i.x, y 的位址 (address) j.x, y 可以宣告的型態

18 精選習題  假設以下的敘述為一未提供 “ 捷徑計算 ” 能 力的程式段,請利用程式設計的技巧,使 此敘述經此改寫的動作後,具有與 “ 捷徑計 算 ” 之處理方法相同之處理模式 。 if and then E1 else E2

19 精選習題  試問在 C 語言中,最佳化編譯程式 (optimization compiler) 是否可以將二元布 林運算子 (boolean operator) 前後的兩項子敘 述 (sub-expression) 互相對調?其理由為何

20 精選習題  試說明何以動態儲存區配置允許程式中使 用遞迴呼叫 (recursive call) ,而靜態儲存區 配置則不允許?

21 精選習題  試定義何謂靜態型態繫結 (static type binding) 及動態型態繫結 (dynamic type binding)