程序設(shè)計(jì)基本概念.ppt_第1頁(yè)
程序設(shè)計(jì)基本概念.ppt_第2頁(yè)
程序設(shè)計(jì)基本概念.ppt_第3頁(yè)
程序設(shè)計(jì)基本概念.ppt_第4頁(yè)
程序設(shè)計(jì)基本概念.ppt_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1章 程序設(shè)計(jì)基本概念,本章要點(diǎn): 1.1 程序和程序設(shè)計(jì) 1.2 算法 1.3 結(jié)構(gòu)化程序設(shè)計(jì)和模塊化結(jié)構(gòu),1.1.1 C程序 程序是指人們存儲(chǔ)在計(jì)算機(jī)內(nèi)部存儲(chǔ)器中,可以連續(xù)執(zhí)行的一條條指令的集合。它是人與機(jī)器進(jìn)行“對(duì)話(huà)”的語(yǔ)言,也就是我們常說(shuō)的“程序設(shè)計(jì)語(yǔ)言”。 C語(yǔ)言是一種“高級(jí)語(yǔ)言”,另外的BASIC、PASCAL等也屬于高級(jí)語(yǔ)言。這些語(yǔ)言都是接近人們習(xí)慣的自然語(yǔ)言和數(shù)學(xué)語(yǔ)言作為語(yǔ)言的表達(dá)形式,人們學(xué)習(xí)和操作起來(lái)感到十分方便。但對(duì)于計(jì)算機(jī)本身來(lái)說(shuō),它并不能直接識(shí)別由高級(jí)語(yǔ)言編寫(xiě)的程序,它只能接受和處理由0和1的代碼構(gòu)成的二進(jìn)制指令或數(shù)據(jù)。由于這種形式的指令是面向機(jī)器的,因此也稱(chēng)為“機(jī)器語(yǔ)言”。,我們把由高級(jí)語(yǔ)言編寫(xiě)的程序稱(chēng)為“源程序”,由二進(jìn)制代碼表示的程序稱(chēng)為“目標(biāo)程序”,而“編譯程序”是指可以把源程序轉(zhuǎn)換成目標(biāo)程序的軟件,即可以把用戶(hù)按規(guī)定語(yǔ)法寫(xiě)出的語(yǔ)句逐一翻譯成二進(jìn)制的機(jī)器指令。每一種高級(jí)語(yǔ)言都有它對(duì)應(yīng)的編譯程序。,每條C語(yǔ)句經(jīng)過(guò)編譯(Compile)最終都將轉(zhuǎn)換成二進(jìn)制的機(jī)器指令。由C語(yǔ)言構(gòu)成的指令序列稱(chēng)C源程序,按C語(yǔ)言的語(yǔ)法編寫(xiě)C程序的過(guò)程,稱(chēng)為C語(yǔ)言的代碼編寫(xiě)。 C語(yǔ)言源程序經(jīng)過(guò)編譯后生成一個(gè)后綴為.OBJ的二進(jìn)制文件(稱(chēng)為目標(biāo)文件),最后還要由“連接程序”(Link)將此.OBJ文件與C語(yǔ)言提供的各種庫(kù)函數(shù)連接起來(lái)生成一個(gè)后綴為.EXE的可執(zhí)行文件。在DOS狀態(tài)下,只須打入此文件的名字(不必打入后綴.EXE)就可以運(yùn)行。,重點(diǎn)提示: 高級(jí)語(yǔ)言編寫(xiě)的程序稱(chēng)為“源程序”,二進(jìn)制代碼表示的程序稱(chēng)為“目標(biāo)程序”,而“編譯程序”是指可以把源程序轉(zhuǎn)換成目標(biāo)程序的軟件。每條C語(yǔ)句經(jīng)過(guò)編譯(Compile)最終都將轉(zhuǎn)換成二進(jìn)制的機(jī)器指令(.OBJ的文件)。最后由“連接程序”(Link)將此.OBJ文件與C語(yǔ)言提供的各種庫(kù)函數(shù)連接起來(lái)生成一個(gè)后綴為.EXE的可執(zhí)行文件。,1.1.2 程序設(shè)計(jì) 簡(jiǎn)單的程序設(shè)計(jì)一般包括: 1根據(jù)要求確定存放數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu); 2針對(duì)數(shù)據(jù)結(jié)構(gòu)來(lái)確定完成任務(wù)的步驟,即確定算法; 3根據(jù)1和2使用選定的計(jì)算機(jī)語(yǔ)言編寫(xiě)程序代碼輸入到計(jì)算機(jī)中,即編程; 4調(diào)試程序,消除語(yǔ)法或邏輯錯(cuò)誤,用各種可能的輸入數(shù)據(jù)對(duì)程序進(jìn)行測(cè)試,對(duì)不合理的數(shù)據(jù)能進(jìn)行適當(dāng)?shù)奶幚恚?5整理并寫(xiě)出文檔資料。,1.2 算法,在編寫(xiě)程序時(shí),除了選定合理的數(shù)據(jù)結(jié)構(gòu)外,還需要十分關(guān)鍵的一步就是設(shè)計(jì)算法,有了一個(gè)好的算法,就可以用任一種計(jì)算機(jī)高級(jí)語(yǔ)言把算法轉(zhuǎn)換為程序。 算法是指為解決某個(gè)特定問(wèn)題而采取的確定且有限的步驟。一個(gè)算法應(yīng)具有以下五個(gè)特性: 1有窮性。 2確定性。 3可行性。 4有零個(gè)或多個(gè)輸入。 5有一個(gè)或多個(gè)輸出。,算法一般可以用以下三種方法來(lái)進(jìn)行描述: 1偽代碼。它是一種近似高級(jí)語(yǔ)言但又不受語(yǔ)法約束的一種語(yǔ)言描述。 2流程圖。它也是描述算法的很好的工具。傳統(tǒng)的流程圖由圖1.1中所示的幾種基本框架組成。 圖1.1 流程圖基本框架 由這些框和流程線(xiàn)組成的流程圖來(lái)表示算法,形象直觀,簡(jiǎn)單方便,但這種流程圖對(duì)于流程圖的走向沒(méi)有任何限制,可以任意轉(zhuǎn)向,在描述復(fù)雜算法時(shí)不易閱讀。,3N-S流程圖。這種流程圖完全去掉了流程線(xiàn),算法的每一步都用一個(gè)矩形框來(lái)描述,把一個(gè)個(gè)矩形框按執(zhí)行的次序連接起來(lái)就是一個(gè)完整的算法描述。在下一節(jié)結(jié)合三種基本的結(jié)構(gòu)化程序設(shè)計(jì)來(lái)介紹這種流程圖的基本結(jié)構(gòu)。 一般我們最常用的描述方法是偽代碼和流程圖。 重點(diǎn)提示:算法的5個(gè)特性分別是:有窮性,確定性,可行性,有零個(gè)或多個(gè)輸入以及有一個(gè)或多個(gè)輸出。,1.3 結(jié)構(gòu)化程序設(shè)計(jì)和模塊化結(jié)構(gòu),1.3.1 結(jié)構(gòu)化程序 結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成: 1順序結(jié)構(gòu) 順序結(jié)構(gòu)的程序在執(zhí)行時(shí)按照先后順序逐條進(jìn)行,沒(méi)有分支,沒(méi)有轉(zhuǎn)移。如后面章節(jié)中介紹的賦值語(yǔ)句、輸入、輸出語(yǔ)句等都可以構(gòu)成順序結(jié)構(gòu)。順序結(jié)構(gòu)可用圖1.2所示的流程圖表示。,圖1.2 順序結(jié)構(gòu)流程圖,2選擇結(jié)構(gòu) 選擇結(jié)構(gòu)的程序要根據(jù)不同的條件去執(zhí)行不同分支中的語(yǔ)句。 如后面章節(jié)中介紹的if語(yǔ)句,switch語(yǔ)句等可以構(gòu)成選擇結(jié)構(gòu)。選擇結(jié)構(gòu)可用圖1.3所示的流程圖表示。,圖1.3 選擇結(jié)構(gòu)流程圖,3循環(huán)結(jié)構(gòu) 不同形式的循環(huán)結(jié)構(gòu)要根據(jù)各自的條件,使同一組語(yǔ)句重復(fù)執(zhí)行多次或一次也不執(zhí)行。循環(huán)結(jié)構(gòu)包括當(dāng)型循環(huán)(如圖1.4所示)和直到型循環(huán)(如圖1.5所示)。當(dāng)型循環(huán)的特點(diǎn)是:當(dāng)指定的條件滿(mǎn)足時(shí),就執(zhí)行循環(huán)體,否則就不執(zhí)行。直到型循環(huán)的特點(diǎn)是:執(zhí)行循環(huán)體直到指定的條件滿(mǎn)足,就不在執(zhí)行循環(huán)。,圖1.4 當(dāng)型循環(huán),圖1.5 直到型循環(huán) 重點(diǎn)提示:結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。,1.3.2 模塊化結(jié)構(gòu) 計(jì)算機(jī)在處理復(fù)雜任務(wù)時(shí),常常需要把這個(gè)大任務(wù)分解為若干個(gè)子任務(wù),每個(gè)子任務(wù)又分成很多個(gè)小子任務(wù),每個(gè)小子任務(wù)只完成一項(xiàng)簡(jiǎn)單的功能。在程序設(shè)計(jì)時(shí),用一個(gè)個(gè)小模塊來(lái)實(shí)現(xiàn)這些功能。我們稱(chēng)這樣的程序設(shè)計(jì)方法為“模塊化”,由一個(gè)個(gè)功能模塊構(gòu)成的程序結(jié)構(gòu)就稱(chēng)為模塊化結(jié)構(gòu)。模塊化結(jié)構(gòu)可以大大提高程序編制的效率。,軟件人員在進(jìn)行程序設(shè)計(jì)時(shí),首先應(yīng)集中考慮主程序中的算法,寫(xiě)出主程序后再逐步完成子程序的調(diào)用。而對(duì)這些“子”程序也可以用調(diào)用主程序的方法逐步完成其下一層子程序的調(diào)用。這就是自頂向下、逐步細(xì)化

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論