《《基本控制結(jié)構(gòu) 》PPT課件》由會員分享,可在線閱讀,更多相關(guān)《《基本控制結(jié)構(gòu) 》PPT課件(33頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第 三 章 基 本 控 制 結(jié) 構(gòu)3.1 順 序 結(jié) 構(gòu) 程 序 設(shè) 計 3.2 選 擇 結(jié) 構(gòu) 程 序 設(shè) 計 3.3 循 環(huán) 控 制 第 三 章 基 本 控 制 結(jié) 構(gòu) 教 學(xué) 目 標(biāo) : 1.掌 握 C+ 語 言 常 用 的 輸 入 / 輸 出 方 式 2.熟 練 掌 握 if else 的 兩 種 語 法 3.掌 握 for 、 while 、 do-while 語 句 的 用 法 教 學(xué) 重 點 : 1.賦 值 語 句 、 數(shù) 據(jù) 的 輸 入 輸 出 及 輸 入 輸 出 中 常 用 的 控 制 格 式 2.程 序 設(shè) 計 中 構(gòu) 成 選 擇 、 循 環(huán) 的 算 法 ; 教 學(xué) 難 點
2、 : 選 擇 、 循 環(huán) 的 嵌 套 算 法 分 析 。 3.1.1 C+ 語 句 概 述 3.1.2 順 序 結(jié) 構(gòu) 程 序 設(shè) 計3.1.3 數(shù) 據(jù) 輸 入 與 輸 出 在 程 序 設(shè) 計 語 言 中 , 程 序 是 按 什 么 順 序 執(zhí) 行的 呢 ? 默 認(rèn) 按 程 序 中 語 句 順 序 執(zhí) 行 , 語 句 是 程 序的 基 本 功 能 單 元 。 當(dāng) 然 也 有 分 支 選 擇 , 跳 轉(zhuǎn) , 循環(huán) 非 順 序 執(zhí) 行 , 正 體 現(xiàn) 了 計 算 機(jī) 的 “ 智 能 ” 。 C+程 序 也 不 例 外 。 分 三 種 基 本 控 制 結(jié) 構(gòu) :( 1) 順 序 結(jié) 構(gòu)( 2) 選
3、擇 結(jié) 構(gòu)( 3) 循 環(huán) 結(jié) 構(gòu) C+語 句 聲 明 語 句 表 達(dá) 式 語 句 選 擇 語 句 循 環(huán) 語 句 跳 轉(zhuǎn) 語 句 復(fù) 合 語 句1、 聲 明 語 句 ( 說 明 語 句 ) 程 序 中 的 實 體 標(biāo) 識 符 必 須 先 聲 明 后 使 用 實 體 標(biāo) 識 符 如 : 變 量 、 常 量 、 函 數(shù) 、 結(jié) 構(gòu) 、 類 、 對 象 等 。 聲 明 的 實 質(zhì) : 告 之 實 體 類 型( 1) 變 量 聲 明 ( 2) 常 量 聲 明( 3) 函 數(shù) 聲 明 ( 4) 類 型 聲 明 聲 明 語 句 其 它 功 能 : 實 體 定 義 , 變 量 賦 值 2、 表 達(dá) 式 語
4、 句 格 式 : 表 達(dá) 式 ; 類 別 : ( 1) 賦 值 語 句( 2) 復(fù) 合 賦 值 語 句 ( 3) 增 ( 減 ) 量 語 句( 4) 函 數(shù) 調(diào) 用 語 句( 5) 輸 入 輸 出 語 句 表 達(dá) 式 語 句 與 表 達(dá) 式 的 區(qū) 別 :表 達(dá) 式 可 以 包 含 在 其 他 表 達(dá) 式 中 , 而 語 句 不 可 。例 如 : if (a=b)0) t=a;不 可 寫 為 : if (a=b;)0) t=a; 將 多 個 語 句 用 一 對 大 括 號 包 圍 , 便 構(gòu) 成 一 個 復(fù) 合 語句 , 邏 輯 上 的 一 條 語 句 例 如 空 語 句 形 式 ; 不 產(chǎn)
5、生 任 何 動 作 sum=sum+i;i+; sum=sum+i;i+;3.1.2 順 序 結(jié) 構(gòu) 程 序 設(shè) 計 簡 單 的 輸 入 輸 出向 標(biāo) 準(zhǔn) 輸 出 設(shè) 備 ( 顯 示 器 ) 輸 出例 : int x; coutx=x; 3 2 1 if 語 句 3 2 2 switch 語 句 1 、 基 本 if語 句 (一 )格 式 : If ( ) 形 式 一 :執(zhí) 行 體 為 單 條 語 句 , 帶 分 號 if(a0) a-=5; a+=5; /if語 句 之 外 為 真 為 假a10?執(zhí) 行 a減 5 執(zhí) 行 a加 5 2 、 基 本 if語 句 (二 )格 式 : If ( )
6、 形 式 二 :執(zhí) 行 體 為 復(fù) 合 語 句 , 整 個 if 語 句 結(jié) 束 不 帶 分 號 if(ab) /若 abint t=a; /則 a與 b交 換 a=b;b=t; /功 能 : 保 持 變 量 b始 終 為 最 大 值cout“ The max is:” b n ; /if語 句 之 外 3 、 Ifelse語 句 ( 擴(kuò) 展 if語 句 )格 式 :If ( ) else 為 真 為 假條 件 ?語 句 1 其 它 語 句 語 句 2 4 、 if 語 句 嵌 套 一 般 形 式 : if( ) if( ) 語 句 1 else 語 句 2else if( ) 語 句 3 e
7、lse 語 句 4l特 點 : if子 句 或 else子 句 又 包 含 ifelse語 句l注 意 :語 句 1、 2、 3、 4 可 以 是 復(fù) 合 語 句 , 每 層 的 if 與 else 配 對 , 或 用 來 確 定 層 次 關(guān) 系 。 C+規(guī) 定 :else關(guān) 鍵 字 總 是 與 它 前 面 最 近 的 未 配 對 的 可 見 的 那 個 關(guān) 鍵 字 配 對 。例 如 : if( ) /第 一 個 if if( ) /第 二 個 if if( ) /第 三 個 ifelse l注 意 : 復(fù) 合 語 句 內(nèi) 的 if 對 其 外 面 的 else 是 不 可 見 的 嵌 套 i
8、f 語 句 之 階 梯 結(jié) 構(gòu) 形 式 : if (表 達(dá) 式 1) 語 句 1 else if (表 達(dá) 式 2) 語 句 2 else if (表 達(dá) 式 3) 語 句 3 else 語 句 nl執(zhí) 行 流 程 : 按 順 序 檢 測 if 條 件 , 一 旦 滿 足 則 執(zhí) 行 相 應(yīng)l的 if子 句 , 同 時 整 個 嵌 套 if 語 句 結(jié) 束 ; 否 則 執(zhí) 行 最 后 一l個 else子 句 . 三 種 形 式 :if (表 達(dá) 式 ) 語 句例 : if (xy) couty) coutx; else cout Grade;if(=90) cout=80) cout=70)
9、cout=60) cout“ Dn” ;else cout“ En” ; 3 2 2 switch 語 句格 式 :switch ( ) case :case :case :default : 例 : 等 級 制 轉(zhuǎn) 換 為 百 分 制char grade; cingrade;switch ( grade ) case A : Cout“ 100-99” endl;case B : Cout“ 89-80” endl;case C : Cout“ 79-60” endl;case D : Cout“ Less than 60” endl;Default: Cout“ Input error!n
10、” ;/執(zhí) 行 后 不 完 全 合 意1、 switch開 關(guān) 語 句 特 殊 的 多 分 支 結(jié) 構(gòu) switch ( ) case : break;case : break;default : 例 : 等 級 制 轉(zhuǎn) 換 為 百 分 制switch ( grade ) case A : cout“ 100-99” endl; break;case B : cout“ 89-80” endl; break;case C : cout“ 79-60” endl; break;case D : cout“ Less than 60” endl; break;default: Cout“ Inpu
11、t error!n” ;/執(zhí) 行2、 Switch與 break聯(lián) 用 改 進(jìn) 3、 Switch語 句 一 般 形 式switch (表 達(dá) 式 ) case 常 量 表 達(dá) 式 1: 語 句 1 case 常 量 表 達(dá) 式 2: 語 句 2 case 常 量 表 達(dá) 式 n: 語 句 n default : 語 句 n+1 執(zhí) 行 順 序以 case中 的 常 量 表 達(dá) 式 值 為 入 口 標(biāo) 號 , 由 此 開 始 順 序 執(zhí)行 。 因 此 , 每 個 case分 支 最 后 應(yīng) 該 加 break語 句 。可 以 是 多 個 語 句 , 但 不必 用 ???以 是 整 型 、 字
12、符 型 、 枚 舉 型每 個 常 量 表 達(dá) 式 的 值不 能 相 同 , 次 序 不 影響 執(zhí) 行 結(jié) 果 。 4、 break語 句使 程 序 從 switch語 句 內(nèi) 跳 出 (另 還 可 從 循 環(huán) 體 跳 出 ) , 繼續(xù) 執(zhí) 行 邏 輯 上 的 下 一 條 語 句 。 不 宜 用 在 別 處 。5、 使 用 switch語 句 應(yīng) 注 意 的 問 題 case分 支 可 包 含 多 個 語 句 , 且 不 用 。 表 達(dá) 式 、 判 斷 值 都 是 int型 或 char型 。 若 干 分 支 執(zhí) 行 內(nèi) 容 相 同 可 共 用 一 組 語 句 。 3 3 1 while 語 句
13、 3 3 2 do-while 語 句 3 3 3 for 語 句 3 3 1 while 語 句求 自 然 數(shù) 1 100之 和 ”我 們 知 道 是 一 個 和 累 加 運(yùn) 算 , 是 一 個 循 環(huán) 求 和 過 程 , 同 樣 可以 用 while循 環(huán) 語 句 實 現(xiàn) 。 形 式while (表 達(dá) 式 ) 循 環(huán) 體 語 句可 以 是 復(fù) 合 語 句 , 其 中 必 須含 有 改 變 條 件 表 達(dá) 式 值 的 語句 。 l 執(zhí) 行 順 序 (四 步 )( 1) 計 算 表 達(dá) 式 的 值 , 若 為 true( 非 0) 時 , 則 轉(zhuǎn) 步 驟( 2) ; 若 為 false( 0
14、) 時 ,則 轉(zhuǎn) 步 驟 ( 4) 。( 2) 執(zhí) 行 一 次 循 環(huán) 體 語 句( 3) 轉(zhuǎn) 步 驟 ( 1)( 4) 結(jié) 束 并 退 出 while循 環(huán) #includeusing namespace std;void main() int i=1, sum=0; while(i=100) sum+=i; /相 當(dāng) 于 sum=sum+i; i+; coutsum= sum100,初 始 置 1/記 錄 累 加 和 變 量 sum初 始 置 0控 制 變 量 累 加 和 當(dāng) 條 件 循 環(huán) 體 i=1 sum=0 -true - sum+i=sum=1 i=2 sum=1 -true -
15、 sum+i=sum=3 i=3 sum=3 -true - sum+i=sum=6 i=4 sum=6 -true - sum+i=sum=10 i=100sum=4950-true - sum+i=sum=5050 i=101sum=5050-false- exit 循環(huán)體當(dāng) 條 件 問 題 :1+2+3+4+100 3 3 2 Dowhile循 環(huán) 語 句適 用 : 先 執(zhí) 行 循 環(huán) 體 , 后 判 斷 條 件 的 情 況例 : dowhile語 句輸 入 一 個 整 數(shù) , 將 各 位 數(shù) 字 反 轉(zhuǎn) 后 輸 出 。#include using namespace std;int m
16、ain() int n, right_digit; cout n; / n 保 存 輸 入 的 整 數(shù) cout The number in reverse order is ; do right_digit = n % 10;/ 對 n求 模 取 出 當(dāng) 前 個 位 數(shù)cout right_digit;n /= 10; / 即 n=n/10運(yùn) 算 ,相 當(dāng) 于 對 n右 移 一 位 , 去 掉 已 取 出 的 個 位 數(shù) while (n != 0); coutendl; 運(yùn) 行 結(jié) 果 : Enter the number: 365 The number in reverse order
17、is 563 直 到 型 循 環(huán) 結(jié) 構(gòu) 與 do-while 語 句 一 般 形 式do 語 句while (表 達(dá) 式 ) 執(zhí) 行 順 序先 執(zhí) 行 循 環(huán) 體 語 句 , 后 判 斷 條 件 。表 達(dá) 式 為 true 時 , 繼 續(xù) 執(zhí) 行 循 環(huán) 體*while語 句 與 do-while語 句 的 區(qū) 別 : 一 般 形 式 比 較while (表 達(dá) 式 ) do 語 句 語 句 while (表 達(dá) 式 ) 執(zhí) 行 流 程 最 大 區(qū) 別while先 判 斷 控 制 循 環(huán) 的 條 件 , 后 執(zhí) 行 循 環(huán) 體 ;dowhile先 執(zhí) 行 循 環(huán) 體 , 后 判 斷 控 制
18、循 環(huán) 的 條 件 。 結(jié) 果 比 較 :While語 句 的 循 環(huán) 體 可 能 有 時 一 次 也 不 做 ;Dowhile語 句 的 循 環(huán) 體 任 何 情 況 下 至 少 要 做 一 次 。 3 3 3 for 語 句 求 自 然 數(shù) 1 100之 和 問 題 。分 析 : 本 題 需 要 用 累 加 算 法 , 累 加 過 程 是 一 個 循 環(huán) 過 程 ,可 以 用 for語 句 實 現(xiàn) 。 語 法 形 式for (表 達(dá) 式 1; 表 達(dá) 式 2; 表 達(dá) 式 3) 語 句執(zhí) 行 流 程 ( 五 步 ) 循 環(huán) 前 先 求 解為 true時 執(zhí) 行 循 環(huán) 體每 次 執(zhí) 行 完
19、循 環(huán) 體 后 求 解 #includeusing namespace std;int main() int i, sum=0;/控 制 變 量 和 記 錄 累 加 和 變 量 for(i=1;i=100;i+) sum+=i; /相 當(dāng) 于 sum=sum+i; coutsum=sumendl; 運(yùn) 行 結(jié) 果 :sum=5050無 循 環(huán) 語 句 編 程(2*100條 語 句 )int i, sum=0;/i=1; sum+=i;i=2; sum+=i;i=3; sum+=i; i=100; sum+=i; * * * * * * * #includeusing namespace std
20、;void main() int i,j,n=4; for(i=1;i=n;i+) /輸 出 前 4行 圖 案 for(j=1;j=30;j+) cout ; /在 圖 案 左 側(cè) 空 30列 for(j=1; j=8-2*i ;j+) cout ; for(j=1; j=2*i-1 ;j+) cout*; coutendl; 31 for(i=1;i=n-1;i+) /輸 出 后 3行 圖 案 for(j=1;j=30;j+) cout ; /在 圖 案 左 側(cè) 空 30列 for(j=1; j=7-2*i ;j+) cout*; coutendl; 32 小 結(jié) : 掌 握 C+語 言 循 環(huán) 語 句 的 三 種 形 式 及 區(qū) 別 , 能 夠 選 用 基本 循 環(huán) 語 句 編 寫 簡 單 的 程 序 段 。思 考 題 : 編 寫 程 序 , 求 1000之 內(nèi) 的 所 有 “ 完 全 數(shù) ” 。 所 謂 “ 完全 數(shù) ” 是 指 一 個 數(shù) 恰 好 等 于 其 因 子 之 和 。 例 如 , 6是 完 全數(shù) , 因 為 6=1+2+3作 業(yè) 題 : 1、 分 別 計 算 整 數(shù) 1至 10的 平 方 并 輸 出 2、 編 寫 程 序 , 依 次 計 算 并 輸 出 當(dāng) 半 徑 為 5, 4, 3, 2, 1時 的 圓 面 積 。