




已閱讀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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)抗菌產(chǎn)品行業(yè)市場(chǎng)全景分析及前景機(jī)遇研判報(bào)告
- 智能網(wǎng)聯(lián)汽車(chē)技術(shù)概論(含實(shí)訓(xùn)任務(wù)書(shū))教案全套 第1-7章 概述、智能網(wǎng)聯(lián)汽車(chē)技術(shù)原理-智能網(wǎng)聯(lián)汽車(chē)軟件系統(tǒng)
- 2025年中國(guó)睫毛延伸行業(yè)市場(chǎng)全景分析及前景機(jī)遇研判報(bào)告
- 2025年中國(guó)家用橢圓機(jī)行業(yè)市場(chǎng)全景分析及前景機(jī)遇研判報(bào)告
- 中國(guó)中藥飲片行業(yè)發(fā)展趨勢(shì)預(yù)測(cè)及投資規(guī)劃研究報(bào)告
- 2023-2028年中國(guó)紅木木材行業(yè)市場(chǎng)深度分析及未來(lái)發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2025年中國(guó)家用電烤箱市場(chǎng)供需現(xiàn)狀及投資戰(zhàn)略研究報(bào)告
- 2025年 西藏行測(cè)考試筆試試題附答案
- 錦綸行業(yè)深度研究分析報(bào)告(2024-2030版)
- 中國(guó)裝修施工服務(wù)行業(yè)市場(chǎng)深度研究及投資戰(zhàn)略規(guī)劃報(bào)告
- 物業(yè)小飯桌管理制度
- 2025年湖南省普通高中學(xué)業(yè)水平考試合格性考試模擬試題(長(zhǎng)郡版高一生物)(原卷版)
- 2025春國(guó)家開(kāi)放大學(xué)《思想道德與法治》終考大作業(yè)答案
- 2025年廣東省廣州市白云區(qū)中考語(yǔ)文二模試卷
- 【英語(yǔ)(新高考Ⅰ卷)】2025年普通高等學(xué)校招生全國(guó)統(tǒng)一考試
- 2025年天津市河西區(qū)中考二模數(shù)學(xué)試題(含部分答案)
- 醫(yī)院培訓(xùn)課件:《藥品不良反應(yīng)報(bào)告和監(jiān)測(cè)工作簡(jiǎn)介》
- 廣東省東莞市2025屆九年級(jí)下學(xué)期中考三模語(yǔ)文試卷(含答案)
- 高中英語(yǔ)必背3500單詞表完整版
- 醫(yī)師職業(yè)素養(yǎng)課件
- 電網(wǎng)工程設(shè)備材料信息參考價(jià)2025年第一季度
評(píng)論
0/150
提交評(píng)論