版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
C語言程序設計第3版課程關鍵詞C語言(一種程序設計語言)用途適用范圍語法規(guī)定程序設計(一種能力和思維方式)基本設計方法算法概念程序調試課程目標掌握C語言的基本語法掌握面向過程程序設計的基本方法掌握程序調試的基本方法一些觀點正確看待C,C++,Java等語言:近年來,有一些面向對象的計算機語言陸續(xù)問世,受到歡迎。有些人認為面向過程的C語言已經過時了,不必學了。這是一種誤解。這門課的兩個目標:C的語法,程序設計方法,程序調試。在學校中,學習程序設計課程的目的是掌握設計程序的思路,學會用計算機語言編寫程序,以實現(xiàn)所需處理的任務。算法是靈魂:(文以載道)不能設想今后一輩子只使用在學校里學過的某一種語言。但是,無論用哪一種語言進行程序設計,其基本規(guī)律是一樣的。程序是調試出來的:程序設計是一門實踐性很強的課程,既要掌握概念,又要動手編程,還要上機調試運行,希望讀者一定要重視實踐環(huán)節(jié),包括編程和上機。熟悉不同的IDE(集成開發(fā)環(huán)境):使用哪一種編譯系統(tǒng)并不是原則問題,重要的是編程能力的培養(yǎng)。程序編好以后,用哪一種編譯系統(tǒng)進行編譯都可以。本次課的主要內容程序設計概述(第二章)C語言概述(第一章)第二章程序的靈魂—算法怎樣進行程序設計的最基本概念和方法不僅僅適用于c語言第二章只是一個開始,后面將貫穿整個課程。第二章程序的靈魂—算法2.1 算法的概念 2.2 簡單算法舉例(重點) 2.3 算法的特性 2.4 怎樣表示一個算法 2.4.1 用自然語言表示算法 2.4.2 用流程圖表示算法 2.4.3 三種基本結構和改進的流程圖 2.4.4 用N-S流程圖表示算法 2.4.5 用偽代碼表示算法 2.4.6 用計算機語言表示算法2.5 結構化程序設計方法 程序和算法計算機程序(軟件/程序)是指一組指示計算機每一步動作的指令,通常用某種程序設計語言編寫,運行于某種目標體系結構上。打個比方,一個程序就像一個用漢語(程序設計語言)寫下的紅燒肉菜譜(程序),用于指導懂漢語的人(體系結構)來做這個菜。Anorganizedlistofinstructionsthat,whenexecuted,causesthecomputertobehaveinapredeterminedmanner.Withoutprograms,computersareuseless.程序為了達到某一目標而進行的具體步驟。程序的兩個基本特點:由多個步驟構成,步驟之間有順序程序和算法算法為解決一個問題而采取的方法。計算機算法:計算機能夠執(zhí)行的算法。計算機算法可分為兩大類:數值運算算法:求解數值;非數值運算算法:事務管理領域。計算機程序
=數據結構+算法
一個程序應包括對數據的描述。在程序中要指定數據的類型和數據的組織形式,即數據結構(datastructure)。
對操作的描述。即操作步驟,也就是算法(algorithm)。
程序=算法+數據結構+程序設計方法+語言工具和環(huán)境
程序設計方法和程序設計語言的種類結構化程序設計(面向過程)匯編、c、pascal
面向對象程序設計C++、Java、VB機器語言匯編語言高級語言面向過程面向對象CPU指令系統(tǒng),由0、1序列構成的指令碼組成如:10000000加
10010000減用助記符號描述的指令系統(tǒng)如ADDA,B面向機器的語言程序設計是數據被加工的過程客觀世界可以分類,對象是類的實例對象是數據和方法的封裝對象間通過發(fā)送和接受消息發(fā)生聯(lián)系程序設計關鍵是定義類,并由類派生對象程序設計語言的發(fā)展簡單算法舉例【例2.1】求1×2×3×4×5。最原始方法:步驟1:先求1×2,得到結果2。步驟2:將步驟1得到的乘積2乘以3,得到結果6。步驟3:將6再乘以4,得24。步驟4:將24再乘以5,得120。簡單算法舉例【例2.1】求1×2×3×4×5。改進的算法:S1:使t=1S2:使i=2S3:計算t×i,乘積仍然放在在變量t中,可表示為t×i→tS4:使i的值+1,即i+1→iS5:如果i≤5,返回重新執(zhí)行步驟S3以及其后的S4和S5;否則,算法結束。引入變量t:部分積i:每次要乘的數算法的特性有窮性:一個算法應包含有限的操作步驟而不能是無限的。確定性:算法中每一個步驟應當是確定的,而不能是含糊的、模棱兩可的。有零個或多個輸入。有一個或多個輸出。有效性:算法中每一個步驟應當能有效地執(zhí)行,并得到確定的結果。怎樣表示一個算法用自然語言表示算法用流程圖表示算法用N-S流程圖表示算法(改進的流出圖) 用偽代碼表示算法 用計算機語言表示算法用流程圖表示算法流程圖表示算法,直觀形象,易于理解。求1×2×3×4×5的算法【例2.1】求1×2×3×4×5。S1:使t=1S2:使i=2S3:計算t×i,乘積仍然放在在變量t中,可表示為t×i→tS4:使i的值+1,即i+1→iS5:如果i≤5,返回重新執(zhí)行步驟S3以及其后的S4和S5;否則,算法結束。求1×3×5×7×9×11求∑An1求1/4+1/9+1/16+1/25+…+1/n2(n=2…10)2求∏/4=1-1/3+1/5-1/7…(計算50項)3求∑An,其中A1=1,A2=1,An=An-1+An-2(n=3…10)怎樣將一個實際問題抽象為計算機可解問題【例2.2】有50個學生,要求將他們之中成績在80分以上者打印出來如果,n表示學生學號,ni表示第i個學生學號;g表示學生成績,gi表示第i個學生成績;則算法可表示如下:
S1:1→i(處理第1個學生)S2:如果gi≥80,則打印ni和gi,否則不打?。ㄌ幚淼趇個學生)S3:i+1→i(下一個)S4:若i≤50,返回S2,否則,結束。將例2.2的算法用流程圖表示練習(使用流程圖進行算法設計)1有兩個變量A和B,將它們的值交換。2輸入3個整數a,b,c,按由大到小的順序輸出。3給定一個正整數M,判斷它是否為素數。4找出100以內的素數。5從10個數中找出最大的數。
6在10個盒子里放有10個有編號的球,將球按編號從大到小的順序重新排列。三種基本結構和改進的流程圖三種基本結構順序結構選擇結構循環(huán)結構三種基本結構的共同特點:1)只有一個入口;2)只有一個出口;3)結構內的每一部分都有機會被執(zhí)行到;4)結構內不存在“死循環(huán)”。
用N-S流程圖表示算法順序結構選擇結構循環(huán)結構流程圖VS.N-S流程圖【例】求1×2×3×4×5用C語言表示main(){int
i,t;t=1;i=2;
while(i<=5){t=t*i;i=i+1;}
printf(“%d”,t);}t=1i=2當i<=5t=t*ii=i+1輸出t開始t=1;i=2t×i→ti+1→ii≤5輸出t結束YN結構化程序設計方法自頂向下;逐步細化;模塊化設計;結構化編碼。貪吃蛇思路:怎樣將游戲中的構成元素和一些具體的數聯(lián)系起來游戲中的構成元素邊界、果實蛇頭部身體運動控制和判斷一道全國電子設計大賽試題在一塊豎立的木板上有兩個滑輪和兩個電機(如圖),通過繩子懸掛一重物,在重物上固定一鉛筆。通過單片機控制繩子,使重物上的鉛筆在木板上畫園。思考:怎樣將控制和數對應起來(建模)?思路1.園的參數方程X=R*COS(T)+X0Y=R*SIN(T)+Y02.X,Y和L1,L2的關系L1=SQR(X2+(90-Y)2)L2=SQR((100-X)2+(90-Y)2)L1L210090(X,Y)本次課的主要內容程序設計概述C程序設計語言概述1.1C語言發(fā)展歷史1.2C語言特點1.3C程序格式和結構特點1.4C程序上機步驟第一章C語言概述*產生背景*應用需求:界于匯編和高級語言之間的中級語言*產生過程*時間:1972~1973地點:美國貝爾實驗室目的:UNIX操作系統(tǒng)設計人:Ken.Thompson和Dennis.M.Ritchie*C標準*標準C:K&R合著《TheCProgrammingLanguage》(BrianW.Kernighan和DennisM.Rithchie)1978年ANSIC:1983年87ANSIC:1987年1990年國際標準的ANSICC語言發(fā)展過程1960:ALGOL語言離開硬件遠,不適合編寫系統(tǒng)軟件1963:CPL語言(劍橋大學)接近硬件1967:BCPL語言(劍橋大學)簡化1970:B語言(Bell實驗室)1973:C語言(Bell實驗室)改進進一步簡化1978:傳統(tǒng)C語言1990:ANSIC語言規(guī)模龐大K&R著作ISO修訂語言簡潔、緊湊、靈活運算符和數據類型豐富程序設計結構化、模塊化生成目標代碼質量高可移植性好(較之匯編語言)可以直接操縱硬件C語言特點例1.1第一個程序Hello,World!main(){
printf(“Hello,World!”);}Hello,World!第一個C程序32個關鍵字34種運算符5種數據類型9種控制語句C程序結構特點C程序格式特點C語言基本要素由系統(tǒng)定義,不能重作其它定義的字符串類型說明符autocharconstdoubleenumexternfloatintlongregistershortsignedsizeofstaticstructunsignedunionvoidvolatile2語句、定義符breakcase
continuedefaultdoelseforgotoifreturnswitchwhiletypedef3預處理命令字(*)defineinclude32個關鍵字算術運算符:+-*/%++--關系運算符:<<===>>=!=邏輯運算符:!&&||位運算符:<<>>~|^&賦值運算符:=及其擴展條件運算符:?:逗號運算符:,指針運算符:*&求字節(jié)數:sizeof強制類型轉換:(類型)分量運算符:.->下標運算符:[]其它:()-(負號)34種運算符數據類型基本類型構造類型指針類型空類型void定義類型typedef數值類型字符類型char枚舉類型enum整型浮點型單精度型float雙精度型double短整型short長整型long整型int數組結構體struct共用體union5種數據類型if()~else~for()~while()~do~while()continuebreakswitchgotoreturn9種控制語句例1.1第一個程序
Hello,World!/*example1.1ThefirstCProgram*/#include<stdio.h>main(){
printf(“Hello,World!”);}注釋編譯預處理函數語句輸出:Hello,World!第一個C程序程序語句(statement)和聲明(declaration)C程序由語句組成,用“;”作為語句終止符聲明:對變量等的定義或說明函數(function)函數是C語言的基本單位能完成一定的功能由一組語句和聲明構成c程序由函數構成程序由一個或多個函數組成必須有且只能有一個主函數main()程序執(zhí)行從main開始,在main中結束,其它函數通過嵌套調用得以執(zhí)行。(習慣上把main()函數放在最前面)注釋/**/為注釋,不能嵌套不產生編譯代碼C程序結構特點/*calculatethesumofaandb*/#include<stdio.h>/*Thisisthemainprogram*/main(){inta,b,sum;a=10;b=24;sum=add(a,b);
printf(”sum=%d\n",sum);}/*Thisfunctioncalculatesthesumofxandy*/int
add(int
x,inty){intz;z=x+y;return(z);}/*example1.1calculatethesumofaandb*/#include<stdio.h>/*Thisisthemainprogram*/main(){inta,b,sum;a=10;b=24;sum=add(a,b);
printf(”sum=%d\n",sum);}/*Thisfunctioncalculatesthesumofxandy*/int
add(int
x,inty){intz;z=x+y;return(z);}運行結果:sum=34函數語句預處理命令注釋習慣用小寫字母,大小寫敏感不使用行號,無程序行概念可使用空行和空格常用鋸齒形書寫格式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)秀程序員的素質之一:使用TAB縮進{}對齊有足夠的注釋有合適的空行C程序格式特點函數頭函數體函數名(參數列表){說明部分語句部分}函數的定義int
add(int
x,inty){intz;z=x+y;return(z);}print5stars(){
printf(“*****”);}/*example1.1calculatethesumofaandb*/#include<stdio.h>/*Thisisthemainprogram*/main(){inta,b,sum;a=10;b=24;sum=add(a,b);
printf(”sum=%d\n",sum);}/*Thisfunctioncalculatesthesumofxandy*/int
add(int
x,inty){intz;z=x+y;return(z);}函數的定義main(){intx,y; x=3; y=6;
intmax; max=x>y?x:y;
printf(“max=%d\n”,max);}第一次實驗課(上機)1.計算機基礎知識回顧2.計算機基本操作(文件操作)3.第一個c程序4.tuborc集成開發(fā)環(huán)境(IDE)的使用5.實驗要求在指定的盤中創(chuàng)建屬于自已的子目錄(文件夾)設計自已的第一個C程序,在IDE中運行,修改直到滿意將調試好的源文件和可執(zhí)行文件復制到U盤和C盤的一個子目錄(c:\bin)中。并在C盤中直接運行,并觀察結果。計算機基礎知識回顧什么是計算機,你看到的計算機都長得咋樣?你是怎樣玩計算機的?使用者還是設計者?硬件設計還是軟件設計?計算機的基本組成硬件軟件什么是計算機計算機是一個信息處理裝置。可以是一個復雜的數字電路系統(tǒng)(主流)也可以是機械的甚至是生化的或者是一個可以由人扮演的游戲帕斯卡和加法器霍列瑞斯和第一臺制表機阿德勒曼博士和DNA計算機1946年由美國賓夕法尼亞大學研制ENIAC(ElectronicNumericalIntegratorAndcalculator),運算速度5000次/秒,功耗150kw,占地170m2
,造價100萬美元。常見計算機其他計算機大型化小型化智能小車機器魚怎樣利用好計算機被計算機“玩了”計算機程序設計(stepbystep)計算機應用系統(tǒng)設計本學期要完成的幾個例子走動的“鐘”運動的曲線貪吃蛇計算機控制系統(tǒng)機械結構機電部分控制部分傳感器驅動電路硬件設計制作軟件設計(編程序)試一下(調試)計算機操作基礎信息在計算機上的存放形式文件的類型怎樣找到存放在計算機上的文件文件和文件系統(tǒng)基本概念文件:文件是存放在外存上的一組相關信息的集合;*.DOC *.C *.CPP *.EXE文件系統(tǒng):操作系統(tǒng)中,負責管理和存取文件信息的部分
作用:文件系統(tǒng)為用戶提供了一個簡單、統(tǒng)一的訪問文件的方法。 (1)因此也被稱為用戶與外存儲器的接口
(2)可實現(xiàn)按名存取文件和文件系統(tǒng)文件目錄為了便于對文件進行存取和管理,計算機系統(tǒng)設置了文件目錄.目錄以文件的形式存放在存儲器中,其名字稱為目錄名.操作系統(tǒng)中文件常采用多級目錄結構.目錄是樹形結構文件和文件系統(tǒng)一級二級三級圖.目錄的樹狀結構文件3子目錄5文件6子目錄7文件2子目錄4根目錄\子目錄1文件1子目錄2子目錄3文件4文件5子目錄6文件7文件8文件和文件系統(tǒng)文件目錄每個目錄結構下只有一個根目錄,根目錄處于最頂層,表示為:\.樹狀結構的每一級(根目錄除外)上既可以有子目錄,也可以有文件存在.同一目錄下,不允許有相同的子目錄名或文件名.目錄的字符表示,用來標志文件或文件夾(目錄)所在的位置
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園月教學計劃模板
- 醫(yī)院護士年度計劃范本
- 大班表演游戲計劃
- 農村綜治宣傳月的工作計劃
- 度班組長工作計劃
- 客服員工作計劃
- 《GDP與GNP的區(qū)別》課件
- 醫(yī)院醫(yī)保年終工作計劃總結
- 《行為應用分析》課件
- 2020版 滬教版 高中音樂 必修1 音樂鑒賞 下篇《第八單元 不忘初心》大單元整體教學設計2020課標
- 二年級數學上冊口算天天練
- 2024國家開放大學電大本科《液壓氣動技術》期末試題及答案
- 商務服務機器人技術現(xiàn)狀與未來發(fā)展趨勢研究
- 工業(yè)物聯(lián)網(IIoT)行業(yè)發(fā)展全景調研與投資趨勢預測研究報告
- 金融數據分析-以Python為工具 課件 一、金融數據分析概覽
- 佛山市、三水區(qū)2022-2023學年七年級上學期期末地理試題【帶答案】
- 2024屆湖北高三元月調考數學試卷含答案
- DL∕T 1476-2023電力安全工器具預防性試驗規(guī)程
- 西方園林史智慧樹知到期末考試答案章節(jié)答案2024年內蒙古農業(yè)大學
- 學年上學期期末職業(yè)高中高二年級數學練習試卷2
- 工程部設計部崗位職責
評論
0/150
提交評論