- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章程式語言
* 傳址呼叫法解答 變數x,y與儲存區空間值的對應情形如上圖 型式參數a,b將接收到由實際參數x,y傳遞來的位址,換句話說,系統不需配置額外的記憶體空間供型式參數a,b使用。變數x、y、a及b與儲存區空間值的對應情形如上圖 因執行副程式,使得變數a、b之值交換,變數x、y、a及b與儲存區空間值的對應情形如上圖 * 範例 請分別以(1)傳值呼叫法,(2)傳址呼叫法來處理右方程式段之參數傳遞問題,並求得答案 * 傳值呼叫法解答 * 傳址呼叫法解答 * 範例 假設採用靜態領域法且參數傳遞法採用傳值呼叫法,則右方程式執行結果為何? * 本題中由於在不同的程式段中,定義了相同符號的變數,為了要方便區分,將採用以下規則來處理變數同名問題:(以變數x為例) 由於在主程式A及副程式C中均定義了變數x,因此 用xA代表在程式段A中定義的變數x 用xC代表在程式段C中定義的變數x * (1)在A中執行 (2)A呼叫C,在C中執行 * (3)C呼叫B,在B中執行 (4)由B return回C中執行 (5)由C return回A中執行 * 考慮右方程式,假設參數傳遞法採用傳址呼叫法,請分別求出使用靜態領域法及動態領域法的執行結果 * (1)在MAIN中執行 (2)MAIN呼叫B,在B中執行 * (3)B呼叫A,在A中執行 * (4)由A return回B,執行ZB=XB敘述 靜態領域法結果如上圖 動態領域法結果如上圖 (5)由B return回MAIN,執行writeln(YMAIN) 靜態領域法結果:20 動態領域法結果:25 * 範例 請以遞迴副程式觀念來設計程式段,此程式段可求得 (1)S的值,S=1+2+3+…+N。 (2)N的階層值,N!=1×2×3×…×N。 * 動態連結函式庫(dynamically linked libraries, DLLs) 動態鏈結(dynamic linking) 把一些經常會共用的程式碼製作成DLL檔(可執行檔) 當程式執行時呼叫到DLL檔內的函數時,作業系統才會把DLL檔載入記憶體內,當程式需求函數才進行鏈結 透過動態鏈結方式可大幅降低記憶體空間被浪費的可能性 * 利用「while-loop」完成 s=1+2+…+100 * Pascal語言的「while-loop」 while-loop」語法 若「迴圈敘述」只有一條,語法結構中的「begin」及「end」 可以省略,否則「begin」及「end」必須被保留下來 * Basic語言的「while-loop」 「while-loop」語法如右 不論何種語言的「while-loop」之語意均相同,都是在條件成立時執行迴圈敘述,否則就結束迴圈執行之動作 「while-loop」的另有一特性就是迴圈執行之次數事先可不確定 * 範例 * C/C++/Java 語言的「for-loop」 語法結構如右 * 範例 * 範例 * Pascal語言的for loop * Pascal語言的for loop (cont.) * 範例 * Basic語言 的 for loop * 範例 * 範例 * 範例 * 範例 * 範例 * 後測迴路 後測迴路的運作原則是先執行迴圈敘述再判斷繼續執行迴圈敘述的條件是否成立,若「成立」則執行迴圈敘述,若「不成立」則跳離迴圈結構 迴圈執行的最少次數是1次 迴圈執行的最多次數是無限多次 * C/C++/Java語言的後測迴路 語法結構如右 先執行迴圈敘述再檢查條件,條件成立時執行迴圈敘述,當條件不成立時將離開迴圈結構 * 以do-while loop來完成s=1+2+…+100 此程式段的「條件」為「i = 100」 先執行迴圈敘述「s=s+i; i=i+1;」再做條件測試,若條件成立則再執行迴圈敘述「s=s+i; i=i+1;」一次 在i的值為1~100時迴圈敘述會執行 * Pascal語言的後測迴路 語法結構如右 先執行迴圈敘述再檢查條件,條件不成立時執行迴圈敘述,當條件成立時將離開迴圈結構 * 範例 以for-loop設計程式段 ,此程式段可求得 (1)S的值,S=1+2+3+…+N。 (2)N的階層值,N!=1×2×3×…×N * 副程式與參數傳遞 撰寫程式時通常會把某些可完成特定功能的敘述集合在一起,此類被集合在一起的程式段被稱為副程式(subroutine) 副程式可以重複被呼叫 * 副程式的組成 副程式由四項元素組成 副程式名稱、參數、執行環境及程式段 參數分為實際參數及型式參數二類 實際參數(actual parameter)是指呼叫敘述中的參數串列 型式參數(formal parameter)則是指被呼叫的副程式中的參數串列 *
您可能关注的文档
最近下载
- 重症护理夜班值班课件.pptx VIP
- 医用空压机基础知识培训课件.pptx VIP
- 2026版高考物理专题提升练习-动量守恒在子弹打木块模型和滑块.docx VIP
- SICK西克KTS&KTX Prime色标传感器操作手册.pdf VIP
- 10.1《 劝学》课件(共36张PPT) 2024-2025学年统编版高中语文必修上册.pptx VIP
- 梅州围龙屋一种富有特色的典型客家围村建筑.pptx VIP
- SICK西克KTS&KTX Prime操作手册.pdf VIP
- [2025秋期版]国开电大专科《人力资源管理》一平台形考任务一至四在线形考试题及答案 (2).pdf
- 模型1弹簧模型-动量守恒的九种模型解读.docx VIP
- 二年级数学上册北师版25秋《小学学霸A卷》.pdf VIP
文档评论(0)