C語言算法和基本程序設(shè)計(jì)學(xué)習(xí)教案_第1頁
C語言算法和基本程序設(shè)計(jì)學(xué)習(xí)教案_第2頁
C語言算法和基本程序設(shè)計(jì)學(xué)習(xí)教案_第3頁
C語言算法和基本程序設(shè)計(jì)學(xué)習(xí)教案_第4頁
C語言算法和基本程序設(shè)計(jì)學(xué)習(xí)教案_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、會(huì)計(jì)學(xué)1C語言算法語言算法(sun f)和基本程序設(shè)計(jì)和基本程序設(shè)計(jì)第一頁,共43頁。第1頁/共43頁第二頁,共43頁。第2頁/共43頁第三頁,共43頁。第3頁/共43頁第四頁,共43頁。用自然語言表示用自然語言表示(biosh)算算法法用流程圖表示用流程圖表示(biosh)算法算法用用N-S流程圖表示算法流程圖表示算法用偽代碼表示算法用偽代碼表示算法用計(jì)算機(jī)語言表示算法用計(jì)算機(jī)語言表示算法 歧義性,描述分支、循環(huán)算法不方便歧義性,描述分支、循環(huán)算法不方便第4頁/共43頁第五頁,共43頁。第5頁/共43頁第六頁,共43頁。起止起止(q zh)框框輸入輸出框輸入輸出框處理處理(chl)框框判斷判

2、斷(pndun)框框流程線流程線連接點(diǎn)連接點(diǎn)第6頁/共43頁第七頁,共43頁。開始x+y+z = sum輸出sum的值結(jié)束輸入(shr)x,y,z圖3.2 求三個(gè)整數(shù)(zhngsh)和的算法第7頁/共43頁第八頁,共43頁。m,n為正整數(shù)開始結(jié)束輸入m,n求m/n的余數(shù)rr = 0 ?n =m, r =n輸出n是否第8頁/共43頁第九頁,共43頁。最大公因數(shù)的算法求最大公因數(shù)的最普遍的算法是歐幾里得算法,它最初是公元前由歐幾里得提出來的,有時(shí)也稱它為輾轉(zhuǎn)相除法表述如下(rxi):設(shè)給定m,n(mn),令r0=m,r1=n,有 則得rk=gcd(rk-1,rk)=gcd(rk-2,rk-1)=g

3、cd(r2,r3)=gcd(r1,r2)=gcd(r0,r1)=gcd(m,n)b|a 表示b整除(zhngch)a或者a整除(zhngch)以b 則 a是b的倍數(shù),b是a的約數(shù)rk-2 = qk-1 qk rk + rk =(qk-1 qk +1) rk第9頁/共43頁第十頁,共43頁。驟驟(bzhu),太可怕了。太可怕了。案例案例(n l) 求求12341000 S1: 1 p (p:被乘被乘數(shù)數(shù)) S2: 2 i (i:乘數(shù)乘數(shù)) S3: pi p S4: i+1 i S5: 若若i1000,返回返回S3;否則,結(jié)束。;否則,結(jié)束。 只需只需5個(gè)步驟,簡(jiǎn)單個(gè)步驟,簡(jiǎn)單。第10頁/共43頁

4、第十一頁,共43頁。第11頁/共43頁第十二頁,共43頁。第12頁/共43頁第十三頁,共43頁。3.3 程序的基本程序的基本(jbn)結(jié)構(gòu)結(jié)構(gòu)第13頁/共43頁第十四頁,共43頁。pA 3 3 結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會(huì)被執(zhí)行結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會(huì)被執(zhí)行到到AB 4 4 結(jié)構(gòu)內(nèi)沒有死循環(huán)結(jié)構(gòu)內(nèi)沒有死循環(huán)第14頁/共43頁第十五頁,共43頁。ABabAB傳統(tǒng)傳統(tǒng)(chuntng)流程圖流程圖N-S流程圖流程圖第15頁/共43頁第十六頁,共43頁。Ap成立不成立BAp成立不成立傳統(tǒng)傳統(tǒng)(chuntng)流程圖流程圖第16頁/共43頁第十七頁,共43頁。成立不成立ApBN-S流程圖流程圖第17頁/共

5、43頁第十八頁,共43頁。Ap1成立不成立ab不成立(chngl)Ap2成立ab傳統(tǒng)傳統(tǒng)(chuntng)流程圖流程圖While型型Until型型第18頁/共43頁第十九頁,共43頁。直到直到p1成立成立A當(dāng)當(dāng)p1成立成立AWhile型型Until型型N-S流程圖流程圖第19頁/共43頁第二十頁,共43頁。第20頁/共43頁第二十一頁,共43頁。一個(gè)一個(gè)(y )非結(jié)構(gòu)化算法可以用一個(gè)非結(jié)構(gòu)化算法可以用一個(gè)(y )等價(jià)的結(jié)構(gòu)化算法代替,其功能不變等價(jià)的結(jié)構(gòu)化算法代替,其功能不變。 如果一個(gè)算法不能分解為若干個(gè)節(jié)本結(jié)如果一個(gè)算法不能分解為若干個(gè)節(jié)本結(jié)構(gòu),則它必然不是一個(gè)結(jié)構(gòu)化算法。構(gòu),則它必然不是

6、一個(gè)結(jié)構(gòu)化算法。第21頁/共43頁第二十二頁,共43頁。第22頁/共43頁第二十三頁,共43頁。第23頁/共43頁第二十四頁,共43頁。C第24頁/共43頁第二十五頁,共43頁。5 C語言無I/O語句(yj),I/O操作由函數(shù)實(shí)現(xiàn)5 #include 5 字符輸出函數(shù)格式格式: putchar( c ): putchar( c )參數(shù)參數(shù): c: c為字符常量、變量或表達(dá)式為字符常量、變量或表達(dá)式功能:把字符功能:把字符c c輸出到顯示輸出到顯示(xinsh)(xinsh)器上器上返值:正常,為顯示返值:正常,為顯示(xinsh)(xinsh)的代碼值;出錯(cuò),為的代碼值;出錯(cuò),為EOF(-1)

7、EOF(-1)第25頁/共43頁第二十六頁,共43頁。運(yùn)行(ynxng)后,在屏幕上顯示:red 第26頁/共43頁第二十七頁,共43頁。 數(shù)據(jù)數(shù)據(jù)(shj)(shj)輸入輸入字符輸入函數(shù)字符輸入函數(shù) 格式格式:getchar( ):getchar( )功能功能(gngnng)(gngnng):從鍵盤讀一字符:從鍵盤讀一字符返值:正常,返回讀取的代碼值;出錯(cuò)返值:正常,返回讀取的代碼值;出錯(cuò), ,返回返回EOF(-1)EOF(-1)注意:getchar()函數(shù)的括號(hào)中沒有參數(shù),該函數(shù)的輸入一直到“回車(hu ch)”才結(jié)束。回車(hu ch)前的所有輸入字符都會(huì)逐個(gè)顯示在屏幕上,但只有第一個(gè)字

8、符作為函數(shù)的返回值。 第27頁/共43頁第二十八頁,共43頁。第28頁/共43頁第二十九頁,共43頁。若輸入b,在屏幕(pngm)上顯示: bB 第29頁/共43頁第三十頁,共43頁。第30頁/共43頁第三十一頁,共43頁。當(dāng)輸入(shr)為“How are you?”,則輸出為:How are you?第31頁/共43頁第三十二頁,共43頁。格式:格式:printf(“printf(“格式控制串格式控制串”,輸出表,輸出表) )功能:按指定格式向顯示器輸出數(shù)據(jù)功能:按指定格式向顯示器輸出數(shù)據(jù)返值:正常返值:正常(zhngchng)(zhngchng),返回輸出字節(jié)數(shù);出錯(cuò),返回,返回輸出字節(jié)

9、數(shù);出錯(cuò),返回EOF(-1)EOF(-1) 輸出表:要輸出的數(shù)據(jù)(可以沒有,多個(gè)時(shí)以輸出表:要輸出的數(shù)據(jù)(可以沒有,多個(gè)時(shí)以“,”分分隔)隔) 格式控制串:包含格式控制串:包含(bohn)兩種信息兩種信息 格式說明:格式說明: %修飾符修飾符格式字符格式字符 ,用于指定輸出,用于指定輸出格式格式 普通字符或轉(zhuǎn)義序列:原樣輸出普通字符或轉(zhuǎn)義序列:原樣輸出 格式字符格式字符第32頁/共43頁第三十三頁,共43頁。d,ix,Xoucse,Efg%格式字符:十六進(jìn)制無符號(hào)整數(shù)不帶符號(hào)十進(jìn)制整數(shù)十進(jìn)制整數(shù)指數(shù)形式浮點(diǎn)小數(shù)單一字符字符串八進(jìn)制無符號(hào)整數(shù)小數(shù)形式浮點(diǎn)小數(shù)e和f中較短一種百分號(hào)本身int a=

10、567;printf ( “%d”,a);int a=255;printf(“%x”,a);int a=65;printf(“%o”,a);int a=567;printf(“%u”,a);char a=65;printf(“%c”,a);printf(“%s”,“ABC”);float a=567.789;printf(“%e”,a);float a=567.789;printf(“%f”,a);float a=567.789;printf(“%g”,a);printf(“%”);567ff101567AABC5.677890e+02567.789000567.789% 說明 格式(g sh

11、i)字符要用小寫 格式(g shi)字符與輸出項(xiàng)個(gè)數(shù)應(yīng)相同,按先后順序一一對(duì)應(yīng) 輸出轉(zhuǎn)換:格式(g shi)字符與輸出項(xiàng)類型不一致,自動(dòng)按指定格式(g shi)輸出例 main() unsigned int u=65535; printf(”u=%dn,u); 輸出(shch)結(jié)果:u=-1例 int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b); 例 int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b);輸出(shch)結(jié)果: 3 4 a=3, b=41

12、1 11 11 11 11 11 11 1165535第33頁/共43頁第三十四頁,共43頁。格式格式: scanf(“: scanf(“格式控制串格式控制串”,地址表),地址表)功能:按指定格式從鍵盤功能:按指定格式從鍵盤(jinpn)(jinpn)讀入數(shù)據(jù),存入地址表指定的讀入數(shù)據(jù),存入地址表指定的 存儲(chǔ)單元中存儲(chǔ)單元中, ,并按回車鍵結(jié)束并按回車鍵結(jié)束返值:正常,返回輸入數(shù)據(jù)個(gè)數(shù)返值:正常,返回輸入數(shù)據(jù)個(gè)數(shù)地址(dzh)表:變量的地址(dzh),常用取地址(dzh)運(yùn)算符&格式字符:d,i,o,x,u,c,s,f,e例 scanf(“%d”,&a); 輸入:10 則 a=10例 scan

13、f(“%x”,&a); 輸入:11 則 a=17第34頁/共43頁第三十五頁,共43頁。例 scanf(“%4d%2d%2d”,&yy,&mm,&dd); 輸入(shr) 19991015 則1999yy, 10 mm, 15 dd例 scanf(“%3d%*4d%f”,&k,&f); 輸入(shr) 12345678765.43 則123k, 8765.43f例 scanf(“%2d%*3d%2d”,&a,&b); 輸入 1234567 則12a, 67b例 scanf(“%3c%2c”,&c1,&c2); 輸入 abcde 則ac1, d c2l修飾符功 能hm*用于d,o,x前,指定輸入

14、為short型整數(shù)用于d,o,x前,指定輸入為long型整數(shù)用于e,f前,指定輸入為double型實(shí)數(shù)指定輸入數(shù)據(jù)寬度,遇空格或不可轉(zhuǎn)換字符則結(jié)束抑制符,指定輸入項(xiàng)讀入后不賦給變量第35頁/共43頁第三十六頁,共43頁。例 scanf(“%d%o%x”,&a,&b,&c); printf(“a=%d,b=%d,c=%dn”,a,b,c); 輸入(shr) 123 123 123 輸出 a=123,b=83,c=291例 scanf(“%d:%d:%d”,&h,&m,&s); 輸入(shr) 12:30:45 則12 h, 30 m, 45 s例 scanf(“%d,%d”,&a,&b) 輸入

15、3,4 則3a, 4 b例 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); 輸入 a=12,b=24,c=36 第36頁/共43頁第三十七頁,共43頁。如 scanf(“%c%c%c”,&c1,&c2,&c3); 若輸入(shr)a b c 則ac1, c2, b c3輸入數(shù)據(jù)時(shí),遇以下情況認(rèn)為該數(shù)據(jù)結(jié)束(jish):遇空格、TAB、或回車遇寬度結(jié)束(jish)遇非法輸入如 scanf(“%d%c%f”,&a,&b,&c); 若輸入1234a123o.26 則 1234 a, a b, 123 c輸入函數(shù)留下的“垃圾”:例 int x; char ch; scanf(“%d

16、”,&x); ch=getchar(); printf(“x=%d,ch=%dn”,x,ch);執(zhí)行:123輸出:x=123,ch=10例 int x; char ch; scanf(“%d”,&x); scanf(“%c”,&ch); printf(“x=%d,ch=%dn”,x,ch);執(zhí)行:123輸出:x=123,ch=10解決方法:(1)用getchar()清除(2)用函數(shù)fflush(stdin)清除全部剩余內(nèi)容 (3) 用格式串中空格或“%*c”來“吃掉”例 int x; char ch; scanf(“%d”,&x); getchar(); scanf(“ %c”,&ch);或 scanf(“%*c%c”,&ch); 第37頁/共43頁第三十八頁,共43頁。正確語句: printf

溫馨提示

  • 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)論