C語言程序設(shè)計課件第1章_第1頁
C語言程序設(shè)計課件第1章_第2頁
C語言程序設(shè)計課件第1章_第3頁
C語言程序設(shè)計課件第1章_第4頁
C語言程序設(shè)計課件第1章_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1章

程序設(shè)計基礎(chǔ)網(wǎng)絡(luò)信息中心教研室大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室2主要內(nèi)容1.1程序設(shè)計語言的發(fā)展1.2算法與程序設(shè)計1.3C語言簡介1.4C語言的結(jié)構(gòu)與執(zhí)行1.5C語言的運行與調(diào)試大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室3教學(xué)目的和基本要求:要求學(xué)生了解程序語言及算法的概念,C語言特點,C程序開發(fā)過程,簡單C程序結(jié)構(gòu)。教學(xué)重點:算法的概念、C程序開發(fā)過程、簡單C程序結(jié)構(gòu)。大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室41.1程序設(shè)計語言的發(fā)展機器語言:計算機可以直接識別、執(zhí)行的二進(jìn)制代碼。其優(yōu)點是執(zhí)行速度快;但難寫、難讀、難理解和難修改。匯編語言:使用助記符來代替機器語言中復(fù)雜、繁瑣的指令的語言。如Z-80機中加法指令為ADD。其特點是過分依賴于機器碼,即僅適合某類相同或相似的計算機,因此不易移植。大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室51.1程序設(shè)計語言的發(fā)展高級語言:獨立于計算機硬件結(jié)構(gòu),讓用戶使用面向問題的形式,更加方便編程人員的語言。高級語言分為如下兩類(1)編譯型:“先編譯后執(zhí)行”,過程為:源代碼->目標(biāo)代碼->機器代碼,其執(zhí)行與源程序相互獨立。比如PASCAL,C等。(2)解釋型:“邊解釋邊運行”,程序執(zhí)行離不開源代碼的支持,不利于源程序的保護(hù)和保密。比如BASIC,F(xiàn)oxBASE+等。大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室61.1程序設(shè)計語言的發(fā)展面向結(jié)構(gòu)(面向過程)的設(shè)計語言有:BASIC,F(xiàn)ORTRAN,COBOL:面向事務(wù)處理的高級語言,適合于編寫管理信息系統(tǒng)方面的程序有:PASCAL,C語言,PROLOG,F(xiàn)oxBASE+等面向?qū)ο蠛涂梢暬Z言:C++,Java,VisualBASIC,VisualC++,VisualFoxpro,VisualJ++,Delphi,PowerBuilder等。網(wǎng)頁(Web)/網(wǎng)絡(luò)(Network)編程語言:HTML,DHTML,JavaScript/Jscript,VBScript,JavaApplet,Java等。大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室71.2算法與程序設(shè)計1算法及其表示

2結(jié)構(gòu)化程序設(shè)計與面向?qū)ο蟪绦蛟O(shè)計大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室81.2.1、算法及其表示算法是計算機科學(xué)中的重要概念之一,它指明了問題的計算過程,是對給定問題解題方案的準(zhǔn)確而完整的描述。計算機沒有軟件的支持將無法工作,軟件是計算機的靈魂,而軟件的核心是算法。用計算機解決問題的方法和步驟就是算法,計算機執(zhí)行算法,用計算機解決各種數(shù)據(jù)處理問題的主要方式就是尋找和設(shè)計各種算法,將算法變成代碼的過程即程序設(shè)計。

算法及其表示1大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室91.2.1、算法及其表示算法具備如下5個特征:有窮性確定性輸入輸出可行性算法特征2大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室101.2.1、算法及其表示算法可以用多種方法描述,常見的表示方法有:自然語言描述法、偽代碼表示法、傳統(tǒng)流程圖表示法、N-S流程圖表示法等?!纠?-1】已經(jīng)杯A中盛放的是油,杯B中盛放的是水,另有一個空杯C,三個杯容積相同,請用自然語言表示算法?!窘獯稹康?步:將A中的油全部倒入C中,使A成為空杯;第2步:將B中的水全部倒入A中,使B成為空杯;第3步:將C中原在A中的油,倒入B中,完成A與B中液體的交換。算法的表示3大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室111.2.1、算法及其表示符號符號名稱含義起止框開始和結(jié)束輸入/輸出框輸入/輸出操作處理框內(nèi)容進(jìn)行處理判斷框條件進(jìn)行判斷流程線流程的方向連接點使流程圖清晰(1)使用傳統(tǒng)流程圖表示算法

大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室12真給a和b賦值a<b?輸出a和b輸出a和b假操作A操作B【例1-1】用傳統(tǒng)流程圖表示對兩個數(shù)按從小到大的順序輸出的算法?!窘獯稹總鹘y(tǒng)流程圖如圖1-1所示。大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室131.2.1、算法及其表示在結(jié)構(gòu)化程序設(shè)計中,流程圖只包括3種基本結(jié)構(gòu):(1)順序結(jié)構(gòu)順序結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計中最簡單的一種結(jié)構(gòu),這種結(jié)構(gòu)有一個入口和一個出口,中間的若干操作按照順序依次執(zhí)行,如圖1-2所示,先執(zhí)行操作A,然后執(zhí)行操作B。(2)選擇結(jié)構(gòu)選擇結(jié)構(gòu)與分支結(jié)構(gòu)屬同一結(jié)構(gòu),它由一個條件和兩組語句組成,計算機根據(jù)條件的真假來選擇執(zhí)行的分支,如果判斷成立則執(zhí)行操作A,否則執(zhí)行操作B。選擇結(jié)構(gòu)的流程圖如圖1-3所示。大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室14真條件?操作A操作B假成立條件?循環(huán)體不成立圖1-3選擇結(jié)構(gòu)圖1-4“當(dāng)型循環(huán)”結(jié)構(gòu)大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室151.2.1、算法及其表示(3)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)是指重復(fù)執(zhí)行同一組程序段的結(jié)構(gòu)。循環(huán)結(jié)構(gòu)由兩部分組成,其一是循環(huán)條件、其二是循環(huán)體。

被重復(fù)執(zhí)行的程序段稱為循環(huán)體。循環(huán)體能否繼續(xù)執(zhí)行由循環(huán)條件決定。根據(jù)循環(huán)條件出現(xiàn)的不同位置,循環(huán)結(jié)構(gòu)又分為“當(dāng)型循環(huán)”和“直到型循環(huán)”兩類。大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室161.2.1、算法及其表示

由于傳統(tǒng)流程圖存在不足,提出一種新的結(jié)構(gòu)化流程圖形式,這種形式的流程圖的主要特點是取消了流程線,不再顯示控制流,整個算法的流程寫在一個矩形框內(nèi),這種形式的流程圖稱為N-S流程圖。根據(jù)結(jié)構(gòu)化程序的三種基本結(jié)構(gòu),N-S流程圖有3種基本形式,其中循環(huán)結(jié)構(gòu)N-S流程圖又分為“當(dāng)型循環(huán)”和“直到型循環(huán)”兩種。N-S流程圖表示的3種基本結(jié)構(gòu)如下所示:(2)使用N-S流程圖表示算法大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室17操作A操作B是假條件執(zhí)行循環(huán)當(dāng)條件滿足時執(zhí)行循環(huán)體直到條件滿足退出循環(huán)處理B處理A圖1-1順序結(jié)構(gòu)圖1-2選擇結(jié)構(gòu)圖1-3“當(dāng)型循環(huán)”結(jié)構(gòu)圖1-4“直到型循環(huán)”結(jié)構(gòu)大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室181.2.1、算法及其表示

偽代碼使用介于自然語言和計算機語言之間的文字和符號來描述算法。這種表示方式比較接近于計算機語言,如果結(jié)合相應(yīng)的語法,即可以修改成為程序?!纠?-3】使用偽代碼描述數(shù)據(jù)A與數(shù)據(jù)B進(jìn)行交換的算法,要求不引入臨時數(shù)據(jù)?!窘獯稹渴褂脗未a描述如下:(1)A=A+B,將A與B相加賦值給A,則A為原數(shù)據(jù)A+B的和;(2)B=A-B,原兩數(shù)和減去B即A的值,現(xiàn)賦值給B;(3)A=A-B,原兩數(shù)和減去最近更新的B即A的新值(原數(shù)據(jù)B)(4)兩數(shù)A、B完成交換。由于偽代碼不能直接執(zhí)行,但表示算法方便,容易理解。

(3)使用偽代碼表示算法大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室191.2.2、結(jié)構(gòu)化程序設(shè)計與面向?qū)ο蟮某绦蛟O(shè)計

目前,軟件開發(fā)行業(yè)中有兩種典型的程序設(shè)計方法,其一為結(jié)構(gòu)化程序設(shè)計方法,其二為面向?qū)ο蟮某绦蛟O(shè)計方法。(1)結(jié)構(gòu)化程序設(shè)計:它的主要觀點是采用自頂向下、逐步求精的程序設(shè)計方法,使用3種基本結(jié)構(gòu)構(gòu)造程序(順序、選擇、循環(huán))?!敖Y(jié)構(gòu)化程序設(shè)計”方法旨在提高程序的可讀性,保證軟件的質(zhì)量,降低軟件成本,提高軟件開發(fā)和維護(hù)的效率。

結(jié)構(gòu)化程序設(shè)計1大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室201.2.2、結(jié)構(gòu)化程序設(shè)計與面向?qū)ο蟮某绦蛟O(shè)計

所謂面向?qū)ο蟮某绦蛟O(shè)計,就是把面向?qū)ο蟮乃枷霊?yīng)用到軟件工程中,并指導(dǎo)開發(fā)維護(hù)軟件。對象是由數(shù)據(jù)和容許的操作組成的封裝體,所謂面向?qū)ο?,就是基于對象的概念,以對象為中心,類和繼承為構(gòu)造機制,認(rèn)識了解刻畫客觀世界以及開發(fā)出相應(yīng)的軟件系統(tǒng)?!懊嫦?qū)ο蟪绦蛟O(shè)計”就是通過數(shù)據(jù)抽象,將許多實例中共性的數(shù)據(jù)和為操作這些數(shù)據(jù)所需要的算法抽取出來,并進(jìn)行封裝和數(shù)據(jù)隱藏,形成一個新的數(shù)據(jù)類型————“類”類型。面向?qū)ο蟮某绦蛟O(shè)計2大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室211.3C語言簡介1C語言的產(chǎn)生與發(fā)展

2C語言的特點與應(yīng)用領(lǐng)域大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室221.3.1、C語言的產(chǎn)生與發(fā)展C語言是在70年代初問世,是目前國際上廣泛流行的一種結(jié)構(gòu)化的程序設(shè)計語言。當(dāng)初的C語言是為開發(fā)UNIX操作系統(tǒng)而研制的,1983年美國國家標(biāo)準(zhǔn)學(xué)會(ANSI)將C語言標(biāo)準(zhǔn)化,隨后C語言的廣泛應(yīng)用又不斷推出新的C語言版本,其性能也越來越強。也從面向過程的編程語言發(fā)展到面向?qū)ο蟮某绦蛟O(shè)計語言。目前可在微機上運行的C語言版本主要有TurboC,QuickC,VisualC++等版本。C語言的產(chǎn)生與發(fā)展1大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室231.3.2、C語言的特點與應(yīng)用領(lǐng)域

C語言的主要特點有:(1)語言簡潔,緊湊,使用方便,靈活。(2)運算符豐富。(3)數(shù)據(jù)結(jié)構(gòu)豐富,具有現(xiàn)代化語言的各種數(shù)據(jù)結(jié)構(gòu)。(4)具有現(xiàn)代化的控制語句。(5)語法限制不太嚴(yán)格,程序設(shè)計自由度大。(6)C語言能進(jìn)行“位”(bit)操作,能實現(xiàn)匯編語言的大部分功能,可以直接對硬件進(jìn)行操作。(7)生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。(8)程序可移植性好。(9)繪圖能力強,可完成圖形圖像相關(guān)的程序設(shè)計。C語言的特點與應(yīng)用領(lǐng)域

1大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室241.4C語言的結(jié)構(gòu)與執(zhí)行1C語言源程序的結(jié)構(gòu)特點

2高級語言程序的執(zhí)行過程3程序設(shè)計的開發(fā)期與開發(fā)習(xí)慣大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室251.4.1、C語言源程序的結(jié)構(gòu)特點C語言程序的一般形式如下:編譯預(yù)處理部分全局變量定義main()/*主函數(shù)*/{ 全局定義序列語句序列}func1()/*自定義函數(shù)func1*/{ ……}

C語言源程序的結(jié)構(gòu)1大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室261.4C語言的結(jié)構(gòu)與執(zhí)行(1)一個C語言源程序可以由一個或多個源文件組成。(2)每個源文件可由一個或多個函數(shù)組成。(3)一個源程序不論由多少個文件組成,都有一個且只能有一個main()函數(shù),即主函數(shù)。(4)源程序中可以有預(yù)處理命令。(5)每一個聲明,每一條語句都必須以分號結(jié)尾。但預(yù)處理命令,函數(shù)頭和花括號“}”之后不能加分號。(6)標(biāo)識符,關(guān)鍵字之間必須至少加一個空格以示間隔。(7)可以用/*……*/對C語言程序中的任何部分進(jìn)行注釋。注釋有利于增加程序的可讀性和可維護(hù)性。特點1大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室271.4.2、高級語言程序的執(zhí)行過程高級語言程序的執(zhí)行過程高級語言與具體計算機無關(guān),是一種能方便描述算法過程的計算機程序設(shè)計語言。用高級語言編寫的程序稱為“源程序”。計算機不能直接執(zhí)行,通常有“解釋”和“編譯”兩種方法處理源程序?!敖忉尅狈绞?,即讓計算機運行解釋程序,解釋程序逐句取出源程序中的語句,對它作解釋執(zhí)行,輸入數(shù)據(jù),產(chǎn)生結(jié)果。優(yōu)點是計算機與人的交互性好;缺點是逐句解釋執(zhí)行,運行速度慢?!熬幾g”方式,即先運行編譯程序,從源程序一次性翻譯產(chǎn)生計算機可直接執(zhí)行的二進(jìn)制程序(稱為目標(biāo)程序);然后讓計算機將目標(biāo)程序結(jié)合具體的計算機硬件產(chǎn)生相應(yīng)的“可執(zhí)行”程序,產(chǎn)生結(jié)果。優(yōu)點是運行目標(biāo)程序快,缺點是修改源程序后必須重新編譯以產(chǎn)生新的目標(biāo)程序。大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室281.4.3、程序設(shè)計的開發(fā)期與開發(fā)習(xí)慣

第1階段,分析問題,確定問題的需求。第2階段,分析問題,建立數(shù)學(xué)模型。第3階段,選擇計算方法。第4階段,設(shè)計算法,繪制流程圖。第5階段,代碼編寫。第6階段,調(diào)試程序。第7階段,整理資料和交付使用。

開發(fā)期與開發(fā)習(xí)慣1大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室291.4C語言的結(jié)構(gòu)與執(zhí)行(1)程序所采用的算法要盡量簡單,符合人一般的思維方式。(2)標(biāo)識符的命名盡量采取“見名知義,常用從簡”的原則。(3)采用“縮進(jìn)”的方式書寫程序。低一層次的語句或說明可比高一層次的語句或說明縮進(jìn)若干格后書寫。(4)程序中可用/*……*/或//注釋,以提高程序的可讀性。(5)在輸入數(shù)據(jù)前要有提醒用戶輸入什么樣的數(shù)據(jù)。(6)編譯預(yù)處理部分的語句,不能加分號。(7)每一行寫一條語言。(8)用{}號括起來的部分,通常表示了程序的某一層次結(jié)構(gòu)。{}一般與該結(jié)構(gòu)語句的第一個字母對齊,并單獨占一行。在書寫程序時應(yīng)遵循以下規(guī)則:2大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室301.5C語言的運行與調(diào)試1C程序的執(zhí)行過程

2C程序開發(fā)的實驗方法3VC++6.0編寫程序與調(diào)試程序大學(xué)計算機基礎(chǔ)網(wǎng)絡(luò)信息中心教研室311.5.1、C程序的執(zhí)行過程C程序的執(zhí)行過程:

C源程序的擴展名為*.c,經(jīng)過編譯程序處理后的源程序生成目標(biāo)程序(*.obj),目標(biāo)程序經(jīng)過連接程序處理,生成可執(zhí)行程序(*.exe),可執(zhí)行程序能夠直接運行。標(biāo)準(zhǔn)C程序的執(zhí)

溫馨提示

  • 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

提交評論