計(jì)算機(jī)編程CHP1課件_第1頁
計(jì)算機(jī)編程CHP1課件_第2頁
計(jì)算機(jī)編程CHP1課件_第3頁
計(jì)算機(jī)編程CHP1課件_第4頁
計(jì)算機(jī)編程CHP1課件_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

計(jì)算機(jī)編程2011年2月23日TheProgramming學(xué)習(xí)本課程的三步曲——自我介紹(之一)工作部門:計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院姓名:王紅工作地點(diǎn):南教4——230辦公電話:郵箱:學(xué)習(xí)本課程的三步曲——認(rèn)識你們(之二)0101045A和101145ACDIO試點(diǎn)班的86位同學(xué)!兩個不同的電子信息工程專業(yè)!你們的學(xué)習(xí)基礎(chǔ)(好、差、一般)?你們的學(xué)習(xí)作風(fēng)(好、差、一般)?你們的學(xué)習(xí)效果(好、差、一般)?課程的教學(xué)目標(biāo)

本課程的特點(diǎn)是理論性和實(shí)踐性強(qiáng):1、通過本課程的學(xué)習(xí),掌握結(jié)構(gòu)化程序設(shè)計(jì)的基本思想和一般方法;2、以C為語言載體,訓(xùn)練在VC++環(huán)境下設(shè)計(jì)程序、調(diào)試程序的能力;3、逐漸掌握復(fù)雜軟件的設(shè)計(jì)和開發(fā)手段,為后續(xù)專業(yè)課程的學(xué)習(xí)打下扎實(shí)的理論和實(shí)踐基礎(chǔ)。課程學(xué)習(xí)要求保持課堂安靜,頭腦清醒,思維活躍。重視上機(jī)實(shí)踐,有效利用課內(nèi)外上機(jī)時間。認(rèn)真、獨(dú)立、按時完成并提交實(shí)驗(yàn)報(bào)告,不斷總結(jié)程序設(shè)計(jì)與調(diào)試經(jīng)驗(yàn)。充分利用Bb網(wǎng)絡(luò)平臺開展學(xué)習(xí)、交流與互動。做好課前預(yù)習(xí)和課后復(fù)習(xí)。教材、參考書與課時安排教材(必備)C語言程序設(shè)計(jì),何欽銘、顏暉主編,高等教育出版社,2008C語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo),顏暉主編,高等教育出版社,2008參考書(自選)《C程序設(shè)計(jì)》(第三版)譚浩強(qiáng)編著清華大學(xué)出版社《C語言程序設(shè)計(jì)實(shí)習(xí)指導(dǎo)與模擬試題》天津大學(xué)出版社課時安排授課總學(xué)時:54學(xué)時課內(nèi)實(shí)驗(yàn)學(xué)時:20學(xué)時(包含1個綜合編程訓(xùn)練)課外實(shí)驗(yàn)學(xué)時:20學(xué)時(課外自由實(shí)驗(yàn))第1章

引言本章教學(xué)要求什么是程序?程序設(shè)計(jì)語言包含哪些功能?程序設(shè)計(jì)語言在語法上包含哪些內(nèi)容?結(jié)構(gòu)化程序設(shè)計(jì)有哪些基本的控制結(jié)構(gòu)?C語言有哪些特點(diǎn)?C語言程序的基本框架如何?形成一個可運(yùn)行的C語言程序需要經(jīng)過哪些步驟?如何用流程圖描述簡單的算法?本章教學(xué)內(nèi)容與要點(diǎn)C語言程序?qū)嵗绦蚺c程序設(shè)計(jì)語言C語言的發(fā)展歷史與特點(diǎn)實(shí)現(xiàn)問題求解的過程課程小結(jié)/*example1.2calculatethesumofaandb*/#include<stdio.h>/*Thisisthemainprogram*/main(){inta,b,sum;a=10;b=24;sum=add(a,b);printf(”sum=%d\n",sum);}/*Thisfunctioncalculatesthesumofxandy*/intadd(intx,inty){intz;z=x+y;return(z);}運(yùn)行結(jié)果:sum=34語句預(yù)處理命令注釋C語言程序?qū)嵗?.2:#include<stdio.h>/*編譯預(yù)處理命令*/intmain(void)/*主函數(shù)*/{ intn;/*變量定義*/ intfactorial(intn);/*函數(shù)聲明*/

scanf("%d",&n);/*輸入一個整數(shù)*/ printf(“%d\n”,factorial(n));/*調(diào)用函數(shù)計(jì)算階乘*/return0;}intfactorial(intn) /*定義計(jì)算n!的函數(shù)*/{ inti,fact=1;

for(i=1;i<=n;i++)/*循環(huán)*/ fact=fact*i;returnfact;}輸入4輸出24C語言程序?qū)嵗?.3:

求階乘問題。輸入一個正整數(shù)n,輸出n!。C程序的結(jié)構(gòu)特點(diǎn)分析:函數(shù)與主函數(shù)程序由一個或多個函數(shù)組成必須有且只能有一個主函數(shù)main()程序執(zhí)行從main開始,在main中結(jié)束,其它函數(shù)通過嵌套調(diào)用得以執(zhí)行。程序語句C程序由語句組成用“

;”作為語句終止符注釋/**/為注釋,不能嵌套不產(chǎn)生編譯代碼例:/*Thisisthemain/*ofexample1.1*/*/非法4.編譯預(yù)處理命令程序與指令指令:是計(jì)算機(jī)能夠執(zhí)行的一個最基本的操作命令。如實(shí)現(xiàn)一次加法運(yùn)算或?qū)崿F(xiàn)一次大小的判別。計(jì)算機(jī)的指令系統(tǒng):計(jì)算機(jī)所能實(shí)現(xiàn)的指令的集合。程序:一系列計(jì)算機(jī)指令的有序組合。程序與指令示例1:編寫程序,分別求和與乘積虛擬的計(jì)算機(jī)指令系統(tǒng)(7條指令)指令1:InputX將當(dāng)前輸入數(shù)據(jù)存儲到內(nèi)存的X單元指令2:OutputX將內(nèi)存X單元的數(shù)據(jù)輸出。指令3:AddXYZ將內(nèi)存X單元的數(shù)據(jù)與Y單元的數(shù)據(jù)相加并將結(jié)果存儲到Z單元。指令4:SubXYZ將內(nèi)存X單元的數(shù)據(jù)與Y單元的數(shù)據(jù)相減并將結(jié)果存儲到Z單元。指令5:BranchEqXYP比較X與Y,若相等則程序跳轉(zhuǎn)到P處執(zhí)行,否則繼續(xù)執(zhí)行下一條指令。指令6:JumpP程序跳轉(zhuǎn)到P處執(zhí)行。指令7:SetXY將內(nèi)存Y單元的值設(shè)為X。程序與指令示例2:

——輸入輸入3個數(shù)A,B和C,求A+B+C的結(jié)果InputA;輸入第1個數(shù)據(jù)到存儲單元A中InputB;輸入第2個數(shù)據(jù)到存儲單元B中InputC;輸入第3個數(shù)據(jù)到存儲單元C中AddABD;將A、B相加并將結(jié)果存在D中AddCDD;將C、D相加并將結(jié)果存在D中OutputD;輸出D的內(nèi)容程序設(shè)計(jì)語言語言的基礎(chǔ)是一組記號和一組規(guī)則。程序設(shè)計(jì)語言包含三個方面,即語法、語義和語用。語法表示程序的結(jié)構(gòu)或形式,亦即表示構(gòu)成程序的各個記號之間的組合規(guī)則,但不涉及這些記號的特定含義,也不涉及使用者。語義表示程序的含義,亦即表示按照各種方法所表示的各個記號的特定含義,但也不涉及使用者。語用表示程序與使用的關(guān)系。程序設(shè)計(jì)語言的基本成分有:①數(shù)據(jù)成分,用于描述程序所涉及的數(shù)據(jù);②運(yùn)算成分,用于描述程序中所包含的運(yùn)算;③控制成分,用于描述程序中所包含的控制;④傳輸成分,用于表達(dá)程序中數(shù)據(jù)的傳輸。程序設(shè)計(jì)語言的功能數(shù)據(jù)表達(dá):表達(dá)所要處理的數(shù)據(jù)流程控制:表達(dá)數(shù)據(jù)處理的流程程序設(shè)計(jì)語言的發(fā)展機(jī)器語言匯編語言高級語言面向過程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加10010000減用助記符號描述的指令系統(tǒng)如ADDA,B面向機(jī)器的語言程序設(shè)計(jì)是數(shù)據(jù)被加工的過程客觀世界可以分類,對象是類的實(shí)例對象是數(shù)據(jù)和方法的封裝對象間通過發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計(jì)關(guān)鍵是定義類,并由類派生對象馮.諾依曼結(jié)構(gòu):計(jì)算機(jī)運(yùn)算器控制器存儲器主機(jī):I/O設(shè)備:鍵盤、顯示器等中央處理器CPU產(chǎn)生過程時間:1972~1973地點(diǎn):美國貝爾實(shí)驗(yàn)室目的:UNIX操作系統(tǒng)設(shè)計(jì)人:Ken.Thompson和Dennis.M.RitchieC標(biāo)準(zhǔn)標(biāo)準(zhǔn)C:K&R合著《TheCProgrammingLanguage》ANSIC:1983年87ANSIC:1987年1990年國際標(biāo)準(zhǔn)的ANSIC3. C語言是中級語言關(guān)于C語言中級語言C語言的主要“單詞”標(biāo)識符:C語言的標(biāo)識符規(guī)定由字母、數(shù)字以及下劃線組成,且第一個字符必須是字母或下劃線。保留字(關(guān)鍵字):

它們是C語言規(guī)定的、賦予它們以特定含義、有專門用途的標(biāo)識符。自定義標(biāo)識符:

包括在程序中定義的變量名、數(shù)據(jù)類型名、函數(shù)名以及符號常量名。有意義的英文單詞。常量:

常量是有數(shù)據(jù)類型的,如,123、12.34。運(yùn)算符:代表對各種數(shù)據(jù)類型實(shí)際數(shù)據(jù)對象的運(yùn)算。如,+(加)、-(減)、*(乘)、/(除)、%(求余)、>(大于)。C語言的主要語法單位表達(dá)式:

運(yùn)算符與運(yùn)算對象組合就形成了表達(dá)試。如:2+3*4。變量定義:

變量也有數(shù)據(jù)類型,所以在定義變量時要說明相應(yīng)變量的類型。如:inti;語句:

語句是程序最基本的執(zhí)行單位,程序的功能就是通過對一系列語句的執(zhí)行來實(shí)現(xiàn)的。函數(shù)定義與調(diào)用。程序設(shè)計(jì)語言的語法

——函數(shù)定義與調(diào)用函數(shù)是完成特定任務(wù)的獨(dú)立模塊,函數(shù)的使用最主要涉及到函數(shù)的定義與調(diào)用。輸入輸出:C語言沒有輸入輸出語句,用庫函數(shù)printf()、scanf()等實(shí)現(xiàn)。C語言特點(diǎn)語言簡潔、緊湊、靈活運(yùn)算符和數(shù)據(jù)類型豐富(數(shù)據(jù)類型檢查不嚴(yán)格,表達(dá)式出現(xiàn)二義性,不具備數(shù)據(jù)越界自動檢查功能,運(yùn)算符的優(yōu)先級與結(jié)合性對初學(xué)者難于掌握)程序設(shè)計(jì)結(jié)構(gòu)化、模塊化生成目標(biāo)代碼質(zhì)量高可移植性好C語言中大小寫字母代表不同含義32個關(guān)鍵字:(由系統(tǒng)定義,不能重作其它定義)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile9種控制語句:if()~else~for()~while()~do~while()continuebreakswitchgotoreturn<34種運(yùn)算符:算術(shù)運(yùn)算符:+-*/%++--關(guān)系運(yùn)算符:<<===>>=!=邏輯運(yùn)算符:!&&||位運(yùn)算符:<<>>~|^&賦值運(yùn)算符:=及其擴(kuò)展條件運(yùn)算符:?:逗號運(yùn)算符:,指針運(yùn)算符:*&求字節(jié)數(shù):sizeof強(qiáng)制類型轉(zhuǎn)換:(類型)分量運(yùn)算符:.->下標(biāo)運(yùn)算符:[]其它:()-C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void定義類型typedef數(shù)值類型字符類型char枚舉類型enum整型浮點(diǎn)型單精度型float雙精度型double短整型short長整型long整型int數(shù)組結(jié)構(gòu)體struct共用體union<程序設(shè)計(jì)研究的內(nèi)容面向過程的程序=算法+數(shù)據(jù)結(jié)構(gòu)算法:對操作的描述。是指解題方案的準(zhǔn)確而完整的描述。數(shù)據(jù)結(jié)構(gòu):對數(shù)據(jù)的描述。是指數(shù)據(jù)的邏輯結(jié)構(gòu)、物理結(jié)構(gòu)及其上的相關(guān)運(yùn)算。+程序設(shè)計(jì)語言數(shù)據(jù)的結(jié)構(gòu)數(shù)據(jù)表達(dá):一般將數(shù)據(jù)抽象為若干類型數(shù)據(jù)類型:對某些具有共同特點(diǎn)的數(shù)據(jù)集合的總稱代表的數(shù)據(jù)(數(shù)據(jù)類型的定義域)在這些數(shù)據(jù)上做些什么(即操作或稱運(yùn)算)常量(常數(shù))與變量例如:整數(shù)類型包含的數(shù)據(jù):{...,-2,-1,0,1,2,..}作用在整數(shù)上的運(yùn)算:+、-、*、/等將復(fù)雜程序劃分為若干個相互獨(dú)立的模塊。模塊:一條語句(Statement)、一段程序或一個函數(shù)(子程序)等。單入口、單出口。結(jié)構(gòu)化程序設(shè)計(jì)方法任何程序都可以將模塊通過3種基本的控制結(jié)構(gòu)進(jìn)行組合來實(shí)現(xiàn)。順序結(jié)構(gòu)循環(huán)結(jié)構(gòu)分支結(jié)構(gòu)流程控制語句級控制:3種基本的控制結(jié)構(gòu)順序控制結(jié)構(gòu):自然順序執(zhí)行分支控制結(jié)構(gòu)(選擇結(jié)構(gòu)):根據(jù)不同的條件來選擇所要執(zhí)行的模塊循環(huán)控制結(jié)構(gòu):重復(fù)執(zhí)行某個模塊單位級控制:函數(shù)的定義與調(diào)用處理復(fù)雜問題時,將程序分為若干個相對獨(dú)立的子程序(函數(shù))流程控制實(shí)現(xiàn)問題求解的過程問題1:求1~100間所有偶數(shù)的和。1.問題分析與算法設(shè)計(jì)求在一定范圍內(nèi)(1~100)、滿足一定條件(偶數(shù))的若干整數(shù)的和,求累加和。思路:設(shè)置一個變量(sum),其初值為0,然后在1~100的數(shù)中(i)尋找偶數(shù),將它們一個一個累加到sum中。一步累加:sum=sum+i;重復(fù)累加,用循環(huán)語句實(shí)現(xiàn),在循環(huán)過程中:(1)判別i是不是偶數(shù):用分支控制語句來實(shí)現(xiàn)。(2)對循環(huán)次數(shù)進(jìn)行控制:通過i值的變化問題分析與算法設(shè)計(jì)思路——》確定算法算法:一組明確的解決問題的步驟,它產(chǎn)生結(jié)果并可在有限的時間內(nèi)終止。算法的描述:自然語言偽代碼流程圖:算法的圖形表示法sum=0i=1i<=100i是偶數(shù)?sum=sum+ii=i+1輸出sum真真假假實(shí)現(xiàn)問題求解的過程2.編輯程序生成程序的源文件,C語言源文件的后綴為.c/.cpp#include<stdio.h>intmain(void){ inti,sum=0;

for(i=1;i<=100;i++)if(i%2==0)sum=sum+i;printf("%d",sum);return0;}實(shí)現(xiàn)問題求解的過程3.程序編譯連接編輯程序后,用該語言的編譯程序?qū)ζ溥M(jìn)行編譯,以生成二進(jìn)制代碼表示的目標(biāo)程序(.obj),與編程環(huán)境提供的庫函數(shù)進(jìn)行連接(Link)形成可執(zhí)行的程序(.exe)。編譯程序指出語法錯誤語法錯誤VS邏輯錯誤實(shí)現(xiàn)問題求解的過程4.運(yùn)行與調(diào)試經(jīng)過編輯、編譯、連接,生成執(zhí)行文件后,就可以在編程環(huán)境或操作系統(tǒng)環(huán)境中運(yùn)行該程序。如果程序運(yùn)行所產(chǎn)生的結(jié)果不是你想要的結(jié)果,這是程序的語義錯誤(邏輯錯誤)。調(diào)試:在程序中查找錯誤并修改錯誤的過程。調(diào)試的方法設(shè)置斷點(diǎn)單步跟蹤調(diào)試是一個需要耐心和經(jīng)驗(yàn)的工作,也是程序設(shè)計(jì)最基本的技能之一。開始結(jié)果語法錯誤源程序.c/.cpp目標(biāo)程序.obj可執(zhí)行程序.exe編輯編譯連接運(yùn)行連接錯誤運(yùn)行錯誤C語言程序的調(diào)試、運(yùn)行步驟源程序目標(biāo)語言可執(zhí)行語言內(nèi)容程序設(shè)計(jì)語言機(jī)器語言機(jī)器語言可執(zhí)行不可以不可以可以文件后綴*.C*.OBJ*.EXE常用術(shù)語源程序:用戶可讀的程序文本,即程序本身。目標(biāo)代碼:由源程序翻譯而成的機(jī)器碼,計(jì)算機(jī)能讀并能直接運(yùn)行。連接程序:將各自分別編譯后的程序連接為一個可運(yùn)行程序的程序。(它將C語言的標(biāo)準(zhǔn)庫函數(shù)與用戶所編的程序聯(lián)合在一起)庫:包含標(biāo)準(zhǔn)函數(shù)的文件,這些函數(shù)可用在用戶的程序中。(包括所有的輸入輸出函數(shù)及其它有用的例行函數(shù))編譯狀態(tài):在程序編譯過程中所出現(xiàn)的事件。運(yùn)行狀態(tài):在程序運(yùn)行過程中所發(fā)生的事件。VisualC++6.0集成開發(fā)環(huán)境的啟動進(jìn)入VC++集成環(huán)境有三種辦法:(1)雙擊桌面VC圖標(biāo)(2)從開始菜單進(jìn)入“程序”(3)從開始菜單進(jìn)入“運(yùn)行”(msdev)用鼠標(biāo)雙擊“桌面”上的VC圖標(biāo),進(jìn)入環(huán)境File菜單:文件操作等Edit菜單:編輯查找View菜單:窗口設(shè)置等Insert菜單:資源加入等Project菜單:工程管理等Build菜單:編譯鏈接調(diào)試Tools菜單:調(diào)試工具、系統(tǒng)配置等圖1.4Window菜單:窗口管理Help菜單:幫助信息在VC++6.0中開發(fā)一個C應(yīng)用程序的大致步驟是:①創(chuàng)建一個項(xiàng)目工作區(qū)(Workspace);②在項(xiàng)目工作區(qū)中創(chuàng)建一個項(xiàng)目(Project)。上述兩步可以合并,即在創(chuàng)建項(xiàng)目的同時創(chuàng)建工作區(qū);③在項(xiàng)目中建立和編輯源文件、頭文件等程序文件(或?qū)⑦@些文件添加到項(xiàng)目中);④對應(yīng)用程序進(jìn)行編譯和連接;⑤執(zhí)行應(yīng)用程序。

理解并掌握程序設(shè)計(jì)的概念和一般方法。熟悉C語言程序的基本結(jié)構(gòu)與書寫要領(lǐng),初步認(rèn)識C語言的主要應(yīng)用范圍。思考C語言為什么被稱為“中級語言”。掌握C程序運(yùn)行過程的上機(jī)步驟及注意事項(xiàng)。本章小結(jié) 課后練習(xí)要求:1、在復(fù)習(xí)課堂教學(xué)內(nèi)容的基礎(chǔ)上,認(rèn)真閱讀《實(shí)習(xí)指導(dǎo)書》中1~11頁的內(nèi)容。2、利用課內(nèi)外上機(jī)時間,完成實(shí)驗(yàn)一中編程題1、編程題2和改錯題要求上機(jī)實(shí)驗(yàn),并將實(shí)驗(yàn)內(nèi)容以《實(shí)驗(yàn)報(bào)告》的形式統(tǒng)一上交?!秾?shí)驗(yàn)報(bào)告》的撰寫要領(lǐng)1、實(shí)驗(yàn)內(nèi)容:題目、目的、程序設(shè)計(jì)思路、程序代碼、結(jié)論與分析。2、關(guān)于實(shí)驗(yàn)結(jié)果與結(jié)論:應(yīng)該給出實(shí)驗(yàn)過程中程序運(yùn)行的具體狀態(tài)(輸入、輸出的數(shù)據(jù)與格式要求),并對實(shí)驗(yàn)結(jié)論進(jìn)行簡要的分析。3、關(guān)于實(shí)驗(yàn)過程的分析:希望大家針對自己的實(shí)驗(yàn)情況進(jìn)行細(xì)致、深入的分析,從中總結(jié)有益的程序調(diào)試經(jīng)驗(yàn),不斷加深對程序設(shè)計(jì)思想的理解,從而改進(jìn)學(xué)習(xí)方法。4、教學(xué)建議:如果對教學(xué)過程中方法、手段有什么意見,希望實(shí)事求是的給出。如何盡快學(xué)會用C語言進(jìn)行程序設(shè)計(jì)了解程序設(shè)計(jì)語言(C語言)模仿、改寫、編寫通過不斷的編程實(shí)踐,逐步領(lǐng)會和掌握程序設(shè)計(jì)的基本思想和方法。學(xué)好計(jì)算機(jī)編程的唯一途徑是:你的編程能力與你在計(jì)算機(jī)上投入的時間成正比!上機(jī)練習(xí)!學(xué)習(xí)方法指導(dǎo)1、認(rèn)真聽講,積極思考,提高上課效率。2、

溫馨提示

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

評論

0/150

提交評論