C++程序設(shè)計(第3章)_第1頁
C++程序設(shè)計(第3章)_第2頁
C++程序設(shè)計(第3章)_第3頁
C++程序設(shè)計(第3章)_第4頁
C++程序設(shè)計(第3章)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C++程序設(shè)計(第3章)C++教程計算機基礎(chǔ)教學(xué)部第3章C流程控制本章學(xué)習(xí)重點掌握內(nèi)容:結(jié)構(gòu)化程序設(shè)計的程序結(jié)構(gòu)選擇結(jié)構(gòu)和構(gòu)成選擇的語句循環(huán)結(jié)構(gòu)和構(gòu)成循環(huán)的語句結(jié)構(gòu)化程序設(shè)計的典型算法和應(yīng)用C++教程計算機基礎(chǔ)教學(xué)部第3章C流程控制3.13.23.33.43.53.6算法與流程圖C語句和程序的三種基本結(jié)構(gòu)順序結(jié)構(gòu)程序選擇結(jié)構(gòu)程序循環(huán)結(jié)構(gòu)程序設(shè)計常用算法及應(yīng)用實例C++教程計算機基礎(chǔ)教學(xué)部3.1算法與流程圖3.1.1算法的概念數(shù)據(jù)結(jié)構(gòu)+算法=程序 N.Wirth所謂算法,是指為了解決一個問題而采取的方法和步驟。當(dāng)利用計算機來解決一個具體問題時,也要首先確定算法。例如,要計算S=1+2+3+…+100,算法是程序設(shè)計的靈魂,而程序設(shè)計語言是表達算法的形式。C++教程計算機基礎(chǔ)教學(xué)部3.1算法與流程圖正確算法的主要特性:1.有窮性一個算法應(yīng)該包含有限的操作步驟,而不能是無限的。2.確定性算法中的每一個步驟應(yīng)當(dāng)是確定的,而不應(yīng)當(dāng)是含糊的,應(yīng)是十分明確無誤的。3.有效性算法中的每一個步驟都應(yīng)當(dāng)有效的執(zhí)行,并得到確定的結(jié)果。4.有0個或多個輸入。5.有一個或多個輸出。C++教程計算機基礎(chǔ)教學(xué)部3.1.2算法的描述一、傳統(tǒng)流程圖流程圖由一些特定意義的圖形、流程線及簡要的文字說明構(gòu)成,它能清晰明確地表示程序的運行過程,傳統(tǒng)流程圖由以下圖形組成:C++教程計算機基礎(chǔ)教學(xué)部3.1.2算法的描述二、N-S圖1973年,美國學(xué)者I.Nassi和B.Shneiderman提出在這種流程圖中,全部算法寫在一個大矩形框內(nèi),該框中還可以包含一些從屬于它的小矩形框。例如網(wǎng)上購物的N-S圖C++教程計算機基礎(chǔ)教學(xué)部3.1.2算法的描述三、自然語言描述可使用漢語、英語和數(shù)學(xué)符號等,通俗易懂,但描述冗長,易引起歧義性,一般用于算法較簡單的情況。算法舉例:對一個大于2的正整數(shù),判斷它是不是一個素數(shù)。方法:將n(其中n2)作為被除數(shù),將2到(n-1)各個整數(shù)輪流作為除數(shù),如果都不能被整除,則n為素數(shù)。算法表示如下:51輸入n的值S2:2i(i作為除數(shù))S3:n被i除,得余數(shù)rS4:如果r等于0,表示n能被i整除,則打印n“不是素數(shù)”算法結(jié)束;否則執(zhí)行S5S5:i+1iS6:如果in-1,返回S3;否則,打印n“是素數(shù)”,算法結(jié)束。C++教程計算機基礎(chǔ)教學(xué)部3.1.2算法的描述四、偽碼描述偽碼是指介于自然語言和計算機語言之間的一種代碼,是幫助程序員制定算法的智能化語言,它不能在計算機上運行,使用靈活,無固定格式和規(guī)范,與計算機語言比較接近。算法舉例:BEGIN1=iwhile(i50){inputni和gii+1=i}1=iwhile(i50){if(gi=80)printni和gii+1=i}END8C++教程計算機基礎(chǔ)教學(xué)部3.2C語句和程序的三種基本結(jié)構(gòu)語句是程序中最小的可執(zhí)行單位。一條語句可以完成一種基本操作,3.2.1C語句分類1.表達式語句任何一個表達式后面加上分號;例如:c=a+b;2.空語句;3.復(fù)合語句復(fù)合語句是用一對花括號{}括起來的語句塊。4.控制語句控制語句改變程序執(zhí)行的方向。例如:if語句、for語句等。C++教程計算機基礎(chǔ)教學(xué)部C程序的三種基本結(jié)構(gòu)在過程化程序設(shè)計中,按照結(jié)構(gòu)化設(shè)計的思想由語句構(gòu)成三種基本結(jié)構(gòu)。1.順序結(jié)構(gòu)程序按照語句的書寫順序依次執(zhí)行,語句在前的先執(zhí)行,語句在后的后執(zhí)行,順序結(jié)構(gòu)只能滿足設(shè)計簡單程序的要求。2.選擇結(jié)構(gòu)(也稱分支結(jié)構(gòu))在選擇結(jié)構(gòu)中,程序根據(jù)判斷條件是否成立,來選擇執(zhí)行不同的程序段。3.循環(huán)結(jié)構(gòu)在循環(huán)結(jié)構(gòu)中,程序根據(jù)判斷條件是否成立,來決定是否重復(fù)執(zhí)行某個程序段。C++教程計算機基礎(chǔ)教學(xué)部結(jié)構(gòu)化算法3種基本結(jié)構(gòu):順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)。不存在無規(guī)律的轉(zhuǎn)移,只有在本結(jié)構(gòu)內(nèi)才允許存在分支或者向前向后的跳轉(zhuǎn)。由結(jié)構(gòu)化算法編寫的程序稱為結(jié)構(gòu)化程序。C++教程計算機基礎(chǔ)教學(xué)部結(jié)構(gòu)化程序設(shè)計的核心思想采用順序、選擇和循環(huán)三種基本結(jié)構(gòu)作為程序設(shè)計的基本單元只有一個入口;只有一個出口;無死語句,即不存在永遠都執(zhí)行不到的語句;無死循環(huán),即不存在永遠都執(zhí)行不完的循環(huán)。采用“自頂向下、逐步求精”和模塊化的方法進行結(jié)構(gòu)化程序設(shè)計C++教程計算機基礎(chǔ)教學(xué)部3.3順序結(jié)構(gòu)程序順序結(jié)構(gòu)是最簡單、最常用的C語言程序結(jié)構(gòu)。特點:“按部就班,依次執(zhí)行”(a)傳統(tǒng)流程圖順序結(jié)構(gòu)流程圖(b)NS流程圖C++教程計算機基礎(chǔ)教學(xué)部銀行存款計算【例3.0]設(shè)銀行定期存款的年利率rate為2.25%,并已知存款期為n年,存款本金為capital元,試編程計算n年后的本利之和deposit。輸入n和capital的值順序結(jié)構(gòu)的基本程序框架:step1輸入算法所需要的數(shù)據(jù)step2進行運算和數(shù)據(jù)處理step3輸出運算結(jié)果數(shù)據(jù)利用公式計算本利之和deposit輸出計算結(jié)果deposit計算存款本利之和的算法N-S圖C++教程計算機基礎(chǔ)教學(xué)部銀行存款計算#includemath.h#includestdio.hvoidmain(){intn;doublerate=0.0225;doublecapital;doubledeposit;//主函數(shù)首部//存款期變量聲明//存款年利率變量聲明//存款本金變量聲明//本利之和變量聲明printf("Pleaseenteryear,capital:");//顯示用戶輸入的提示信息scanf(“%d,%lf”,n,capital);//輸入數(shù)據(jù),數(shù)據(jù)間以逗號分隔deposit=capital*pow(1+rate,n);//計算存款利率之和,pow為冪函數(shù)printf(“deposit=%f\n”,deposit);//打印存款本利之和}C++教程計算機基礎(chǔ)教學(xué)部“雞兔同籠”問題【例3.1】“雞兔同籠”問題。雞有2只腳,兔有4只腳,如果已知雞和兔的總頭數(shù)為h,總腳數(shù)為f。問籠中雞和兔各有多少只?輸入總頭數(shù)h和總腳數(shù)f的值利用公式計算雞和兔的只數(shù)輸出雞和兔的只數(shù)“雞兔同籠”問題的算法N-S圖C++教程計算機基礎(chǔ)教學(xué)部“雞兔同籠”問題#includeiostream.hvoidmain(){inth,f,chicken,rabbit;cout“請輸入雞和兔的總頭數(shù):";cinh;cout"雞和兔的總腳數(shù)(偶數(shù)):";cinf;chicken=(4*h-f)/2;rabbit=(f-2*h)/2;cout"則籠中雞有"chicken"只,兔有"rabbit"只。"endl;}C++教程計算機基礎(chǔ)教學(xué)部一元二次方程求根編程計算方程ax+bx+c=0的根,a,b,c由2鍵盤輸入,假設(shè)b-4ac0。用自然語言描述的算法:step1step2輸入a,b,c。計算判別式disc=b*b-4*a*c。2step3由于假設(shè)判別式大于0,所以可直接按求根公式計算兩個實根x1和x2。step4輸出x1和x2。C++教程計算機基礎(chǔ)教學(xué)部一元二次方程求根#includemath.h#includestdio.hvoidmain(){floata,b,c,disc,x1,x2,p,q;printf(“Pleaseenterthecoefficientsa,b,c:”);//顯示提示信息scanf(“%f,%f,%f”,a,b,//輸入a,b

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論