c程序設(shè)計教程羅建軍 22080-00ch3_第1頁
c程序設(shè)計教程羅建軍 22080-00ch3_第2頁
c程序設(shè)計教程羅建軍 22080-00ch3_第3頁
c程序設(shè)計教程羅建軍 22080-00ch3_第4頁
c程序設(shè)計教程羅建軍 22080-00ch3_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、國家級精品課程網(wǎng)站(本書配套教學(xué)網(wǎng)站)第3章控制結(jié)構(gòu)3.1 程序的基本控制結(jié)構(gòu)3.2 +的控制結(jié)構(gòu)1. 順序結(jié)構(gòu)2. 選擇結(jié)構(gòu)3. 循環(huán)結(jié)構(gòu)程序設(shè)計舉例13.1 程序的基本控制結(jié)構(gòu)一.結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu)化程序設(shè)計方法的基本思想是任何程序都可以用三種基本結(jié)構(gòu)表示,即順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)。由這三種基本結(jié)構(gòu)經(jīng)過 嵌套構(gòu)成的程序稱為結(jié)構(gòu)化程序語句序列1成立條件?不成立條件?不成立語句序列成立語句序列2語句序列 1語句序列 2順序結(jié)構(gòu)2選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)二.模塊化程序結(jié)構(gòu)1. 模塊化把程序劃分為若干個模塊,每個模塊獨立存放、一個模塊完成一個

2、功能2. 目的降低程序的復(fù)雜度,使設(shè)計出來的程序便于閱讀、調(diào)試和維護(hù)。3. 一個模塊可以是一條語句、一段程序、一個函數(shù)等4. 基本特征僅有一個入口和一個出口323.2 C+的控制結(jié)構(gòu)1、順序結(jié)構(gòu)說明語句賦值語句I/O 語句復(fù)合語句和空語句2、選擇結(jié)構(gòu)(1) if 語句格式:if (表達(dá)式)語句序列1else語句序列2例3-1編程實現(xiàn)分段函數(shù)x +1,x 0y = 1,0 x 1x31 x#include using namespace std; int main( )double x, y; coutx;if(x0) y=x+1;coutx=x, y=x+1=yendl;else if(x1)

3、/ 0 x 1 y=1;coutx=x, y=yendl;else y=x*x*x;/ 1 xcoutx=x, y=x*x*x=yendl;return 0;(2) switch語句語句格式:switch(整數(shù)表達(dá)式)case 數(shù)值1:語句序列1;.case 數(shù) 值 n: 語句序列n;default :語句序列n+1;例3-2:將百分制的分?jǐn)?shù)轉(zhuǎn)換為5級制分?jǐn)?shù)編寫程序,將百分制的學(xué)生成績轉(zhuǎn)換為優(yōu)秀、良好、中等、及格和不及格的5級制成績。標(biāo)準(zhǔn)為:優(yōu)秀: 100-90分; 良好: 80-89分; 中等: 70-79分; 及格: 60-69分;不及格: 60分以下。#include using nam

4、espace std; int main()int old_grade, new_grade; coutold_grade;switch (old_grade/10)/ 根據(jù)轉(zhuǎn)換值進(jìn)行分支選擇case 10:case 9:new_grade = 5; break;case 8:new_grade = 4; break;case 7:new_grade = 3; break;case 6:new_grade = 2; break;default:new_grade = 1;coutBefore transformed, the score is old_gradeendl; coutAfter

5、transformed, the score is new_gradeendl; return 0;(1) while語句格式:3.循環(huán)結(jié)構(gòu)while(表達(dá)式)循環(huán)體語句序列條件?不成立成立例3-3:計算常數(shù)e的值計算,e = 1 + 1 + 1 + . + 1+ .1!2!n!當(dāng)通項 1 10 -7n!時停止計算#include using namespace std; int main() double e = 1.0; double u = 1.0; int n = 1;while(u = 1.0E-7)u = u/n;e = e+u;n = n+1;cout e = e ( n = n

6、 ) endl; return 0;(2) dowhile語句格式:do語句序列語句序列while (表達(dá)式);成立條件?不成立例3-4用do-while重新編寫例3-3的程序#include using namespace std; int main() double e = 1.0; double u = 1.0; int n= 1;dou = u/n;e = e+u;n = n+1;while(u=1.0E-7);cout e = e ( n = n ) endl; return 0;格式:(3) for語句for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 循環(huán)體for的執(zhí)行過程(1) 計算表達(dá)式

7、1;(2) 計算表達(dá)式2值為非0時,執(zhí)行步驟3; 值為0時退出循環(huán);(3) 執(zhí)行循環(huán)體;(4) 計算表達(dá)式3;(5)返回(2);執(zhí)行表達(dá)式 1否表達(dá)式為真是循環(huán)體執(zhí)行表達(dá)式 3例3-5:計算1+2+3+100#include using namespace std; int main()int sum=0;for(int i=1; i=100; i+)sum=sum+i;/ 累加求和cout 1+2+3+100=sumendl;return 0;例3-7:用迭代公式求平方根設(shè)x = , a則迭代公式為xn+1= (xn+ a / xn ) 2迭代結(jié)束條件取相對誤差。xn+1- xn exn+1

8、#include #include using namespace std;const double EPS = 1.0e-10; int main()double a, x;cout a;double x0, x1; x1 = 1.0;if (a0.0)/ 避免負(fù)數(shù)開方dox0 = x1;x1 = (x0+a/x0)/2;while(fabs(x0-x1)/x1)=EPS);/ fabs()函數(shù)為求絕對值的庫函數(shù)x= x1;elsex= a;if(x0)cout The negative does not have squareroot ! else endl;cout The square

9、 root of a is x endl;return 0;例3-8:求的近似值#include #include using namespace std; int main()int s = 1;double n = 1.0, u = 1.0, pi = 0.0;while(fabs(u)=1.0e-4)pi = pi+u;/ 累加通項n = n+2;s = -s;/ 符號位的生成u = s/n;/ 通項cout pi = 4*pi endl; return 0;例3-9:打印所有的水仙花數(shù)如果一個三位數(shù)的個位數(shù)、十位數(shù)和百位數(shù)的立方和等于該數(shù)自身,則稱該數(shù)為水仙花數(shù)。編一程序求出所有的水仙

10、花數(shù)。#include using namespace std; int main()int n, i, j, k;for(n=100; n=999; n+)i = n/100;/ 取出n的百位數(shù)j = (n/10)%10;/ 取數(shù)n的十位數(shù)k = n%10;/ 取出n的個位數(shù)if(n=i*i*i+j*j*j+k*k*k)cout n = i3 + j3 + k3endl;return 0;例 3-10:制作乘法表#include using namespace std; int main()int i, j;for(i=1; i10; i+)for(j=1; j=i; j+)cout j * i =i*j t; cout endl;return 0;例3-11:統(tǒng)計階乘n!的末尾中0的個數(shù)對于任意給定的一個正整數(shù)n,統(tǒng)計其階乘n!的末尾中0的個數(shù)。#include using namespace std; int main( )int n; int sum=0; int i, k;cout

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論