Instructor:Po-Yu Kuo 教師:郭柏佑

Slides:



Advertisements
Similar presentations
元大京華證券 組員名單 : A 楊之奇 A 廖本揚 A 宋俊承 A 陳冠廷 A 郭峻瑋 A 指導教授 : 許素華 副教授.
Advertisements

第十八章 林肯大郡 第十八章 林肯大郡災變緊急搶救應變措施 1997 年 8 月 18 日溫妮颱風襲台,汐止鎮 的林肯大郡山崩,遭崩場土石撞擊 1997 年 8 月 18 日溫妮颱風襲台,汐止鎮 的林肯大郡山崩,遭崩場土石撞擊造成二十八人罹難八十戶住宅倒塌的慘劇 此災變要喚起國人的重視 本章介紹搜救行動緊急應變措施。
猜谜语 有个小娃娃,真是没 礼貌。 见到小树摇一摇,吓 得树叶哇哇叫。 见到小花逗一逗,摘 去她的太阳帽。 没人和它交朋友,只 好自已到外处跑。
While 迴圈 - 不知重複執行次數
CSIM, PU C Language Introduction to the C Programming Language 重覆敘述 (for,while,break,continue) 適合重複性的計算或判斷.
1.1 程序和程序设计 程 序:简单的说程序就是指令的集合。 计算机设计语言: 机器语言 :二进制 0 、 1 汇编语言:助记符(英语单词)。 高级语言: 人类自然语言(数学语言 + 英语) 如: C 语言、 Qbasic 、 VB 等 第一章:程序设计基本概念.
Instructor:Po-Yu Kuo 教師:郭柏佑
黄帝内经 内经教研室 王黎.
职官与科举 职官:在国家机构中担任一定职务的官吏,这里面有职官的名称、职权范围和品级地位等方面的内容。
2012年9月等级考试辅导 第二章 程序设计基础.
日期: 六 福 村.
花开有日 芬芳天下 “国培计划(2012)” ——幼儿园骨干教师远程培训项目 山东幼儿园教师8班第4期简报 主办人:张瑞美     
《卖火柴的小女孩》 《海的女儿》 你 认 识 这 些 图 片 的 故 事 吗 《丑小鸭》 《拇指姑娘》 它们都来自于哪位作家笔下?
庄暴见孟子 《孟子 》.
课外文言文阅读.
民主國家的政府體制 我國的中央政府體制 我國中央政府的功能 地方政府組織與功能
台塑石化 與 全國 之 財務分析 :企管二甲、乙 班級 指導 :楊雪蘭 老師 :第六組 組別 組員
銷售與顧客關係管理 巫立宇.邱志聖 著.
20、豆花庄的小家伙们.
CH11 心理疾病 李志鴻.
华 夏 之 祖 第 3 课.
法學緒論第六單元:法律適用 設計課程︰ 財經法律系 --楊東連 法學緒論-6.
TQC+ 物件導向程式認證-JAVA.
如何更好地撰写提案 阳西县政协副主席 钟基建 2015年1月.
爱的表达方式.
?????? ?????? ?????? 他是我生的 我愛怎樣就怎樣 這樣對嗎? 影片欣賞.
中鸣虚拟搜救比赛项目 (一人) 现场主题创作(40%)(一人) 3D虚拟搜救(60%)(一人).
計算機概論 使用Excel製作試算表.
鸿门宴 制作yu.
CH1 . 集 合 与 命 题.
物质的组成、性质及变化 物质的组成 构成物质的微粒 微粒间的相互作用 物质的分类 按状态分类 按组成分类 物质的性质 物理性质 化学性质.
第六章 社会主义初级阶段理论 第一节 社会主义初级阶段是我国最大的实际 第二节 社会主初级阶段的基本路线和基本纲领
凤 凰 中国古代传说中的百鸟之王,和龙一样为汉族的民族图腾。凤凰和麒麟一样,是雌雄统称,雄为凤,雌为凰,总称为凤凰,常用来象征祥瑞。亦称为丹鸟、火鸟、威凤等。
大肚宮廟巡禮 下一頁.
大嶼山 香港國際機場 及 寶蓮寺.
Ch19 創業精神 管理學:整合觀點與創新思維3/e.中山大學企管系 著.前程文化 出版.
簡易送審動態案件網 路報送作業操作訓練 資料來源 銓敘部製作 報告人 饒瑞恭 日 期: 101 年 6 月 15 日.
时代发展趋势: 科学人文交融 华中科技大学 杨叔子 2010年2月修改.
以考试说明带动二轮复习 福州第三中学 张璐.
励志班会课 高二班 班主任:彭春梅.
跨越海峡的生命桥.
尋找世界文明的曙光 美索不達米亞 將地方圖案插入此投影片 選取〔插入〕功能表 〔圖片〕指令 選取〔從檔案〕指令 選取你的標幟圖片檔案
C 程式設計— 控制敘述 台大資訊工程學系 資訊系統訓練班.
搜尋資料結構 Search Structures.
Introduction to the C Programming Language
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
Introduction to the C Programming Language
Chap 3 分支结构 3.1 简单的猜数游戏 3.2 四则运算 3.3 查询自动售货机中商品的价格.
本章中將會更詳細地考慮有關重複的概念,並且會 介紹for和do…while等兩種用來控制重複的敘述 式。 也將會介紹switch多重選擇敘述式。 我們會討論直接和迅速離開某種控制敘述式的 break敘述式,以及用來跳過重複敘述式本體剩餘 部份的continue敘述式。 本章會討論用來組合控制條件的邏輯運算子,最後.
Instructor:Po-Yu Kuo 教師:郭柏佑
計數式重複敘述 for 迴圈 P
今天,我们来学习一首南宋著名的词人辛弃疾的词——《清平乐 村居》。
第六章 安全衛生工作守則 6-1 前 言  6-2 訂定依據相關法令規定  6-3 工作守則製作程序及製作前應注意事項  6-4 如何訂定適合需要之安全衛生工作守則  6-5 結 論.
東部海岸 馬蘭國小 五年己班 閔芳頤 Enter
第三冊第十四課記承天夜遊 王永榮 將地方圖案插入此投影片 選取〔插入〕功能表 〔圖片〕指令 選取〔從檔案〕指令 選取你的標幟圖片檔案
程式結構&語法.
注音輸入法教學 大華技術學院資管系 指導老師:陳信如老師 學生:王麗嵐.
for 迴圈 while迴圈 do-while迴圈 break 與 continue goto 與 標籤 程式觀摩
C 语言程序设计 程序的循环结构 电大崇信县工作站 梁海亮.
第2章 算法与C语言程序 程序 (1)数据的描述:数据的类型和组织形式(数据结构) (2)操作的描述:操作步骤(算法) 沃思指出:
Introduction to the C Programming Language
Chap 5 函数 5.1 计算圆柱体积 5.2 使用函数编写程序 5.3 变量与函数.
合歡山 馬蘭國小 五年己班 何宜倞 ENTER.
Introduction to the C Programming Language
第三章 基本的輸出與輸入函數 (Basic Output & Input Function)
隨機數 (亂數) 10後,取餘數 n = rand(); 利用 Code::Block 驗證一下 n = rand() %10; 998
Do While 迴圈 東海大學物理系‧資訊教育 施奇廷.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
1.2.3 循环语句.
Word 2010 文書處理技巧 圖資中心資訊組 李訓榮.
Presentation transcript:

Instructor:Po-Yu Kuo 教師:郭柏佑 EL 1009 計算機概論 (電子一B) Introduction to Computer Science Ch. 7 迴圈控制 Instructor:Po-Yu Kuo 教師:郭柏佑

本章簡介 電腦程式的方便之處, 在於我們可以把各種繁雜、重複、枯燥的計算, 寫成程式, 讓電腦代替人工處理。 程式執行後, 我們只需要輸入數值和 按下 “Enter”建, 就可以得到結果。 程式之所以能完成這類的計算, 主要原因是在於它的兩種特性 - 選擇性與重複性。

本章簡介 選擇性就是根據使用者的選擇, 作出判斷並執行出正確的結果。 重複性就是程式依照設計者所設計的邏輯, 不斷的重複執行相同的程式碼, 以完成繁雜、重複的計算。 在C語言中, 這種特性可以利用迴圈來完成。

本章簡介 假設我們要寫一個計算 1+2+3+…100 的程式, 以目前所學, 我們所寫出來的程式可能如下: int main(void) { int sum=0; sum = sum+1; printf (“sum的值 %d”, sum); sum = sum+2; sum = sum+3; ………. }

本章簡介 如範例所示, 不斷寫著相同的程式碼。 如此一來, 不但沒有解決重複計算的問題, 反而浪費更多時間在撰寫程式碼上。 使用迴圈, 便可解決這類程式碼重複編寫的麻煩。 迴圈的原理也是利用條件算式判斷真假, 來決定程式碼重複的次數。

流程圖

螢幕輸出 1 加到 100 的和

螢幕輸出 1 加到 100 的和

預先條件算式迴圈:while

預先條件算式迴圈:while 先檢查條件算式結果是否為真 (即不等於 0)。 若為真, 則執行一次迴圈內的動作, 然後跳回條件算式上再檢查。 如此,一直執行到條件算式不成立為止 (等於 0) 才離開迴圈。 使用 while 語法的格式如下:

預先條件算式迴圈:while while:根據條件算式的真假, 來決定是否執行迴圈的動作。 若為真, 則執行以大括號括住的動作; 若為假則跳過動作不執行, 也就是跳出迴圈。 條件算式:可以為任何算式、變數或數值。 如果結果為非 0 的數值, 則表示為真; 否則為假。

預先條件算式迴圈:while 動作:可以為任何合法的程式語法。 while 的執行流程如下:

累加指定範圍內整數 start為起始值, end為結束值

累加指定範圍內整數

流程圖

預先條件算式迴圈:while 利用 while 進行輾轉相除法

預先條件算式迴圈:while

後設條件算式迴圈:do-while

後設條件算式迴圈:do-while do-while 是後設判斷式的迴圈, 是先執行一次動作後, 再判斷迴圈控制的條件, 若條件成立時, 再回到前面執行 { } 內的動作, 如此重複直到條件算式的結果為假為止。 此種迴圈不管怎樣, 都會先執行迴圈內容一次後, 再判斷是否要繼續執行。格式如下:

流程圖 迴圈動作會先執行一次 判斷條件設在此處

後設條件算式迴圈:do-while

後設條件算式迴圈:do-while

後設條件算式迴圈:do-while

範圍設定式迴圈:for

範圍設定式迴圈:for for 迴圈是利用一個變數值的累加或累減來控制迴圈, 等到該變數值達到設定的標準時, 就會跳出迴圈。

範圍設定式迴圈:for 初始算式:通常用來設定條件算式中會用到的變數之初始值。 條件算式:用來判斷是否執行迴圈中的程式。這個條件算式, 會在每次迴圈開始時檢查一次。 控制算式:通常用於調整條件算式中會用到的變數值, 例如 i++ 。

例 for (i=0; i<3; i++) 以 for (i=0; i<3; i++) 為例, 執行步驟如下:

流程圖

7-3-1 簡單的 for 迴圈累加 每次執行迴圈後, 便將 i 加2

7-3-2 for 迴圈中可有兩組算式

7-3-2 for 迴圈中可有兩組算式

7-3-2 for 迴圈中可有兩組算式

7-3-2 for迴圈也可用浮點數來控制

7-3-2 for迴圈也可用浮點數來控制

7-3-2 for迴圈也可用浮點數來控制

7-3-4 使用巢狀迴圈 所謂巢狀迴圈就是說在迴圈的條件算式為真時, 所執行的動作內還有其他的迴圈, 也就是說迴圈裡面還有迴圈, 如以下格式:

7-3-4 使用巢狀迴圈

從螢幕輸出九九乘法表 第一層迴圈, 條件式由 i 控制 第二層迴圈, 條件式由 j 控制

從螢幕輸出九九乘法表 j=1 j=2 j=3 j=4 j=5 j =6 j=7 j=8 j =9 i=1 i=2 i=3 i=4 i=5

強制跳出迴圈的方式

無限迴圈 當迴圈的條件算式設定有誤, 使迴圈的條件算式結果恆真, 迴圈的動作就會不斷的執行。 只有當程式被強迫中止 (按下組合鍵 Ctrl + C) 或硬體停止回應 (電腦當機) 程式才會被終止。 無限迴圈通常被使用在電腦病毒或惡意程式中, 一般的程式並不會用到。 例如: 電腦中毒後, 一直開啟小視窗, 直到當機。

7-4-1 跳出一層迴圈 while 條件永遠為真

7-4-1 跳出一層迴圈

7-4-2 跳出一輪迴圈

7-4-3 強迫程式執行指定敘述 使用 goto 可以一次跳過數個迴圈, 將程式流程移轉到其他的地方

7-4-3 強迫程式執行指定敘述

7-4-3 強迫程式執行指定敘述

goto 的優點 & 缺點 goto 並不只限用於迴圈中, 在任何位置使用 goto, 都可以使程式的執行轉移到指定的位置。 如果因為其方便性而濫用, 將會造成程式閱讀的困難, 甚至破壞整個程式的結構。 建議讀者, 如果不是很熟悉 goto 的應用, 請盡量少用。

用無窮迴圈讓系統持續運作

當迴圈的條件算式結果恆為真, 迴圈的動作就會不斷的執行, 就稱之為無窮迴圈。 在嵌入式、單晶片的程式設計中, 無窮迴圈是讓系統持續運作的主要機制。

也可用沒有算式的 for 迴圈來建立無窮迴圈:

嵌入式系統是『執行特定功能』的電腦系統, 因此只要打開開關、通電後, 就會一直執行設計好的工作。

用迴圈來延遲程式時序

在嵌入式、單晶片的程式設計中, 還有一項比較特別的迴圈應用, 就是利用沒做事的迴圈來延遲程式, 或者說讓程式故意停頓一下。

有些廠商會在其廠商自訂的函式庫中, 提供像是 delay() 之類的函式, 直接呼叫函式讓系統暫。

使用迴圈的注意事項

7-7-1 兩迴圈之間的範圍不可以交錯 兩迴圈之間的範圍不可以交錯。 條件算式的設定要合理。 依照程式需求, 選擇使用特性適合的迴圈。

7-7-1 兩迴圈之間的範圍不可以交錯 如果迴圈的動作敘述超過了一行, 就需要以大括號 { } 括住敘述的程式碼。 7-7-1 兩迴圈之間的範圍不可以交錯 如果迴圈的動作敘述超過了一行, 就需要以大括號 { } 括住敘述的程式碼。 當在同一程式中存在兩個以上的迴圈時, 兩迴圈以大括號 { } 括住敘述的程式碼不可以交錯。 以下迴圈 2 的大括號內容是空的, 而『動作 2』則變成是在迴圈 1 的大括號範圍之內。如以一來, 所得到的結果絕對不是我們想要的答案。

7-7-1 兩迴圈之間的範圍不可以交錯 兩個迴圈{ }的範圍交錯了

7-7-1 兩迴圈之間的範圍不可以交錯 當兩迴圈範圍交錯時, 編譯器會將動作 2 錯認為迴圈 1 的範圍, 而迴圈 2 的效力無法影響到動作 2。 若出現此種程式, 編譯時有時候會出現 "Compound statement missing }" 訊息, 也就是缺少標示右大括號的錯誤。

7-7-2 條件算式的設定要合理 不正確的條件算式設定會產生無限迴圈, 或者根本未執行到迴圈的內容。 因此在設定迴圈的條件式時, 請仔細檢查條件算式的推演結果, 以下是一些條件算式不合理的例子:

7-7-3 注意各種迴圈的使用時機 先判斷再決定是否執行時, 使用 while 迴圈。 先執行一次再決定是否繼續時, 使用 do-while 迴圈 準確控制迴圈內容的執行次數, 使用 for 迴圈。

綜合演練

求出 1~100 間的質數

求出 1~100 間的質數 內迴圈

求出 1~100 間的質數 每印出 5 個數, 就做換行的動作

求出 1~100 間的質數

求出 1~100 間的質數 第 9~24 行是外迴圈, 功能為設定被除數。 第 12~14 行是內迴圈, 功能是設定除數。這個迴圈會以小於被除數的數值來除被除數。 例如 : 被除數=7; 將 7 除以比他自己小的數。 7/2 7/5 7/3 7/6 7/4

求出 1~100 間的質數 如果無法除盡 (餘數不為 0), 則將旗標保持為 0, 表示為質數。 如果可以除盡 (餘數為 0), 則將旗標的數值改為 1, 表示非質數。

求出 輸入數值的位數 設計一程式可讓使用者輸入任何正整數, 計算出數 值的位數後, 將此數值的位數由螢幕輸出, 如果輸入 數值小於1, 會在螢幕印出 ” The number is smaller than 1, please input again!!!”, 讓使用者再輸入一次 數值. 說明: 執行結果 Please input any positive number: -5 The number is smaller than 1, please input again!!! Please input any positive number: 125 Number of the Digits: 3 125 有3個位數

Homework#6 1. 設計一程式可讓使用者輸入 兩個正整數, 並將所有介於此區間的 質數 列印出來. (Hints: 利用 scanf 讀進兩正整數) 2.設計一程式可讓使用者輸入任何正整數, 計算出數值的位數後, 將此數值的位數由螢幕輸出, 如果輸入數值小於1, 會在螢幕印出 ” The number is smaller than 1, please input again!!!”, 讓使用者再輸入一次數值. 繳交期限: 2017/1/5