程序的設(shè)計(jì)舉例課件_第1頁
程序的設(shè)計(jì)舉例課件_第2頁
程序的設(shè)計(jì)舉例課件_第3頁
程序的設(shè)計(jì)舉例課件_第4頁
程序的設(shè)計(jì)舉例課件_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

程序的設(shè)計(jì)舉例程序的設(shè)計(jì)舉例程序的設(shè)計(jì)舉例BA圖傳統(tǒng)流程圖順序結(jié)構(gòu)BABA圖傳統(tǒng)流程圖順序結(jié)構(gòu)BABN如果成績<60那么通知補(bǔ)考否則告知你考試成績AY條件PABNY條件P分支結(jié)構(gòu)(選擇結(jié)構(gòu))條件PA當(dāng)型循環(huán)直到型循環(huán)真假假條件PA假真循環(huán)結(jié)構(gòu)當(dāng)型循環(huán)A真假假條件P循環(huán)結(jié)構(gòu)當(dāng)P為真A當(dāng)P為真A直到型循環(huán)條件PA假真循環(huán)結(jié)構(gòu)直到P為假A直到P為假A復(fù)合語句{}括住的若干條語句構(gòu)成一個(gè)復(fù)合語句語句塊內(nèi)可以定義變量變量僅在定義它的復(fù)合語句內(nèi)有效變量必須在復(fù)合語句的開頭定義復(fù)合語句可以用在任何可以使用語句的地方選擇結(jié)構(gòu)的一種最常用形式

(表達(dá)式)

語句1;

語句2;

語句3表達(dá)式值非0時(shí),執(zhí)行語句1,然后語句3;

表達(dá)式值為0時(shí),執(zhí)行語句2,然后語句3部分可以沒有。

(表達(dá)式)

語句1;

語句3當(dāng)表達(dá)式值為0時(shí),直接執(zhí)行語句3嵌套使用時(shí),注意和誰配對(duì)的問題的一種擴(kuò)展形式

(表達(dá)式)

語句1;

(表達(dá)式)

語句2;

(表達(dá)式)

語句3;

…………

語句4;

語句5;部分可以沒有現(xiàn)場編程完成例4.5體型判斷。按“體指數(shù)”對(duì)肥胖程度進(jìn)行劃分:體指數(shù)t=體重w/(身高h(yuǎn))2

(w單位為公斤,h單位為米)當(dāng)t<18時(shí),為低體重;當(dāng)t介于18和25之間時(shí),為正常體重;當(dāng)t介于25和27之間時(shí),為超重體重;當(dāng)t>=27時(shí),為肥胖。編程從鍵盤輸入你的身高h(yuǎn)和體重w,根據(jù)給定公式計(jì)算體指數(shù)t,然后判斷你的體重屬于何種類型。用3種方法編程:算法1:用不帶子句的語句編程算法2:用在子句中嵌入語句的形式編程算法3:用在子句中嵌入語句的形式編程多路選擇

(表達(dá)式){

常數(shù)1:

語句序列1;

常數(shù)2:

語句序列2;

…………

:

語句序列3;

}可以沒有,但最好不省略不要忘記現(xiàn)場編程完成計(jì)算器程序……例4.8編程設(shè)計(jì)一個(gè)簡單的計(jì)算器程序,要求根據(jù)用戶從鍵盤輸入的表達(dá)式:操作數(shù)1運(yùn)算符操作數(shù)2

然后,計(jì)算表達(dá)式的值,指定的運(yùn)算符為加(+)、減(-)、乘(*)、除(/)循環(huán)——,(表達(dá)式)

{

語句;}(表達(dá)式1;表達(dá)式2;表達(dá)式3)

{

語句;}(表達(dá)式)

{

語句;}只要表達(dá)式的值為非0,就重復(fù)執(zhí)行語句,直到表達(dá)式值為0時(shí)止(表達(dá)式1;表達(dá)式2;表達(dá)式3)

{

語句;}首先執(zhí)行表達(dá)式1。如果表達(dá)式2的值為非0,就重復(fù)執(zhí)行語句和表達(dá)式3,直到表達(dá)式2的值為0時(shí)止相當(dāng)于:

表達(dá)式1;

(表達(dá)式2){

語句;

表達(dá)式3;

}表達(dá)式1和表達(dá)式3可以沒有或者是用逗號(hào)分隔的多個(gè)表達(dá)式的組合。但最好不要有太多的表達(dá)式組合注意在和語句之后一般沒有分號(hào)有分號(hào)表示循環(huán)體就是分號(hào)之前的內(nèi)容(空循環(huán)體)

(i<100);

;(i=0;i<100;);

("",i);通常有一個(gè)循環(huán)變量控制循環(huán)的次數(shù),不要在循環(huán)體內(nèi)改變這個(gè)變量

{

語句;

}(表達(dá)式);首先執(zhí)行語句,然后判斷表達(dá)式的值。如果表達(dá)式為0,繼續(xù)向下執(zhí)行,否則,再次執(zhí)行語句,再次判斷表達(dá)式的值語句會(huì)被至少執(zhí)行一次條件PA當(dāng)型循環(huán)直到循環(huán)真假假條件PA假真假條件P條件PA假當(dāng)循環(huán)條件第一次就為假時(shí)選擇三種循環(huán)的一般原則如果循環(huán)次數(shù)已知,用如果循環(huán)次數(shù)未知,用如果循環(huán)體至少要執(zhí)行一次,用這只是“一般”原則,不是“原則”現(xiàn)場編程完成例4.6,例4.9例4.6:猜數(shù)游戲:先由計(jì)算機(jī)“想”一個(gè)數(shù)請(qǐng)人猜,如果人猜對(duì)了,則計(jì)算機(jī)給出提示:“!”,否則提示:“!”,并告訴人所猜的數(shù)是大還是小。例4.9:先由計(jì)算機(jī)“想”一個(gè)1到100之間的數(shù)請(qǐng)人猜,如果人猜對(duì)了,則結(jié)束游戲,否則計(jì)算機(jī)給出提示,告訴人所猜的數(shù)是太大還是太小,直到人猜對(duì)為止。計(jì)算機(jī)記錄人猜的次數(shù),以此來反映猜數(shù)者“猜”的水平。猜數(shù)游戲用到的庫函數(shù)隨機(jī)函數(shù)()<>在中定義,不大于雙字節(jié)整數(shù)的最大值32767產(chǎn)生[0]之間的隨機(jī)數(shù)

=();產(chǎn)生[01]之間的隨機(jī)數(shù)

=();產(chǎn)生[1]之間的隨機(jī)數(shù)

=()+a;現(xiàn)場編程完成例4.6,發(fā)現(xiàn)問題猜數(shù)游戲用到的庫函數(shù)隨機(jī)函數(shù)為函數(shù)()設(shè)置隨機(jī)數(shù)種子來實(shí)現(xiàn)對(duì)函數(shù)所產(chǎn)生的偽隨機(jī)數(shù)的“隨機(jī)化”通過鍵入隨機(jī)數(shù)種子,產(chǎn)生[0,100]之間的隨機(jī)數(shù)("",);();=()%100+1;猜數(shù)游戲用到的庫函數(shù)隨機(jī)函數(shù)為函數(shù)()設(shè)置隨機(jī)數(shù)種子來實(shí)現(xiàn)對(duì)函數(shù)所產(chǎn)生的偽隨機(jī)數(shù)的“隨機(jī)化”使用計(jì)算機(jī)讀取其時(shí)鐘值并把該值自動(dòng)設(shè)置為隨機(jī)數(shù)種子,產(chǎn)生[0,100]之間的隨機(jī)數(shù)函數(shù)()返回以秒計(jì)算的當(dāng)前時(shí)間值,該值被轉(zhuǎn)換為無符號(hào)整數(shù)并用作隨機(jī)數(shù)發(fā)生器的種子

<>(());=()%100+1;死循環(huán)永遠(yuǎn)不會(huì)退出的循環(huán)為死循環(huán)

(;;){}(1){}

{}(1)一般情況下,要極力避免死循環(huán)絕大多數(shù)程序不需要死循環(huán)。如果出現(xiàn),往往都是時(shí)間過長的循環(huán)會(huì)造成“假死”效果,也要考慮解決現(xiàn)場編程完成例4.11國王的許諾。相傳國際象棋是古印度舍罕王的宰相達(dá)依爾發(fā)明的。舍罕王十分喜歡象棋,決定讓宰相自己選擇何種賞賜。位聰明的宰相指著8×8共64格的象棋盤說:陛下,請(qǐng)您賞給我一些麥子吧,就在棋盤的第一個(gè)格子中放1粒,第2格中放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依此放完棋盤上的64個(gè)格子,我就感恩不盡了。舍罕王讓人扛來一袋麥子,他要兌現(xiàn)他的許諾。國王能兌現(xiàn)他的許諾嗎?試編程計(jì)算舍罕王共要多少麥子賞賜他的宰相,這些麥子合多少立方米?(已知1立方米麥子約1.42e8粒)總粒數(shù)為:1+2+22+23+…+263方法11.42e8<><>(){n;,=0;/*累加求和變量賦初值*/(1;n<=64;){=(2,1);/*根據(jù)累加項(xiàng)的規(guī)律計(jì)算累加項(xiàng)*/=+;/*作累加運(yùn)算*/}("=\n",);/*打印總麥粒數(shù)*/("=\n",)*打印折合的總麥粒體積數(shù)*/}方法21.42e8/*定義符號(hào)常量值為1.42e8*/<>(){n;=1,=1;/*累乘求積、累加求和變量賦初值*/

(2;n<=64;){=*2;/*根據(jù)后項(xiàng)總是前項(xiàng)的2倍計(jì)算累加項(xiàng)*/=+;/*作累加運(yùn)算*/}("=\n",);/*打印總麥粒數(shù)*/("=\n",);/*打印折合的總麥粒體積數(shù)*/}使用嵌套的循環(huán)體時(shí),應(yīng)注意以下問題在嵌套的各層循環(huán)體中,使用復(fù)合語句(即用一對(duì)大花括號(hào)將循環(huán)體語句括起來)保證邏輯上的正確性內(nèi)層和外層循環(huán)控制變量不應(yīng)同名,以免造成混亂嵌套的循環(huán)最好采用右縮進(jìn)格式書寫,以保證層次的清晰性循環(huán)嵌套不能交叉,即在一個(gè)循環(huán)體內(nèi)必須完整的包含著另一個(gè)循環(huán)合法的嵌套循環(huán)現(xiàn)場編程完成例4.14編程輸出如下形式的乘法九九表<>(){ m,n; (1;m<10;) ("%4d",m);/*打印表頭*/ ("\n"); (1;m<10;) ("-"); ("\n"); (1;m<10;) { (1;n<10;) { ("%4d",m*n); } ("\n"); }}現(xiàn)場編程完成例4.15將上例輸出格式改成如下的下三角格式打印<>(){ m,n; (1;m<10;) ("%4d",m);/*打印表頭*/ ("\n"); (1;m<10;) ("-"); ("\n"); (1;m<10;) { (1;n<;) { ("%4d",m*n); } ("\n"); }}現(xiàn)場編程完成例4.16馬克思手稿中有一道趣味數(shù)學(xué)題:有30個(gè)人,其中有男人、女人和小孩,在一家飯館里吃飯共花了50先令,每個(gè)男人各花3先令,每個(gè)女人各花2先令,每個(gè)小孩各花1先令,問男人、女人和小孩各有幾人?解方程組窮舉法方法1:采用三重循環(huán)窮舉的全部可能的組合<>(){;("\t\t\n");(0;x<=30;)(0;y<=30;)(0;z<=30;)(303*2*50)("%3d\t%5d\t%8d\n");}方法2:改進(jìn)算法<>(){;("\t\t\n");(0;x<=16;)(0;y<=25;){z=30–x-y;(3*x+2*y+z50)("%3d\t%5d\t%8d\n");}}流程的轉(zhuǎn)移控制語句語句語句語句標(biāo)準(zhǔn)庫函數(shù)()和對(duì)、、循環(huán)進(jìn)行內(nèi)部手術(shù),退出循環(huán),中斷此次循環(huán)體的執(zhí)行,開始下一次和少用為妙和假假真真break表達(dá)式1表達(dá)式2循環(huán)語句的下一條語句循環(huán)語句的下一條語句假假真真contiue表達(dá)式1表達(dá)式2continue標(biāo)號(hào)舉例:舉例

;一般形式語句標(biāo)號(hào);……

語句標(biāo)號(hào):……或語句標(biāo)號(hào):…………

語句標(biāo)號(hào);及標(biāo)號(hào)()()函數(shù)(0)作用是終止整個(gè)程序的執(zhí)行,強(qiáng)制返回操作系統(tǒng)調(diào)用該函數(shù)需要嵌入頭文件<>輸入一個(gè)整數(shù),判斷它是否是素?cái)?shù)方法1<>(){ m,i,k; ("a:"); ("",); k=(m); (2;i<;) { (0) { ("!\n"); ; } } ("!\n");: ("!\n");}a:

6

!!方法1<>(){ m,i,k; ("a:"); ("",); k=(m); (2;i<;) { (0) { ("!\n"); ; } } ("!\n");: ("!\n");}a:

5

!!方法2<>(){ m,i,k; ("a:"); ("",); k=(m); (2;i<;){ (m%i0); } (i>k) ("!\n");

("!\n"); ("!\n")

溫馨提示

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

評(píng)論

0/150

提交評(píng)論