




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第八講:順序結(jié)構(gòu)程序設(shè)計(jì)舉例所謂的順序結(jié)構(gòu)就是從頭到尾一步步按部就班的執(zhí)行下去,不會(huì)中途出現(xiàn)放 棄或者跳轉(zhuǎn)的情況。利用這樣的思想實(shí)現(xiàn)的程序我們稱之為順序結(jié)構(gòu)程序。在前 面學(xué)習(xí)了許多知識(shí)點(diǎn)之后我們就可以開始最基本的順序結(jié)構(gòu)程序的設(shè)計(jì)了。8.1順序結(jié)構(gòu)所謂的順序結(jié)構(gòu)可以用一個(gè)成語(yǔ)形容叫“按部就班”。任何事情都遵循著先 做什么,再做什么的思想進(jìn)行。這樣的結(jié)構(gòu)是我們?nèi)粘I钪凶畛R姷慕Y(jié)構(gòu)。在順序結(jié)構(gòu)中當(dāng)一件事情開始后就再也不會(huì)停下,直到最后一步完成,整件事情做完為止,中途不會(huì)有放棄或者選擇性放棄的過(guò)程。8.2經(jīng)典算法一數(shù)據(jù)交換很多語(yǔ)言的程序設(shè)計(jì)大多數(shù)都是從數(shù)據(jù)交換這個(gè)最經(jīng)典的算法開始的,所謂的數(shù)據(jù)交換
2、是將兩個(gè)同等性質(zhì)的物質(zhì)進(jìn)行對(duì)換,例如有兩個(gè)整數(shù)a和b, a = 1,b = 2,在交換之后,使得a = 2,b = 1。交換的算法是由于變量的性質(zhì)所決定的,由于變量在同一時(shí)刻只能夠存儲(chǔ)一 個(gè)數(shù)據(jù),因此我們不能直接使用 a = b,b = a的方式對(duì)數(shù)據(jù)進(jìn)行交換。此時(shí)我們就 需要想出一些方法,幫助程序?qū)崿F(xiàn)最正確的交換。對(duì)于任何的數(shù)據(jù)我們都可以采用“第三變量法”進(jìn)行交換。所謂的“第三變量法”即借助第三個(gè)變量實(shí)現(xiàn)對(duì)數(shù)據(jù)的交換,例如對(duì) a和b的數(shù)據(jù)交換,就有:t = a; a = b; b = t;接下來(lái)我們將通過(guò)如下示意圖對(duì)“第三變量法”進(jìn)行簡(jiǎn)單的介紹:b在程序未執(zhí)行交換前,a = 1,b = 2。
3、在執(zhí)行交換算法的過(guò)程中,首先執(zhí)行“t = a” 一句,將a中的值1轉(zhuǎn)移到t中暫存,接下來(lái)執(zhí)行“ a = b;” 一句,將b之中的值2存放到變量a中,a中原先的1被覆蓋;最后執(zhí)行“ b = t; ”一句,將t中 所暫存的原先a的值1存放到變量b中,b中原有的2被覆蓋。此時(shí)a = 2,b = 1,t當(dāng)然,讀者也可以使用先暫存b的方式對(duì)a和b之中的數(shù)據(jù)進(jìn)行交換。下面 給出該案例的完整代碼: 例使用“第三變量法”交換a和b之中的數(shù)據(jù)。#i nclude <iostream> using n ames pace std;void mai n()int a = 1, b = 2;int t;/
4、定義負(fù)責(zé)暫存數(shù)據(jù)的第三變量cout << "交換前:a=" << a << ", b=" << b << endl;/請(qǐng)注意輸出變量的值時(shí)直接寫變量名不要寫諸如"a"的形式/此處開始交換算法 t = a;a = b;b = t;/此處交換算法結(jié)束cout << " 交換后:a=" << a << ",b=" << b << endl;當(dāng)然對(duì)于一些數(shù)值型的數(shù)據(jù)(所謂的數(shù)值型數(shù)據(jù)是
5、指單純的數(shù)字或者ASCII 碼),我們也可以直接采用“算數(shù)交換法”進(jìn)行交換。所謂的算數(shù)交換法是指利用數(shù)值型數(shù)據(jù)可進(jìn)行算術(shù)運(yùn)算的特性進(jìn)行交換。以上例a與b的值交換為例,則 有:a = a + b; b = a - b; a = a - b;假設(shè) a = 1,b = 2。首先執(zhí)行“ a = a + b;”,此時(shí) a = a + b = 1 +2 = 3 而 b = 2;接下來(lái)繼續(xù)執(zhí)行“ b = a - b;”,此時(shí)b = a - b = 3 - 2 = 1而a = 3;最后執(zhí)行“ a = a-b;”,此時(shí)a = a - b = 3 - 1 = 2而b = 1。至此,數(shù)據(jù)交換完成。使用算數(shù)交換法對(duì)數(shù)
6、值型數(shù)據(jù)交換的完整代碼如下:#i nclude <iostream> using n ames pace std;void mai n()int a = 1, b = 2;cout << " 交換前:a=" << a <<II,b=" << b << endl;/此處開始交換算法 a = a + b;b = a - b;a = a - b;/此處交換算法結(jié)束cout << " 交換后:a=" << a << II,b=" <
7、;< b << endl;8.3學(xué)會(huì)使用公式解決問(wèn)題有些程序我們并不需要自己去想解決方案, 我們可以通過(guò)一些既有的公式完 成任務(wù),這些公式是已經(jīng)在數(shù)學(xué)學(xué)科之中進(jìn)行推導(dǎo)而驗(yàn)證的真理,程序員只需要將這些公式利用程序設(shè)計(jì)語(yǔ)言進(jìn)行表示即可完成相應(yīng)的任務(wù)。下面將舉例說(shuō)明。例已知有某一元二次方程ax2+bx+c = 0,請(qǐng)利用鍵盤輸入a,b,c的值,并 求出兩個(gè)實(shí)數(shù)根x1與x2。(默認(rèn) >0)#i nclude <iostream> #in clude <cmath> using n ames pace std;void mai n()double a, b
8、, c;double x1, x2;double deal;/由于變量命名規(guī)則限制,因此使用單詞 deal代替cout << "請(qǐng)輸入 a,b,c 的值:"<< endl;cin » a >> b >> c;deal = b * b - 4 * a * c;/求出的值x1 = (-b) + sqrt(deal) / (2 * a);/利用求根法求 x1x2 = (-b) - sqrt(deal) / (2 * a);/利用求根法求 x2cout << "x1 =" << x
9、1 << ",x2 =" << x2 << endl;程序運(yùn)行效果如下:EB C;Wi n d 0 W5sy5te m 3 2crnd.xe請(qǐng)輸A心b.c的-值;5 -1 0 xl =0.8,x2 =0上述程序中使用經(jīng)典的一元二次方程求根法進(jìn)行求解方程, 這是一種最直觀也是最容易理解的方法。二元一次方程求根法公式為:-b ± 7護(hù)-4flcX =2a8.4簡(jiǎn)單的字符處理在前面的學(xué)習(xí)中,我們學(xué)習(xí)到了字符型數(shù)據(jù),在C/C+語(yǔ)言中,字符型數(shù)據(jù) 使用ASCII碼存儲(chǔ),即每個(gè)字符都可以得到一個(gè)具體的整數(shù)。在程序中我們通 ??梢岳眠@些AS
10、CII碼對(duì)字符進(jìn)行簡(jiǎn)單的處理。例從鍵盤上輸入一個(gè)字符,并輸出其大寫形式。#i nclude <iostream> using n ames pace std;void mai n()char c;char upper;cout << "請(qǐng)輸入一個(gè)字符:"c = getchar();/可以使用getchar函數(shù)獲取一個(gè)字符upper = c - 32;/大寫字母與小寫字母之間相差 32cout << "字符"<< c << " 的大寫形式為:"<< upper &l
11、t;< endl;程序運(yùn)行效果如下:IBM C:Wi nd oe m 3 2 cm d.exe當(dāng)然,上述的程序還是有一些問(wèn)題的,上述的程序無(wú)論輸入的是何種數(shù)據(jù), 都會(huì)進(jìn)行減32的操作,而事實(shí)上倘若用戶輸入的為大寫字母,就應(yīng)該原封不動(dòng) 的輸出,而該程序的運(yùn)行結(jié)果則為:因此我們需要對(duì)程序作出一些細(xì)微的修改,將其修改為若用戶輸入的是大寫 字母則原樣輸出,輸出的是小寫字母則進(jìn)行轉(zhuǎn)換操作。這一點(diǎn)我們可以通過(guò)條件 運(yùn)算符實(shí)現(xiàn),修改后的程序如下:#i nclude <iostream> #in elude vconi o.h> using n ames pace std;void mai n()char c;char upper;11.cout << "請(qǐng)輸入一個(gè)字符:c = getchar();upper = isupper(c) = true ? c : c - 32;/此處改動(dòng)cout << "字
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 第22章 22.1一元二次方程教學(xué)設(shè)計(jì)2024-2025學(xué)年華東師大版數(shù)學(xué)九年級(jí)上冊(cè)
- 2025年激光隧道斷面測(cè)量系統(tǒng)項(xiàng)目合作計(jì)劃書
- 2024天源新能源有限公司面向集團(tuán)內(nèi)部公開招聘10人信息筆試參考題庫(kù)附帶答案詳解
- 1+X無(wú)人機(jī)模擬試題與答案
- 2025年建筑用木料及加工木材組件項(xiàng)目合作計(jì)劃書
- 2025年貴州省六盤水市單招職業(yè)傾向性測(cè)試題庫(kù)完美版
- 2025年非電力家用器具項(xiàng)目建議書
- 2 從條件出發(fā)思考的策略(二)(教學(xué)設(shè)計(jì))-2024-2025學(xué)年三年級(jí)上冊(cè)數(shù)學(xué)蘇教版
- 2025屆廣東省廣州市高三上學(xué)期12月調(diào)研測(cè)試(零模)物理試題(B)(解析版)
- 2025至2030年中國(guó)柔光棱晶格柵射燈盤數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 溫庭筠《望江南》ppt課件
- 口腔正畸學(xué)單詞
- 2022牛排消費(fèi)趨勢(shì)報(bào)告
- TPM╲t4Step Manul(三星TPM絕密資料)
- 細(xì)菌群體感應(yīng)系統(tǒng)及其應(yīng)用課件
- 司法鑒定程序通則(試行)
- 部編教材一年級(jí)下冊(cè)生字筆順筆畫
- 通達(dá)信指標(biāo)——江恩輪
- 二維火收銀使用手冊(cè)
- 神經(jīng)電生理檢查ppt課件
- 管路滑脫風(fēng)險(xiǎn)評(píng)估表
評(píng)論
0/150
提交評(píng)論