題5.6 給一百分制成績(jī)要求輸出成績(jī)等級(jí)‘a(chǎn)’、 ‘b’ _第1頁(yè)
已閱讀1頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、高級(jí)語(yǔ)言程序設(shè)計(jì)(C語(yǔ)言),主講: 羅 威,E-mail: luowei_zh@163.com 手機(jī):13808077036,教材、參考書(shū)與課時(shí)安排,教材C程序設(shè)計(jì)(第四版)譚浩強(qiáng)編著 清華大學(xué)出版社參考書(shū)C程序設(shè)計(jì)題解與上機(jī)指導(dǎo) 譚浩強(qiáng) 著 清華大學(xué)

2、出版社C語(yǔ)言程序設(shè)計(jì)教程 譚浩強(qiáng) 高等教育出版社C高級(jí)實(shí)用程序設(shè)計(jì) 王士元 清華大學(xué)出版社Programming in C Brian W. Kernighan課時(shí)安排總學(xué)時(shí): 20學(xué)時(shí),課程要求,課前請(qǐng)做好預(yù)習(xí)保持課堂安靜,頭腦清醒,思維活躍認(rèn)真、獨(dú)立、按時(shí)完成并提交作業(yè)重視上機(jī)實(shí)踐,有效利用寶貴的上機(jī)時(shí)間,課程評(píng)估平時(shí)成績(jī)30分(出勤10分,作業(yè)20分)30%2. 期末

3、考試70分                      70%,學(xué)習(xí)計(jì)算機(jī)語(yǔ)言的意義,就業(yè)需要:社會(huì)化考核工作需要:深入的專(zhuān)業(yè)研究基本素質(zhì):與計(jì)算機(jī)進(jìn)行 主動(dòng)的 互動(dòng)交流,第一章 C語(yǔ)言概述,1.1 C語(yǔ)言

4、發(fā)展歷史,機(jī)器語(yǔ)言,匯編語(yǔ)言,高級(jí)語(yǔ)言,,,直接用二進(jìn)制代碼指令表達(dá)的計(jì)算機(jī)語(yǔ)言第一代的計(jì)算機(jī)語(yǔ)言,特點(diǎn):計(jì)算機(jī)直接識(shí)別,不需翻譯 缺點(diǎn):繁雜瑣碎 可讀性差 可移植性差,重用性差 ……,用助記符(Mnemonic)代替操作碼,用地址符號(hào)(Symbol)或標(biāo)號(hào)(Label)代替地址碼,仍然是面向機(jī)器的語(yǔ)言,比較繁瑣費(fèi)時(shí)可讀性差 可移植

5、性差,特點(diǎn):語(yǔ)法和結(jié)構(gòu)類(lèi)似人類(lèi)語(yǔ)言 遠(yuǎn)離硬件優(yōu)點(diǎn):易學(xué)、易掌握 可讀性好、可維護(hù)性強(qiáng)、可靠性高 移植性好、重用性好 ……,C語(yǔ)言,如:10000000 加 10010000 減,如:如 ADD A, B,如:c=a+b;,ALGOL60,1960,遠(yuǎn)離硬件,1963,CPL,規(guī)模大 難以學(xué)習(xí)掌握,1967,BC

6、PL,簡(jiǎn)化版CPL,1971,B,進(jìn)一步簡(jiǎn)化 無(wú)類(lèi)型,1972~1973,C,UNIX,1977~1978,《The C programming Language》,不依賴(lài)機(jī)器和系統(tǒng),1983,ANSI C,1987,87 ANSI C,ISO,1990,,,,,,,,,,,,,,,1994,new ANSI C,,,,,,,1.2 C語(yǔ)言特點(diǎn)語(yǔ)言簡(jiǎn)潔、緊湊、靈活運(yùn)算符和數(shù)據(jù)類(lèi)型豐富程序設(shè)計(jì)結(jié)構(gòu)化、模塊化語(yǔ)法限制不太嚴(yán)格,程序

7、設(shè)計(jì)自由度大。C 語(yǔ)言允許直接訪(fǎng)問(wèn)物理地址,能進(jìn)行位(bit)操作,能實(shí)現(xiàn)匯編語(yǔ)言的大部分功能,可以直接對(duì)硬件進(jìn)行操作。生成目標(biāo)代碼質(zhì)量高可移植性好,<,>,>,>,>,>,>,,>,37個(gè)關(guān)鍵字:(由系統(tǒng)定義,不能重作其它定義)auto break case char constcontinue default

8、 do double elseenum extern float for gotoif inline int long register restrict return short signed size

9、of static struct switch typedef unsigned union void volatile while _bool_Complex _Imaginary,<,9種控制語(yǔ)句:if( )~else~for( )~while( )~do~while( )continuebreak

10、switchgotoreturn,<,例 C語(yǔ)言與Pascal語(yǔ)言比較C語(yǔ)言 Pascal語(yǔ)言 含義{ } BEGIN….END 復(fù)合語(yǔ)句if(e) s; IF(e) THEN s

11、 條件語(yǔ)句int i ; VAR i:INTEGER 定義i為整型變量 int a[10]; VAR a:ARRAY[1..10] OF INTEGER 定義整型數(shù)組aint f(); FUNCTION f():INTEGER

12、 定義f為返值整型的函數(shù)int *p; VAR p:?INTEGER 定義p為指向整型變量的指針i+= 2; i=i+2 賦值i+2?ii++,++i; i=i+1 i自增值結(jié)論:C比 Pascal簡(jiǎn)練,源程序短。,<,34種運(yùn)算符:算術(shù)運(yùn)算符

13、:+ - * / % ++ --關(guān)系運(yùn)算符: >= !=邏輯運(yùn)算符:! && ||位運(yùn)算符:> ~ | ^ &賦值運(yùn)算符:= 及其擴(kuò)展條件運(yùn)算符:?:逗號(hào)運(yùn)算符:,指針運(yùn)算符:* &求字節(jié)數(shù):sizeof強(qiáng)制類(lèi)型轉(zhuǎn)換:(類(lèi)型)分量運(yùn)算符:. ->下標(biāo)運(yùn)算符:[]其它:( ) -,<,<,定義類(lèi)型typedef,C

14、99標(biāo)準(zhǔn):long long,C99標(biāo)準(zhǔn):復(fù)數(shù)類(lèi)型、bool類(lèi)型,,,,,,,,,,,,,,,,<,/* example1.1 The first C Program*/#include int main(){ printf(“This is a C program!\n”); return 0;},>,輸出:This is a C program!,,1.3 C程序格式

15、和結(jié)構(gòu)特點(diǎn)例1.1 第一個(gè)程序 輸出一行信息,格式特點(diǎn)習(xí)慣用小寫(xiě)字母,大小寫(xiě)敏感不使用行號(hào),無(wú)程序行概念可使用空行和空格常用鋸齒形書(shū)寫(xiě)格式,<,>,main( ){ ………………. ……………… ………….. ………….. ……… ……….

16、 …………… ……………. ………………. ………………..},main( ){ int i , j , sum; sum=0; for(i=1; i<10;i++) { for(j=1;j<10;j++) { sum+=i*

17、j ; } } printf(“%d\n”,sum);},良好的編程習(xí)慣:使用TAB縮進(jìn){}對(duì)齊有足夠的注釋有合適的空行,,,,結(jié)構(gòu)特點(diǎn)函數(shù)與主函數(shù)程序由一個(gè)或多個(gè)函數(shù)組成一個(gè)函數(shù)由兩部分構(gòu)成:(1)函數(shù)的首部,包括:函數(shù)名、函數(shù)類(lèi)型(返回值類(lèi)型)、函數(shù)屬性、形式參數(shù)名、形式參數(shù)類(lèi)型。(2)函數(shù)體,大括號(hào){ }中的部分。函數(shù)體中包含聲明部分和執(zhí)行

18、部分。必須有且只能有一個(gè)主函數(shù)main()程序執(zhí)行從main開(kāi)始,在main中結(jié)束,其它函數(shù)通過(guò)嵌套調(diào)用得以執(zhí)行。程序語(yǔ)句C程序由語(yǔ)句組成用“;”作為語(yǔ)句終止符注釋/* */為注釋不產(chǎn)生編譯代碼,<,>,,,編譯預(yù)處理命令,1.4 C程序的上機(jī)步驟C程序開(kāi)發(fā)步驟,<,>,程序代碼的錄入,生成源程序*.c,語(yǔ)法分析查錯(cuò),翻譯生成目標(biāo)程序*.obj,與其它目標(biāo)程序或庫(kù)鏈接裝配,

19、生成可執(zhí)行程序*.exe,程序開(kāi)發(fā)環(huán)境的核心是編譯程序。高級(jí)程序設(shè)計(jì)語(yǔ)言書(shū)寫(xiě)的源程序,翻譯成等價(jià)的計(jì)算機(jī)匯編語(yǔ)言或機(jī)器語(yǔ)言的目標(biāo)程序的翻譯程序,典型的程序開(kāi)發(fā)環(huán)境及其特點(diǎn):,程序設(shè)計(jì)所需的軟件條件(稱(chēng)為開(kāi)發(fā)環(huán)境)一般包括:,第二章 程序的靈魂——算法,什么是程序? 是為實(shí)現(xiàn)特定目標(biāo)或解決特定問(wèn)題而用計(jì)算機(jī)語(yǔ)言編寫(xiě)的 指令序列的集合。什么是算法?,對(duì)數(shù)據(jù)的描述 需要通過(guò)計(jì)算機(jī)來(lái)處

20、理加工數(shù)據(jù),這些數(shù)據(jù)的類(lèi)型以及這些 數(shù)據(jù)的組織形式。對(duì)操作的描述 對(duì)這些數(shù)據(jù)的加工處理過(guò)程,即操作步驟,就是算法。 程序 = 數(shù)據(jù)結(jié)構(gòu)+算法,程序包括兩方面的內(nèi)容,計(jì)算機(jī)算法分兩大類(lèi): 1.數(shù)值運(yùn)算算法: 目的是求數(shù)值的解。,2.非數(shù)值運(yùn)算算法:主要用于事務(wù)管理領(lǐng)域。,矩陣運(yùn)算、線(xiàn)性方程組的求解、非線(xiàn)性方程與方程組的求解等等,圖書(shū)館的查閱檢索系統(tǒng),火車(chē)飛機(jī)的訂票系統(tǒng)等等,1、有窮性: 一個(gè)算法必

21、須保證執(zhí)行有限步之后結(jié)束   2、確定性: 算法的每一步驟必須有確切的定義   3、輸入:一個(gè)算法有0個(gè)或多個(gè)輸入,以描述運(yùn)算對(duì)象的初始情況   4、輸出:一個(gè)算法有一個(gè)或多個(gè)輸出,以反映對(duì)輸入數(shù)據(jù)加工后的結(jié)果。 沒(méi)有輸出的算法是毫無(wú)意義的   5、有效性:算法中的每一個(gè)步驟都應(yīng)當(dāng)能有效地執(zhí)行,并得到確定的結(jié)果,算法的特性:,算法的

22、描述:,算法通常采用程序流程圖的形式來(lái)描述。 常用的流程圖符號(hào)有:,,,,,,,加工、處理框,判別框,輸入|輸出框,流程線(xiàn),連接點(diǎn),開(kāi)始、結(jié)束框,例2.1:求 5! 1×2×3×4×5?,原始方法:,,通用方法:,設(shè)兩個(gè)變量:一個(gè)代表被乘數(shù)t 一個(gè)代表乘數(shù) i 直接將每一步驟的乘積放在被乘數(shù)變量 t 中,,,t=1,①,i=2,②,t=t*i,③,i=i+1,④,⑤,如果i不大于5,返回

23、執(zhí)行步驟3以及其后的步驟4、步驟5。否則輸出t,算法結(jié)束,>,>,a=1*2*3*4*5;,t=t*i,,1,2,,,,<,2,算法的三種基本結(jié)構(gòu),一、順序結(jié)構(gòu):必然性,二、選擇結(jié)構(gòu):或然性,三、循環(huán)結(jié)構(gòu):回旋性,實(shí)現(xiàn)方式:基本流程,典型實(shí)現(xiàn)方式:if – else 語(yǔ)句,典型實(shí)現(xiàn)方式:for 語(yǔ)句,if (x>=0) f = 1;else f = 0;,i=1; s=0;for (;i<=10;)

24、 { s=s+i; i=i+1; },結(jié)論:理論上已經(jīng)證明,用三種基本程序結(jié)構(gòu)可以實(shí)現(xiàn)任何復(fù)雜的算法,三大基本結(jié)構(gòu)示意圖,順序結(jié)構(gòu)選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu),,,模塊(語(yǔ)句)A,模塊(語(yǔ)句)B,,,,條件?,語(yǔ)句序列 1,,,,,,,,成立,不成立,語(yǔ)句序列 2,,,,,條件?,,語(yǔ)句序列,,,,,,,,,,,不成立,成立,(當(dāng)型循環(huán)),語(yǔ)句序列,,,,,,,成立,不成立,循環(huán)結(jié)構(gòu),條件?,(直到型循環(huán))

25、,流程圖,N-S 流程圖: 又稱(chēng)N-S結(jié)構(gòu)化流程圖是將全部算法寫(xiě)在 一個(gè)矩形框內(nèi),,,,,,,,,,,,,A,B,P,成立,不成立,A,B,,當(dāng)P1成立,A,A,直到P1成立,順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu),,用偽代碼表示算法: 偽代碼是用介于自然語(yǔ)言和計(jì)算機(jī)語(yǔ)言之間的文字和符號(hào)來(lái)描述算法。 用偽代碼寫(xiě)算法沒(méi)有固定、嚴(yán)格的語(yǔ)法規(guī)則,只要把意思表達(dá)清楚就行,但書(shū)寫(xiě)的格式要清晰易讀。如: begin

26、1->t2->iwhile it i+1->i}print t end,課堂練習(xí),用傳統(tǒng)流程圖或N-S 圖表示求解問(wèn)題的算法有兩個(gè)瓶子A和B,分別盛放醋和醬油,要求將它們互換有3個(gè)數(shù),找出其中最大的一個(gè).,1.設(shè):0代表醋,1 代表醬油,T為空碗,2.N-S流程圖描述,,,,,,,,,,,,,,,,,,,,,,,,結(jié)構(gòu)化程序設(shè)計(jì)方法,自頂向下、逐步細(xì)化是將復(fù)雜、

27、大的問(wèn)題劃分為小問(wèn)題,找出問(wèn)題的關(guān)鍵、重點(diǎn)所在,然后用精確的思維定性、定量地去描述問(wèn)題。 是將現(xiàn)實(shí)世界的問(wèn)題經(jīng)抽象轉(zhuǎn)化為邏輯空間或求解空間的問(wèn)題。復(fù)雜問(wèn)題經(jīng)抽象化處理變?yōu)橄鄬?duì)比較簡(jiǎn)單的問(wèn)題。模塊化設(shè)計(jì) 就是把程序劃分為若干個(gè)部 分,每個(gè)部分完成一個(gè)特定的功能。其目的 是降低程序的復(fù)雜度,使設(shè)計(jì)出來(lái)的程序便 于閱讀、調(diào)試和維護(hù)。結(jié)構(gòu)化編碼 就是將設(shè)計(jì)好的算法用結(jié)構(gòu) 化語(yǔ)言正確的表示出來(lái),結(jié)構(gòu)

28、化程序設(shè)計(jì)(SP),北京大學(xué)王選院士沒(méi)有GOTO語(yǔ)句一個(gè)入口一個(gè)出口自頂向下、逐步求精的分解程序組,清華大學(xué)潭浩強(qiáng)教授自頂向下、逐步求精程序結(jié)構(gòu)按功能劃分為模塊化模塊功能單一、簡(jiǎn)單模塊由三種基本程序結(jié)構(gòu)組成程序由函數(shù)、子程序來(lái)實(shí)現(xiàn),SP方法的基本思想是:把一個(gè)復(fù)雜問(wèn)題的求解過(guò)程分 階段進(jìn)行,每個(gè)階段處理的問(wèn)題都控制在人們?nèi)菀桌斫?和處理的范圍內(nèi)。,書(shū)面作業(yè): 1.5、1.6

溫馨提示

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

評(píng)論

0/150

提交評(píng)論