版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
計算機編程2011年2月23日TheProgramming學(xué)習(xí)本課程的三步曲——自我介紹(之一)工作部門:計算機科學(xué)與技術(shù)學(xué)院姓名:王紅工作地點:南教4——230辦公電話:郵箱:學(xué)習(xí)本課程的三步曲——認(rèn)識你們(之二)0101045A和101145ACDIO試點班的86位同學(xué)!兩個不同的電子信息工程專業(yè)!你們的學(xué)習(xí)基礎(chǔ)(好、差、一般)?你們的學(xué)習(xí)作風(fēng)(好、差、一般)?你們的學(xué)習(xí)效果(好、差、一般)?課程的教學(xué)目標(biāo)
本課程的特點是理論性和實踐性強:1、通過本課程的學(xué)習(xí),掌握結(jié)構(gòu)化程序設(shè)計的基本思想和一般方法;2、以C為語言載體,訓(xùn)練在VC++環(huán)境下設(shè)計程序、調(diào)試程序的能力;3、逐漸掌握復(fù)雜軟件的設(shè)計和開發(fā)手段,為后續(xù)專業(yè)課程的學(xué)習(xí)打下扎實的理論和實踐基礎(chǔ)。課程學(xué)習(xí)要求保持課堂安靜,頭腦清醒,思維活躍。重視上機實踐,有效利用課內(nèi)外上機時間。認(rèn)真、獨立、按時完成并提交實驗報告,不斷總結(jié)程序設(shè)計與調(diào)試經(jīng)驗。充分利用Bb網(wǎng)絡(luò)平臺開展學(xué)習(xí)、交流與互動。做好課前預(yù)習(xí)和課后復(fù)習(xí)。教材、參考書與課時安排教材(必備)C語言程序設(shè)計,何欽銘、顏暉主編,高等教育出版社,2008C語言程序設(shè)計實驗指導(dǎo),顏暉主編,高等教育出版社,2008參考書(自選)《C程序設(shè)計》(第三版)譚浩強編著清華大學(xué)出版社《C語言程序設(shè)計實習(xí)指導(dǎo)與模擬試題》天津大學(xué)出版社課時安排授課總學(xué)時:54學(xué)時課內(nèi)實驗學(xué)時:20學(xué)時(包含1個綜合編程訓(xùn)練)課外實驗學(xué)時:20學(xué)時(課外自由實驗)第1章
引言本章教學(xué)要求什么是程序?程序設(shè)計語言包含哪些功能?程序設(shè)計語言在語法上包含哪些內(nèi)容?結(jié)構(gòu)化程序設(shè)計有哪些基本的控制結(jié)構(gòu)?C語言有哪些特點?C語言程序的基本框架如何?形成一個可運行的C語言程序需要經(jīng)過哪些步驟?如何用流程圖描述簡單的算法?本章教學(xué)內(nèi)容與要點C語言程序?qū)嵗绦蚺c程序設(shè)計語言C語言的發(fā)展歷史與特點實現(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);}運行結(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ù)計算階乘*/return0;}intfactorial(intn) /*定義計算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)特點分析:函數(shù)與主函數(shù)程序由一個或多個函數(shù)組成必須有且只能有一個主函數(shù)main()程序執(zhí)行從main開始,在main中結(jié)束,其它函數(shù)通過嵌套調(diào)用得以執(zhí)行。程序語句C程序由語句組成用“
;”作為語句終止符注釋/**/為注釋,不能嵌套不產(chǎn)生編譯代碼例:/*Thisisthemain/*ofexample1.1*/*/非法4.編譯預(yù)處理命令程序與指令指令:是計算機能夠執(zhí)行的一個最基本的操作命令。如實現(xiàn)一次加法運算或?qū)崿F(xiàn)一次大小的判別。計算機的指令系統(tǒng):計算機所能實現(xiàn)的指令的集合。程序:一系列計算機指令的有序組合。程序與指令示例1:編寫程序,分別求和與乘積虛擬的計算機指令系統(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è)計語言語言的基礎(chǔ)是一組記號和一組規(guī)則。程序設(shè)計語言包含三個方面,即語法、語義和語用。語法表示程序的結(jié)構(gòu)或形式,亦即表示構(gòu)成程序的各個記號之間的組合規(guī)則,但不涉及這些記號的特定含義,也不涉及使用者。語義表示程序的含義,亦即表示按照各種方法所表示的各個記號的特定含義,但也不涉及使用者。語用表示程序與使用的關(guān)系。程序設(shè)計語言的基本成分有:①數(shù)據(jù)成分,用于描述程序所涉及的數(shù)據(jù);②運算成分,用于描述程序中所包含的運算;③控制成分,用于描述程序中所包含的控制;④傳輸成分,用于表達程序中數(shù)據(jù)的傳輸。程序設(shè)計語言的功能數(shù)據(jù)表達:表達所要處理的數(shù)據(jù)流程控制:表達數(shù)據(jù)處理的流程程序設(shè)計語言的發(fā)展機器語言匯編語言高級語言面向過程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加10010000減用助記符號描述的指令系統(tǒng)如ADDA,B面向機器的語言程序設(shè)計是數(shù)據(jù)被加工的過程客觀世界可以分類,對象是類的實例對象是數(shù)據(jù)和方法的封裝對象間通過發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計關(guān)鍵是定義類,并由類派生對象馮.諾依曼結(jié)構(gòu):計算機運算器控制器存儲器主機:I/O設(shè)備:鍵盤、顯示器等中央處理器CPU產(chǎn)生過程時間:1972~1973地點:美國貝爾實驗室目的:UNIX操作系統(tǒng)設(shè)計人: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。運算符:代表對各種數(shù)據(jù)類型實際數(shù)據(jù)對象的運算。如,+(加)、-(減)、*(乘)、/(除)、%(求余)、>(大于)。C語言的主要語法單位表達式:
運算符與運算對象組合就形成了表達試。如:2+3*4。變量定義:
變量也有數(shù)據(jù)類型,所以在定義變量時要說明相應(yīng)變量的類型。如:inti;語句:
語句是程序最基本的執(zhí)行單位,程序的功能就是通過對一系列語句的執(zhí)行來實現(xiàn)的。函數(shù)定義與調(diào)用。程序設(shè)計語言的語法
——函數(shù)定義與調(diào)用函數(shù)是完成特定任務(wù)的獨立模塊,函數(shù)的使用最主要涉及到函數(shù)的定義與調(diào)用。輸入輸出:C語言沒有輸入輸出語句,用庫函數(shù)printf()、scanf()等實現(xiàn)。C語言特點語言簡潔、緊湊、靈活運算符和數(shù)據(jù)類型豐富(數(shù)據(jù)類型檢查不嚴(yán)格,表達式出現(xiàn)二義性,不具備數(shù)據(jù)越界自動檢查功能,運算符的優(yōu)先級與結(jié)合性對初學(xué)者難于掌握)程序設(shè)計結(jié)構(gòu)化、模塊化生成目標(biāo)代碼質(zhì)量高可移植性好C語言中大小寫字母代表不同含義32個關(guān)鍵字:(由系統(tǒng)定義,不能重作其它定義)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile9種控制語句:if()~else~for()~while()~do~while()continuebreakswitchgotoreturn<34種運算符:算術(shù)運算符:+-*/%++--關(guān)系運算符:<<===>>=!=邏輯運算符:!&&||位運算符:<<>>~|^&賦值運算符:=及其擴展條件運算符:?:逗號運算符:,指針運算符:*&求字節(jié)數(shù):sizeof強制類型轉(zhuǎn)換:(類型)分量運算符:.->下標(biāo)運算符:[]其它:()-C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void定義類型typedef數(shù)值類型字符類型char枚舉類型enum整型浮點型單精度型float雙精度型double短整型short長整型long整型int數(shù)組結(jié)構(gòu)體struct共用體union<程序設(shè)計研究的內(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)運算。+程序設(shè)計語言數(shù)據(jù)的結(jié)構(gòu)數(shù)據(jù)表達:一般將數(shù)據(jù)抽象為若干類型數(shù)據(jù)類型:對某些具有共同特點的數(shù)據(jù)集合的總稱代表的數(shù)據(jù)(數(shù)據(jù)類型的定義域)在這些數(shù)據(jù)上做些什么(即操作或稱運算)常量(常數(shù))與變量例如:整數(shù)類型包含的數(shù)據(jù):{...,-2,-1,0,1,2,..}作用在整數(shù)上的運算:+、-、*、/等將復(fù)雜程序劃分為若干個相互獨立的模塊。模塊:一條語句(Statement)、一段程序或一個函數(shù)(子程序)等。單入口、單出口。結(jié)構(gòu)化程序設(shè)計方法任何程序都可以將模塊通過3種基本的控制結(jié)構(gòu)進行組合來實現(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ù)雜問題時,將程序分為若干個相對獨立的子程序(函數(shù))流程控制實現(xiàn)問題求解的過程問題1:求1~100間所有偶數(shù)的和。1.問題分析與算法設(shè)計求在一定范圍內(nèi)(1~100)、滿足一定條件(偶數(shù))的若干整數(shù)的和,求累加和。思路:設(shè)置一個變量(sum),其初值為0,然后在1~100的數(shù)中(i)尋找偶數(shù),將它們一個一個累加到sum中。一步累加:sum=sum+i;重復(fù)累加,用循環(huán)語句實現(xiàn),在循環(huán)過程中:(1)判別i是不是偶數(shù):用分支控制語句來實現(xiàn)。(2)對循環(huán)次數(shù)進行控制:通過i值的變化問題分析與算法設(shè)計思路——》確定算法算法:一組明確的解決問題的步驟,它產(chǎn)生結(jié)果并可在有限的時間內(nèi)終止。算法的描述:自然語言偽代碼流程圖:算法的圖形表示法sum=0i=1i<=100i是偶數(shù)?sum=sum+ii=i+1輸出sum真真假假實現(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;}實現(xiàn)問題求解的過程3.程序編譯連接編輯程序后,用該語言的編譯程序?qū)ζ溥M行編譯,以生成二進制代碼表示的目標(biāo)程序(.obj),與編程環(huán)境提供的庫函數(shù)進行連接(Link)形成可執(zhí)行的程序(.exe)。編譯程序指出語法錯誤語法錯誤VS邏輯錯誤實現(xiàn)問題求解的過程4.運行與調(diào)試經(jīng)過編輯、編譯、連接,生成執(zhí)行文件后,就可以在編程環(huán)境或操作系統(tǒng)環(huán)境中運行該程序。如果程序運行所產(chǎn)生的結(jié)果不是你想要的結(jié)果,這是程序的語義錯誤(邏輯錯誤)。調(diào)試:在程序中查找錯誤并修改錯誤的過程。調(diào)試的方法設(shè)置斷點單步跟蹤調(diào)試是一個需要耐心和經(jīng)驗的工作,也是程序設(shè)計最基本的技能之一。開始結(jié)果語法錯誤源程序.c/.cpp目標(biāo)程序.obj可執(zhí)行程序.exe編輯編譯連接運行連接錯誤運行錯誤C語言程序的調(diào)試、運行步驟源程序目標(biāo)語言可執(zhí)行語言內(nèi)容程序設(shè)計語言機器語言機器語言可執(zhí)行不可以不可以可以文件后綴*.C*.OBJ*.EXE常用術(shù)語源程序:用戶可讀的程序文本,即程序本身。目標(biāo)代碼:由源程序翻譯而成的機器碼,計算機能讀并能直接運行。連接程序:將各自分別編譯后的程序連接為一個可運行程序的程序。(它將C語言的標(biāo)準(zhǔn)庫函數(shù)與用戶所編的程序聯(lián)合在一起)庫:包含標(biāo)準(zhǔn)函數(shù)的文件,這些函數(shù)可用在用戶的程序中。(包括所有的輸入輸出函數(shù)及其它有用的例行函數(shù))編譯狀態(tài):在程序編譯過程中所出現(xiàn)的事件。運行狀態(tài):在程序運行過程中所發(fā)生的事件。VisualC++6.0集成開發(fā)環(huán)境的啟動進入VC++集成環(huán)境有三種辦法:(1)雙擊桌面VC圖標(biāo)(2)從開始菜單進入“程序”(3)從開始菜單進入“運行”(msdev)用鼠標(biāo)雙擊“桌面”上的VC圖標(biāo),進入環(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)建一個項目工作區(qū)(Workspace);②在項目工作區(qū)中創(chuàng)建一個項目(Project)。上述兩步可以合并,即在創(chuàng)建項目的同時創(chuàng)建工作區(qū);③在項目中建立和編輯源文件、頭文件等程序文件(或?qū)⑦@些文件添加到項目中);④對應(yīng)用程序進行編譯和連接;⑤執(zhí)行應(yīng)用程序。
理解并掌握程序設(shè)計的概念和一般方法。熟悉C語言程序的基本結(jié)構(gòu)與書寫要領(lǐng),初步認(rèn)識C語言的主要應(yīng)用范圍。思考C語言為什么被稱為“中級語言”。掌握C程序運行過程的上機步驟及注意事項。本章小結(jié) 課后練習(xí)要求:1、在復(fù)習(xí)課堂教學(xué)內(nèi)容的基礎(chǔ)上,認(rèn)真閱讀《實習(xí)指導(dǎo)書》中1~11頁的內(nèi)容。2、利用課內(nèi)外上機時間,完成實驗一中編程題1、編程題2和改錯題要求上機實驗,并將實驗內(nèi)容以《實驗報告》的形式統(tǒng)一上交?!秾嶒瀳蟾妗返淖珜懸I(lǐng)1、實驗內(nèi)容:題目、目的、程序設(shè)計思路、程序代碼、結(jié)論與分析。2、關(guān)于實驗結(jié)果與結(jié)論:應(yīng)該給出實驗過程中程序運行的具體狀態(tài)(輸入、輸出的數(shù)據(jù)與格式要求),并對實驗結(jié)論進行簡要的分析。3、關(guān)于實驗過程的分析:希望大家針對自己的實驗情況進行細致、深入的分析,從中總結(jié)有益的程序調(diào)試經(jīng)驗,不斷加深對程序設(shè)計思想的理解,從而改進學(xué)習(xí)方法。4、教學(xué)建議:如果對教學(xué)過程中方法、手段有什么意見,希望實事求是的給出。如何盡快學(xué)會用C語言進行程序設(shè)計了解程序設(shè)計語言(C語言)模仿、改寫、編寫通過不斷的編程實踐,逐步領(lǐng)會和掌握程序設(shè)計的基本思想和方法。學(xué)好計算機編程的唯一途徑是:你的編程能力與你在計算機上投入的時間成正比!上機練習(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版綠色建筑房地產(chǎn)轉(zhuǎn)讓合同補充協(xié)議3篇
- 二零二五年教育培訓(xùn)機構(gòu)教師聘用合同書3篇
- 二零二五年度特色農(nóng)產(chǎn)品黃牛養(yǎng)殖購銷合同3篇
- 二零二五年融資租賃合同規(guī)范本2篇
- 二零二五版?zhèn)€人房產(chǎn)抵押借款擔(dān)保合同3篇
- 二零二五年度食堂廚房設(shè)計咨詢與服務(wù)合同2篇
- 二零二五版LOGO知識產(chǎn)權(quán)授權(quán)與品牌戰(zhàn)略規(guī)劃合同3篇
- 二零二五版糧食進出口貿(mào)易代理合同示范文本3篇
- 二零二五版服務(wù)器租賃與數(shù)據(jù)同步服務(wù)合同3篇
- 二零二五年度高速鐵路建設(shè)用聚乙烯管材管件采購合同3篇
- 2025年度土地經(jīng)營權(quán)流轉(zhuǎn)合同補充條款范本
- 南通市2025屆高三第一次調(diào)研測試(一模)地理試卷(含答案 )
- Python試題庫(附參考答案)
- 聚酯合成副反應(yīng)介紹
- DB37-T 1342-2021平原水庫工程設(shè)計規(guī)范
- 電除顫教學(xué)課件
- 廣東省藥品電子交易平臺結(jié)算門戶系統(tǒng)會員操作手冊
- DB32T 3960-2020 抗水性自修復(fù)穩(wěn)定土基層施工技術(shù)規(guī)范
- 大斷面隧道設(shè)計技術(shù)基本原理
- 41某31層框架結(jié)構(gòu)住宅預(yù)算書工程概算表
- 成都市國土資源局關(guān)于加強國有建設(shè)用地土地用途變更和
評論
0/150
提交評論