c語言學(xué)習(xí)第一課課件_第1頁
c語言學(xué)習(xí)第一課課件_第2頁
c語言學(xué)習(xí)第一課課件_第3頁
c語言學(xué)習(xí)第一課課件_第4頁
c語言學(xué)習(xí)第一課課件_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

C語言程序設(shè)計(jì)教學(xué)安排本學(xué)期共18周(3.8-7.12),其中考試考核2周,節(jié)假日按照國(guó)家法定假日?qǐng)?zhí)行??倢W(xué)時(shí):64學(xué)時(shí)平時(shí)成績(jī):50分平時(shí)成績(jī)=考勤+上機(jī)+作業(yè)(寫上課編寫的程序)上機(jī):課本+作業(yè)本期末考試/課程設(shè)計(jì):50分成績(jī)計(jì)算C語言的功能?編寫系統(tǒng)軟件。編寫應(yīng)用軟件。數(shù)據(jù)計(jì)算。信息處理。圖形處理。興趣是最好的老師!學(xué)好C語言,成為C高手,可以讓你今后衣食無憂,能夠無憂無慮地生活。C語言發(fā)展歷史C語言特點(diǎn)C程序格式和結(jié)構(gòu)特點(diǎn)C程序上機(jī)步驟第一章C語言概述與程序邏輯

程序設(shè)計(jì)語言的發(fā)展機(jī)器語言匯編語言高級(jí)語言面向過程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加

10010000減用助記符號(hào)描述的指令系統(tǒng)如ADDA,B面向機(jī)器的語言程序設(shè)計(jì)是數(shù)據(jù)被加工的過程客觀世界可以分類,對(duì)象是類的實(shí)例對(duì)象是數(shù)據(jù)和方法的封裝對(duì)象間通過發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計(jì)關(guān)鍵是定義類,并由類派生對(duì)象馮.諾依曼結(jié)構(gòu):計(jì)算機(jī)運(yùn)算器控制器存儲(chǔ)器主機(jī):I/O設(shè)備:鍵盤、顯示器等中央處理器CPU>>1.1C語言發(fā)展歷史5254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC++JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula67Smalltalk80BASICANSI-BASICQBASICVBFORTRAN90<>產(chǎn)生背景產(chǎn)生過程時(shí)間:1972~1973地點(diǎn):美國(guó)貝爾實(shí)驗(yàn)室目的:UNIX操作系統(tǒng)設(shè)計(jì)人:Ken.Thompson(肯·湯普森)和Dennis.M.Ritchie(丹尼斯.里奇)C標(biāo)準(zhǔn)標(biāo)準(zhǔn)C:K&R合著《TheCProgrammingLanguage》ANSIC:1983年87ANSIC:1987年1990年國(guó)際標(biāo)準(zhǔn)的ANSIC<>C語言發(fā)展過程C語言的設(shè)計(jì)者

Ken.Thompson(肯·湯普森)和Dennis.M.Ritchie(丹尼斯.里奇)接受美國(guó)國(guó)家技術(shù)勛章(右為當(dāng)時(shí)的美國(guó)總統(tǒng)克林頓)Ritchie和Thompson用C語言在開發(fā)UNIX操作系統(tǒng)語言簡(jiǎn)潔、緊湊、靈活運(yùn)算符和數(shù)據(jù)類型豐富程序設(shè)計(jì)結(jié)構(gòu)化、模塊化生成目標(biāo)代碼質(zhì)量高可移植性好<>>>>>>中級(jí)語言>1.2C語言特點(diǎn)(由系統(tǒng)定義,不能重作其它定義)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile<32個(gè)關(guān)鍵字if()~else~for()~while()~do~while()continuebreakswitchgotoreturn<9種控制語句算術(shù)運(yùn)算符:+-*/%++--關(guān)系運(yùn)算符:<<===>>=!=邏輯運(yùn)算符:!&&||位運(yùn)算符:<<>>~|^&賦值運(yùn)算符:=及其擴(kuò)展條件運(yùn)算符:?:逗號(hào)運(yùn)算符:,指針運(yùn)算符:*&求字節(jié)數(shù):sizeof強(qiáng)制類型轉(zhuǎn)換:(類型)分量運(yùn)算符:.->下標(biāo)運(yùn)算符:[]其它:()-<34種運(yùn)算符:基本類型構(gòu)造類型指針類型空類型void定義類型typedef數(shù)值類型字符類型char枚舉類型enum整型浮點(diǎn)型單精度型float雙精度型double短整型short長(zhǎng)整型long整型int數(shù)組結(jié)構(gòu)體struct共用體union<

C數(shù)據(jù)類型:三種基本結(jié)構(gòu)的圖示:

順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)的圖示:

當(dāng)型(While型)循環(huán)結(jié)構(gòu)

直到型(Until型)循環(huán)

實(shí)例1.1:第一個(gè)程序Hello,World!/*example1.1ThefirstCProgram*/#include<stdio.h>main(){

printf(“Hello,World!”);}>注釋編譯預(yù)處理函數(shù)語句輸出:Hello,World!1.3C程序格式和結(jié)構(gòu)特點(diǎn)/*example1.2calculatethesumofaandb*/#include<stdio.h>/*Thisisthemainprogram*/main(){

int

a,b,sum;

a=10;

b=24;

sum=add(a,b);

printf(”sum=%d\n",sum);}/*Thisfunctioncalculatesthesumofxandy*/int

add(int

x,int

y){

int

z;

z=x+y;return(z);}運(yùn)行結(jié)果:sum=34函數(shù)語句預(yù)處理命令注釋>實(shí)例1.2習(xí)慣用小寫字母,大小寫敏感不使用行號(hào),無程序行概念可使用空行和空格常用鋸齒形書寫格式<>main(){

……………….………………

…………..…………..

……………….

………………………….

……………….………………..}main(){

inti,j,sum;sum=0;for(i=1;i<10;i++){for(j=1;j<10;j++){sum+=i*j;}}

printf(“%d\n”,sum);}優(yōu)秀程序員的素質(zhì)之一:使用TAB縮進(jìn){}對(duì)齊有足夠的注釋有合適的空行格式特點(diǎn)函數(shù)與主函數(shù)程序由一個(gè)或多個(gè)函數(shù)組成必須有且只能有一個(gè)主函數(shù)main()程序執(zhí)行從main開始,在main中結(jié)束,其它函數(shù)通過嵌套調(diào)用得以執(zhí)行。程序語句C程序由語句組成用“;”作為語句終止符注釋/**/為注釋,不能嵌套不產(chǎn)生編譯代碼<>例:/*Thisisthemain/*ofexample1.1*/*/非法結(jié)構(gòu)特點(diǎn)

編輯鏈接編譯執(zhí)行C程序開發(fā)步驟<>file.exe程序代碼的錄入,生成源程序*.c語法分析查錯(cuò),翻譯生成目標(biāo)程序*.obj與其它目標(biāo)程序或庫鏈接裝配,生成可執(zhí)行程序*.exe1.4C程序的上機(jī)步驟一個(gè)程序應(yīng)包括兩個(gè)方面的內(nèi)容:對(duì)數(shù)據(jù)的描述:數(shù)據(jù)結(jié)構(gòu)(datastructure)對(duì)操作的描述:算法(algorithm)著名計(jì)算機(jī)科學(xué)家沃思提出一個(gè)公式:

數(shù)據(jù)結(jié)構(gòu)+算法=程序

數(shù)據(jù)結(jié)構(gòu)+算法+程序設(shè)計(jì)方法+語言工具完整的程序設(shè)計(jì)應(yīng)該是:1.5

算法和程序一、算法的概念

為了有效地進(jìn)行解題,不僅需要保證算法正確,還要考慮算法的質(zhì)量,選擇合適的算法。希望方法簡(jiǎn)單,運(yùn)算步驟少。計(jì)算機(jī)算法可分為兩大類別:數(shù)值運(yùn)算算法:求數(shù)值解,例如求方程的根、求函數(shù)的定積分等。非數(shù)值運(yùn)算:包括的面十分廣泛,最常見的是用于事務(wù)管理領(lǐng)域,例如圖書檢索、人事管理、行車調(diào)度管理等。二、算法的特性有窮性:包含有限的操作步驟。確定性:算法中的每一個(gè)步驟都應(yīng)當(dāng)是確定的。有零個(gè)或多個(gè)輸入:輸入是指在執(zhí)行算法時(shí)需要從外界取得必要的信息。有一個(gè)或多個(gè)輸出:算法的目的是為了求解,“解”就是輸出。有效性:算法中的每一個(gè)步驟都應(yīng)當(dāng)能有效地執(zhí)行,并得到確定的結(jié)果。三、算法的表示可以用不同的方法表示算法,常用的有:自然語言傳統(tǒng)流程圖結(jié)構(gòu)化流程圖

1、

用自然語言表示算法自然語言就是人們?nèi)粘J褂玫恼Z言,可以是漢語或英語或其它語言。用自然語言表示通俗易懂,但文字冗長(zhǎng),容易出現(xiàn)“歧義性”。自然語言表示的含義往往不大嚴(yán)格,要根據(jù)上下文才能判斷其正確含義,描述包含分支和循環(huán)的算法時(shí)也不很方便。因此,除了那些很簡(jiǎn)單的問題外,一般不用自然語言描述算法。

2、用流程圖表示算法美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)ANSI(AmericanNationalStandardInstitute)規(guī)定了一些常用的流程圖符號(hào):起止框判斷框處理框輸入/輸出框注釋框流向線連接點(diǎn)

3、用N-S流程圖表示算法

1973年美國(guó)學(xué)者I.Nassi和B.Shneiderman提出了一種新的流程圖形式。在這種流程圖中,完全去掉了帶箭頭的流程線。全部算法寫在一個(gè)矩形框內(nèi),在該框內(nèi)還可以包含其它的從屬于它的框,或者說,由一些基本的框組成一個(gè)大的框。這種流程圖又稱N--S結(jié)構(gòu)化流程圖。

N-S流程圖用以下的流程圖符號(hào):(1)順序結(jié)構(gòu)

(2)選擇結(jié)構(gòu)

(3)循環(huán)結(jié)構(gòu)

判定2000~2500年中的每一年是否閏年,將結(jié)果輸出。

分析:閏年的條件是:(1)能被4整除,但不能被100整除的年份都是閏年,如1996,2004年是閏年;(2)能被100整除,又能被400整除的年份是閏年。如1600,2000年是閏年。不符合這兩個(gè)條件的年份不是閏年。

設(shè)y為被檢測(cè)的年份,算法可表示如下

:S1:2000→yS2:若y不能被4整除,則輸出y“不是閏年”。然后轉(zhuǎn)到S6。S3:若y能被4整除,不能被100整除,則輸出y“是閏年”。然后轉(zhuǎn)到S6。S4:若y能被100整除,又能被400整除,輸出y“是閏年”,否則輸出“不是閏年”。然后轉(zhuǎn)到S6。S5:輸出y“不是閏年”。S6:y+1→yS7:當(dāng)y≤2500時(shí),轉(zhuǎn)S2繼續(xù)執(zhí)行,如y>2500,算法停止。

判定閏年的算法用自然語言表示

判定閏年的算法用流程圖表示

用流程圖表示算法要比用文字描述算法邏輯清晰、易于理解。判定閏年的算法用N-S圖表示自頂向下,模塊化,逐步細(xì)化方法考慮周全,結(jié)構(gòu)清晰,層次分明,作者容易寫,讀者容易看。如果發(fā)現(xiàn)某一部分中有一段內(nèi)容不妥,需要修改,只需找出該部分修改有關(guān)段落即可,與其它部分無關(guān)。我們提倡用這種方法設(shè)計(jì)程序。這就是用工程的方法設(shè)計(jì)程序。

四、程序設(shè)計(jì)方法:模塊設(shè)計(jì)的方法:模塊化設(shè)計(jì)的思想實(shí)際上是一種“分而治之”的思想,把一個(gè)大任務(wù)分為若干個(gè)子任務(wù),每一個(gè)子任務(wù)就相對(duì)簡(jiǎn)單了。在拿到一個(gè)程序模塊以后,根據(jù)程序模塊的功能將它劃分為若干個(gè)子模塊,如果這些子模塊的規(guī)模還嫌大,還再可以劃分為更小的模塊。這個(gè)過程采用自頂向下方法來實(shí)現(xiàn)。子模塊一般不超過50行。劃分子模塊時(shí)應(yīng)注意模塊的獨(dú)立性,即:使一個(gè)模塊完成一項(xiàng)功能,耦合性愈少愈好。

(1)C程序總是從main函數(shù)開始執(zhí)行的,與main函數(shù)的位置無關(guān)。(2)C程序書寫格式自由,一行內(nèi)可以寫幾個(gè)語句,一個(gè)語句可以分寫在多行上,C程序

溫馨提示

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