歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

順序和分支程序結(jié)構(gòu).ppt

  • 資源ID:3283858       資源大?。?span id="5eh6syj" class="font-tahoma">356.51KB        全文頁數(shù):38頁
  • 資源格式: PPT        下載積分:9.9積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

順序和分支程序結(jié)構(gòu).ppt

C語言程序設(shè)計教程,第3章:順序程序結(jié)構(gòu)和分支程序結(jié)構(gòu)(2課時),本章小結(jié),順序程序結(jié)構(gòu)分支程序結(jié)構(gòu),順序結(jié)構(gòu)程序是指在程序的每次執(zhí)行過程中,程序中的各條語句按照在程序中的先后順序依次執(zhí)行。每個順序結(jié)構(gòu)程序中的可執(zhí)行語句在每一次程序執(zhí)行的過程中,執(zhí)行且只執(zhí)行一次。順序程序是最簡單的程序。,設(shè)計一個程序,首先要將問題分析清楚,然后用適當(dāng)?shù)姆椒▽栴}描述出來,再根據(jù)問題的描述編成程序,最后調(diào)試運行。,描述問題的方法很多,有各種流程圖,層次圖、偽代碼等,更多的時候是多種手段混合使用。,1順序結(jié)構(gòu)程序,/*exam31.c*/*最簡單的C程序*/#includemain()printf(“Hello,world!、n”);,例3.1最簡單的C程序,這也是世界上第一個C程序。,頭文件,主函數(shù),例3.2已知圓的半徑為10,求圓的面積和周長,用計算機求解,程序如下,/*exam32.c*/*計算圓的面積和周長*/#include#definepi3.1415/定義符號常量main()floatarea,s;area=pi*10.0*10.0;s=2*pi*10.0;printf(“面積=%f,周長=%fn”,area,s);,數(shù)值常量,例3.3已知圓的半徑為R(R是一個可變的量),求圓的面積和周長,用計算機求解,完整程序如下,/*exam33.c*/*計算圓的面積和周長*/#includemain()floatr,area,s;scanf(“%f“,1、注釋,2、數(shù)據(jù)說明,3、數(shù)據(jù)輸入,4、數(shù)據(jù)處理,5、結(jié)果輸出,例3.4從鍵盤輸入兩個數(shù)a、b,求a除b的余數(shù)。即整除后剩下的數(shù)。編寫完整的程序。,源程序代碼如下:,/exam34.c/求兩個數(shù)的余數(shù)#includemain()inta,b,c;/說明整型變量scanf(“%d,%d”,整除運算符,輸出語句,例3.5以我國1992年工業(yè)產(chǎn)值為100,如果以9%的年增長率增長計算到2000年時的工業(yè)產(chǎn)值。,1算法分析:,對此問題,要找出問題的數(shù)學(xué)模型。設(shè)r為年增長率,n為年數(shù),v為第n年的總產(chǎn)值。則有v=100*(1+r)n,2數(shù)據(jù)結(jié)構(gòu),根據(jù)算法分析,至少要用到這么幾個量,年增長率、年數(shù)、第n年的總產(chǎn)值。而這幾個量中,年增長率肯定是小數(shù)(浮點)型數(shù)據(jù),年數(shù)是整數(shù)(整型),總產(chǎn)值不會是整數(shù),應(yīng)為浮點數(shù)。這些數(shù)據(jù)都要放在相應(yīng)的變量中,并要進行相應(yīng)的數(shù)據(jù)說明。,/exam35.c/計算到2000年的工業(yè)產(chǎn)值#include#includemain()intn;floatrate,value;n=2000-1992;rate=0.09;value=100*pow(float)(1+r),(float)n);printf(“2000年的產(chǎn)值為%f:”,value);,pow為求冪的函數(shù)格式pow(底,指數(shù))底,指數(shù)均為浮點數(shù)。,強制類型轉(zhuǎn)換,3源程序代碼,注意頭文件,此例中,只能算到2000年,且年增長率為9%時的工業(yè)產(chǎn)值。如果將工業(yè)產(chǎn)值改為10%,或者要算到其它年份,必須要修改源程序,使用不便。,方法2:用scanf函數(shù)重新編寫程序,注意開發(fā)環(huán)境的使用。,/exam25a.c/計算到指定年和指定年增長率的工業(yè)產(chǎn)值#include#includemain()intn,year;/說明整型變量floatvalue,rate;printf(“請輸入年份和年增長率:”);scanf(“%d,%f”,強制類型轉(zhuǎn)換,改寫后的程序使用更靈活。,例3.6雞兔同籠,已知雞兔總頭數(shù)為H(Heads),總數(shù)為F(Feet),問雞兔各有多少只?,1算法分析:,(1)建立數(shù)學(xué)模型設(shè)雞為x只,兔為y只,由題意有:x+y=h.(1)2*x+4*y=f.(2),(2)求解方程,找出x,y的具體求解公式:,以下用消元法找出方程的解,(2)式-2(1)式,注意:計算機不會自己建數(shù)學(xué)模型,也不會自己解方程!,2y=f-2h,y=(f-2h)/2,4(1)式-(2)式,2X=4H-F,X=(4H-F)/2,2數(shù)據(jù)結(jié)構(gòu),程序中要用到不同的數(shù)據(jù),存放頭、腳數(shù)量的變量,存放方程解(雞、兔數(shù)量)的變量,存放方程判別式的變量等。對于頭、腳的數(shù)量,肯定是整型變量,方程的解理論上講是整型,但在求解方程時要進行運算,為了避免發(fā)生錯誤,最好是用浮點數(shù)據(jù)(實型)。,3偽代碼(由于此問題比較簡單,也可直接編寫程序)。,說明變量x,y,f,h輸入數(shù)據(jù)f,h計算x,y打印結(jié)果,偽代碼是一種程序設(shè)計工具,介于程序語言與自然語言之間,偽代碼不能被計算機編譯,但它很容易翻譯成高級語言.,/exam36.c#includemain()floatx,y;intf,h;printf(“InputthenumbersofHeadsandFeet:”);scanf(“%d,%d”,4源程序代碼,說明輸入數(shù)據(jù)的內(nèi)容,輸出語句,賦值語句,問題:,1、從鍵盤輸入一個數(shù),如果該數(shù)為正,打印,否則不打?。?2、將考試成績不及格的學(xué)生名單打印出來;,3、解一元二次方程,求出相應(yīng)的實根或復(fù)根。,對于上述或類似問題,需要進行某種判斷,并根據(jù)不同情況進行不同的處理,怎樣進行程序設(shè)計?,2分支結(jié)構(gòu)程序設(shè)計,解決辦法:,1、引入新的程序結(jié)構(gòu),分支結(jié)構(gòu),有時也稱判斷結(jié)構(gòu)或選擇結(jié)構(gòu)。,2、為了和分支結(jié)構(gòu)相配合,同時還要引入邏輯表達式的概念。,3、有三種形式可進行分支結(jié)構(gòu)的程序設(shè)計,A、if結(jié)構(gòu)B、多重選擇結(jié)構(gòu)(switch語句)C、無條件轉(zhuǎn)移結(jié)構(gòu)(goto語句),內(nèi)容,if語句,關(guān)系表達式和邏輯表達式,if語句的變形及嵌套,多重選擇語句(switch語句),無條件轉(zhuǎn)移語句(goto語句),本章小結(jié),例3.7求一元二次方程,的根,1、算法分析:,2、數(shù)據(jù)結(jié)構(gòu):由于問題簡單,只需用到一些單精度實數(shù),3、偽代碼,輸入方程系數(shù)a,b,c計算判別式d=b*b-4*a*cif判別式大于等于0then計算兩個實根定位輸出光標(biāo)打印結(jié)果else計算實部計算虛部定位輸出光標(biāo)打印結(jié)果endprogram,4、源程序清單,/exam37.c#include#includemain()floata,b,d,c,x1,x2,p,q;printf(“輸入方程系數(shù):”);scanf(“%f,%f,%f”,求平方根的函數(shù),關(guān)系運算符,例3.8商店售貨,按購買貨物款的多少分別給予不同的優(yōu)惠折扣,編程計算實際應(yīng)付貨款。,購貨不足250元,沒有折扣;購貨250元(含250元,下同),不足500元,減價5%;購貨500元,不足1000元,減價7.5%;購貨1000元,不足2000元,減價10%;購貨2000元及以上,減價15%;,1、算法分析:設(shè)購物款為M,折扣為D,則D可表示為:D=0(M250)D=0.05(250M<500)D=0.075(500M<1000)D=0.1(1000M=2000)d=0.15;t=m*(1-d);/計算應(yīng)付款printf(“實際應(yīng)付款:%f”,t);,輸入購物款:249,實際應(yīng)付款:249,輸入購物款:500,實際應(yīng)付款:462.5,例3.9購物折扣程序的另一個寫法,改寫后,程序更清晰,執(zhí)行時間更省。,/exam39.c#includemain()floatm,d,t;printf(“請輸入購物金額:”);scanf(“%f”,elsed=0.15;t=m*(1-d);/應(yīng)付款printf(“實際應(yīng)付款:%fn”,t);,例3.10從鍵盤輸入一字符,如果為Y,則打印是,為N,打印否,其它字符,打印輸入錯誤。,/exam310.c#includemain()chara;printf(“輸入一個字符:”);a=getchar();if(a=Y|a=N)if(a=“Y”)printf(“是!n”);elseprintf(“否!n”);elseprintf(“輸入數(shù)據(jù)不合要求!n”);,#includemain()intx,y,z;printf(“Iputx,y,z:”);scanf(“%d,%d,%d”,例3.11,嵌套不能太深,一般以三層為限,嵌套太深,容易出錯。,嵌套演示程序,/exam311a.c#includemain()intx,y,z;printf(“Iputx,y,x:”);scanf(“%d,%d,%d”,利用邏輯表達式將例3.5改寫,改寫后程序的結(jié)構(gòu)要清晰得多。,例3.12將輸入的字母轉(zhuǎn)化為小寫字母。,1算法分析,在計算機中,處理英文字母,其實是處理它的ASCII碼值。將大寫字母變成小寫字母,就是將大寫字母的ASCII碼值變?yōu)橄鄳?yīng)的小寫字母的ASCII碼值。,大寫字母的ASCII值比小寫字母的ASCII值小32,故將相應(yīng)字母的ASCII值加32就變成了小寫字母。,程序設(shè)計時,要注意如果輸入的不是大寫的字母,則不用轉(zhuǎn)換。,/exam312a.c/將輸入的大寫字母變成小寫#includemain()charch;printf(“請輸入一個大寫英文字母:”);scanf(“%c”,2源程序代碼之一,/exam312b.c#includemain()charch;scanf(“%c”,注意:1條件運算符優(yōu)先于賦值運算符,低于關(guān)系運算符;2條件運算符的結(jié)合方向為“自右至左”a>b?a:c>d?c:da>b?a:(c>d?c:d),此處使用了條件運算符,3源程序代碼之二,#includemain()inti;printf(“輸入數(shù)字1-7:”);scanf(“%d”,例3.13入星期中的某一天,顯示對應(yīng)的英文,此例似顯復(fù)雜,是否有更好的辦法?,main()inti;printf(“輸入數(shù)字1-7:”);scanf(“%d”,例3.14用switch語句重寫打印星期程序。,main()intI;printf(“輸入數(shù)字1-7:”);scanf(“%d”,例3.15用switch語句重寫例3.4的程序,main()chara;printf(“輸入一個字符:”);a=getchar();if(a=“Y”|a=“N”)if(a=“Y”)printf(“是n”);elseprintf(“否n”);elseprintf(“字符不合要求!n”),顯然,改寫后的程序更清晰,更簡短。,/exam315.c#includemain()chara;printf(“輸入字符:”);a=getchar();switch(a)caseY:printf(“是n”);break;caseN:printf(“否n”);break;default:printf(“字符不合要求!n”);,例3.16在屏幕上顯示菜單,分析:程序首先在屏幕上將功能顯示出來,用戶根據(jù)需要選擇相應(yīng)的功能,程序根據(jù)用戶的選擇執(zhí)行相應(yīng)的程序段。,對于這類程序,往往是用戶輸入一個英文字母,然后程序根據(jù)字母來斷別程序該執(zhí)行什么程序段,故一般用switch語句比較方便。,2源程序清單,switch(a)casei:printf(“調(diào)用輸入模塊!n”);break;caseo:printf(“調(diào)用輸出模塊!n”);break;casel:printf(“調(diào)用查找模塊!n”);break;caseq:printf(“調(diào)用退出模塊!n”);break;,/exam316.c#includemain()chara;printf(“請選擇:”);printf(“輸入i”);printf(“輸出o”);printf(“找出最長的單詞l”);printf(“退出q”);a=getchar();,執(zhí)行選項時,要調(diào)用相應(yīng)的模塊(程序段)。由于現(xiàn)在還沒有相應(yīng)的程序,暫用一條打印語句代替。,以后會用相應(yīng)程序代替,例3.17統(tǒng)計某班級中計算機課程中考試成績高于80分的人數(shù)。假設(shè)學(xué)生人數(shù)為(結(jié)束程序,按Ctrl+Break組合鍵),/exam317.c#includemain()inti=0,fs,j=0;Loop:scanf(“%d”,本章小結(jié),1、分支結(jié)構(gòu):改變程序的執(zhí)行流程,或有選擇地執(zhí)行程序;,2、ifelse和switch是結(jié)構(gòu)化語句,而goto語句不是;,3、塊if語句可以取代所有的分支結(jié)構(gòu),而多重分支結(jié)構(gòu)不可;,4、塊if語句中的條件可以是復(fù)雜邏輯表達式,而多重分支中的條件只能是簡單表達式;,5、塊if與goto語句結(jié)合,可以構(gòu)造任何復(fù)雜的循環(huán),但用專門的循環(huán)語句更方便。,作業(yè),編寫程序,接受用戶輸入的整數(shù),如果是奇數(shù),則乘3加1后輸出結(jié)果,是偶數(shù),則除2后輸出結(jié)果。已知2006年的12月1日是星期五,編寫程序,接受用戶輸入的131間的整數(shù),判斷是星期幾,打印出結(jié)果。將上題的結(jié)果按如下格式輸出:,Calendar2006-12-SuMoTuWuThFrSa-31-,作業(yè)(續(xù)),接受用戶輸入的年份和月份,判斷是否是閏年,輸出該月的天數(shù)(用switch語句實現(xiàn))。,

注意事項

本文(順序和分支程序結(jié)構(gòu).ppt)為本站會員(za****8)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!