




已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,C語言程序設(shè)計(jì) 第1章 程序設(shè)計(jì)概述,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,第1章 程序設(shè)計(jì)概述,1.1 程序設(shè)計(jì)語言 1.2 算法 1.3 程序設(shè)計(jì)與實(shí)現(xiàn) 1.4 C語言程序的基本結(jié)構(gòu),C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.1 程序設(shè)計(jì)語言,程序設(shè)計(jì)語言:程序設(shè)計(jì)語言是用來編寫計(jì)算機(jī)程序的語言,它按照特定的規(guī)則組織計(jì)算機(jī)指令,使計(jì)算機(jī)能夠自動(dòng)進(jìn)行各種操作處理。 計(jì)算機(jī)程序: 按照程序設(shè)計(jì)語言的規(guī)則組織起來的一組計(jì)算機(jī)指令。 程序設(shè)計(jì)語言分類: 機(jī)器語言、匯編語言和高級(jí)語言。 C 語言屬于高級(jí)語言,1972年由美國的Dennis Ritchie設(shè)計(jì)發(fā)明。 1983年,美國國家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI)根據(jù)C語言問世以來各種版本對(duì) C的發(fā)展和擴(kuò)充,制定了C的標(biāo)準(zhǔn),稱為 ANSI C。1987年ANSI又公布了新的標(biāo)準(zhǔn)87 ANSI C。,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.1 程序設(shè)計(jì)語言,C語言程序示例: 計(jì)算1到100的所有自然數(shù)的和。,#include int main(void) int i=1,s=0; while(i=100) /* 循環(huán)控制 */ s=s+i; /* 數(shù)據(jù)累加 */ i=i+1; /* 生成下一個(gè)要累加的數(shù) */ printf(“sum=%dn“,s); /* 輸出結(jié)果 */ return 0; ,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.2 算法,1.2.1 算法概念與算法描述 1.2.2 算法的邏輯結(jié)構(gòu) 1.2.4 算法的特性 1.2.4 算法評(píng)價(jià),C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.2.1 算法概念與算法描述,算法重要性:程序=數(shù)據(jù)結(jié)構(gòu)+算法 1算法的概念 算法是為計(jì)算機(jī)處理問題所設(shè)計(jì)的解題步驟。算法的最終實(shí)現(xiàn)是計(jì)算機(jī)程序。 2算法的描述方法 自然語言 流程圖 N-S圖 PAD圖 偽碼等。,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.2.1 算法概念與算法描述, 用自然語言描述算法 “計(jì)算1到100的所有自然數(shù)的和” 步驟 i和s賦初值,使i=1,s=0; 步驟 判斷i的值,若i100 則執(zhí)行步驟;否則,轉(zhuǎn)步驟; 步驟 s加i; 步驟 i加1,轉(zhuǎn)步驟; 步驟 顯示s的值,結(jié)束。,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.2.1 算法概念與算法描述, 用流程圖描述算法,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.2.1 算法概念與算法描述,“計(jì)算1100自然數(shù)和”的算法,步驟 i=1,s=0; 步驟 若i100 則執(zhí)行步驟;否則,轉(zhuǎn)步驟; 步驟 s+i; 步驟 i+1,轉(zhuǎn)步驟; 步驟 顯示s的值,結(jié)束,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.2.2 算法的邏輯結(jié)構(gòu),算法的三種結(jié)構(gòu) 順序結(jié)構(gòu) 分支結(jié)構(gòu) 循環(huán)結(jié)構(gòu) 三種結(jié)構(gòu)互相結(jié)合,可以實(shí)現(xiàn)任何邏輯控制,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.2.2 算法的邏輯結(jié)構(gòu),1、順序結(jié)構(gòu) 特點(diǎn):各個(gè)步驟由前到后依次執(zhí)行,每個(gè)步驟都執(zhí)行一次。,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.2.2 算法的邏輯結(jié)構(gòu),1、順序結(jié)構(gòu) 舉例:輸入一個(gè)學(xué)生的兩門課程的成績,計(jì)算并輸出平均成績。,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.2.2 算法的邏輯結(jié)構(gòu),2、選擇結(jié)構(gòu) 特點(diǎn):某些步驟是否能夠執(zhí)行,要視當(dāng)前的條件而定,在同一次處理中,有的步驟可能執(zhí)行不到。,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.2.2 算法的邏輯結(jié)構(gòu),2、選擇結(jié)構(gòu),舉例:輸入一個(gè)學(xué)生兩門課程的成績,若平均成績不低于90,則輸出“優(yōu)等生”;否則,輸出“加油!”。,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.2.2 算法的邏輯結(jié)構(gòu),3、循環(huán)結(jié)構(gòu) 特點(diǎn):有些步驟會(huì)被有條件地重復(fù)執(zhí)行(被重復(fù)執(zhí)行的步驟每次處理的數(shù)據(jù)也可能發(fā)生變化)。,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.2.2 算法的邏輯結(jié)構(gòu),3、循環(huán)結(jié)構(gòu),舉例: 計(jì)算1100自然數(shù)和。,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.2.3 算法的特性,算法特性 有窮性:一個(gè)算法必須經(jīng)過有限步驟之后結(jié)束?!坝邢薏襟E”,既指步驟量有限,同時(shí)也要求步驟量合理。 確定性:每一個(gè)步驟所規(guī)定的操作必須是確定的,不能有二義性。 有效性:每一個(gè)步驟描述的操作必須能夠通過已經(jīng)實(shí)現(xiàn)的基本運(yùn)算有效地執(zhí)行,并且得到確定的結(jié)果。 輸入和輸出特性。每個(gè)有意義的算法有零個(gè)或多個(gè)輸入,并且有一個(gè)或多個(gè)輸出。,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.2.4 算法評(píng)價(jià), 時(shí)間復(fù)雜性 算法執(zhí)行時(shí)間與問題規(guī)模的關(guān)系,是算法執(zhí)行效率指標(biāo)。 空間復(fù)雜性 算法對(duì)計(jì)算機(jī)內(nèi)存的需求程度,需求越少越好。 可讀性 算法可供人們閱讀的容易程度。 健壯性(容錯(cuò)性) 算法對(duì)不合理的輸入數(shù)據(jù)的反應(yīng)能力和處理能力。 通用性 算法適應(yīng)一類問題,而不是某個(gè)特定問題。 正確性 算法最根本的評(píng)價(jià)指標(biāo),指算法的執(zhí)行結(jié)果滿足預(yù)先規(guī)定的功能和性能要求。,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.3 程序設(shè)計(jì)與實(shí)現(xiàn),1.3.1 程序設(shè)計(jì)的基本過程 1.3.2 編輯運(yùn)行C語言程序,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.3.1 程序設(shè)計(jì)的基本過程,分析要處理的問題涉及的各種概念、數(shù)據(jù)特點(diǎn)、已知條件、所求結(jié)果,以及已知條件與所求結(jié)果之間的關(guān)系等各方面的信息。 明確:要做什么?,確定具體的算法,并選擇合適的算法表達(dá)工具對(duì)算法進(jìn)行描述。,用程序設(shè)計(jì)語言的語句和命令實(shí)現(xiàn)算法的每一個(gè)步驟。,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.3.2 編輯運(yùn)行C語言程序,使用VC+ 6.0實(shí)現(xiàn)C程序的基本步驟有4個(gè): 1建立源程序文件,3構(gòu)建可執(zhí)行文件,2編譯源程序,4運(yùn)行可執(zhí)行文件,啟動(dòng)VC+ 6.0系統(tǒng) 使用“File”“New”命令,打開VC+ 6.0的程序編輯窗口 錄入編輯源程序,保存文件,使用“Build”“Compile”命令對(duì)源程序進(jìn)行編譯,生成二進(jìn)制目標(biāo)代碼文件。,程序通過編譯之后,使用“Build”“Build”命令將編譯階段生成的目標(biāo)文件和系統(tǒng)的庫函數(shù)文件等連接起來,生成擴(kuò)展名是“.exe”的可執(zhí)行文件。,使用“Build”“!Execute”命令運(yùn)行程序,獲得執(zhí)行結(jié)果。,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.3.2 編輯運(yùn)行C語言程序,例1-1 使用VC+編輯運(yùn)行自然數(shù)累加程序。, 建立源程序文件。 啟動(dòng)VC+ 6.0,使用“File”“New”命令,打開 “new”窗口,選用“Files”選項(xiàng)卡,在主窗口中選擇“C+ Source File”項(xiàng),在“File”對(duì)話框中輸入文件名,在“Location”對(duì)話框中指定文件的存儲(chǔ)位置。,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.3.2 編輯運(yùn)行C語言程序, 建立源程序文件 單擊“OK”按鈕,打開程序編輯窗口錄入編輯源程序,并及時(shí)存盤。,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.3.2 編輯運(yùn)行C語言程序, 建立源程序文件。 編譯源程序 程序編輯完成后,使用“Build”“Compile ”命令編譯,執(zhí)行“Build”“Compile”命令后的提示信息,編譯結(jié)果顯示在編譯報(bào)告窗口,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.3.2 編輯運(yùn)行C語言程序, 建立源程序文件。 編譯源程序。 構(gòu)建可執(zhí)行文件。 程序編譯完成后,使用“Build”“Build ”構(gòu)建可執(zhí)行文件。 運(yùn)行可執(zhí)行文件。 成功構(gòu)建可執(zhí)行文件之后,使用“Build”“!Execute”命令即可運(yùn)行程序。,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.4 C語言程序的基本結(jié)構(gòu),1.4.1 程序的函數(shù)化結(jié)構(gòu) 1.4.2 標(biāo)識(shí)符與保留字 1.4.3 程序風(fēng)格,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.4 1 程序的函數(shù)化結(jié)構(gòu),1簡單C語言程序的結(jié)構(gòu) C語言程序是由函數(shù)構(gòu)成的,任何一個(gè)C語言程序都有一個(gè)稱為主函數(shù)的main()函數(shù)。 main()函數(shù)的一般結(jié)構(gòu): int main() 函數(shù)體 ,例1-2 更簡單的C程序。 #include int main() printf(“Hello!n“); return 0; ,特別強(qiáng)調(diào): 任何一個(gè)C語言程序,main()函數(shù)都是不可缺少的,當(dāng)一個(gè)C語言程序只有一個(gè)函數(shù)模塊時(shí),這個(gè)函數(shù)必然是main()函數(shù)。,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.4.1 程序的函數(shù)化結(jié)構(gòu),2C語言程序的一般結(jié)構(gòu) 一個(gè)C語言程序,在結(jié)構(gòu)上不僅要有main()函數(shù),還可以包括其他獨(dú)立的函數(shù),一個(gè)函數(shù)可以在另一個(gè)函數(shù)中被使用。,例1-3 輸出圖案程序。 #include int main(void) /* 主函數(shù) */ void p_s(void); p_s(); p_s(); p_s(); return 0; void p_s() /* 其他函數(shù) */ printf(“$#$n“); ,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.4.1 程序的函數(shù)化結(jié)構(gòu),3C語言程序的基本特點(diǎn) C語言程序由函數(shù)構(gòu)成,而且每個(gè)程序可以有多個(gè)函數(shù)。 一個(gè)源程序不論由多少個(gè)函數(shù)組成,有且只能有一個(gè)main()函數(shù),而且main()函數(shù)可以放在程序的任何位置。 一個(gè)源程序無論由多少個(gè)函數(shù)構(gòu)成,總是從main()函數(shù)開始執(zhí)行程序,與main()函數(shù)在程序中的位置無關(guān)。,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.4.2 標(biāo)識(shí)符與保留字,1. 標(biāo)識(shí)符 在程序中使用的變量名、函數(shù)名等。 標(biāo)識(shí)符構(gòu)成 任何一個(gè)標(biāo)識(shí)符只能是由字母(AZ,az)、數(shù)字(09)和下劃線“_”構(gòu)成的字符串,其他符號(hào)不能出現(xiàn)在標(biāo)識(shí)符中,并且標(biāo)識(shí)符的第一個(gè)字符必須是字母或下劃線。 合法標(biāo)識(shí)符 a BOOK1 max _add num_1 非法標(biāo)識(shí)符 3sum 不允許以數(shù)字開頭 ab#cd 使用了非法字符“#” book-1 出現(xiàn)非法字符“-”(減號(hào)),注意: 兩個(gè)標(biāo)識(shí)符中的字母相同而大小寫形式不同時(shí),C語言認(rèn)為是兩個(gè)不同的標(biāo)識(shí)符。 標(biāo)識(shí)符命名應(yīng)盡量有相應(yīng)的意義,以便閱讀理解。 建議初學(xué)者盡量使用較短而有意義的標(biāo)識(shí)符,既便于上機(jī)訓(xùn)練,也會(huì)使程序更清晰。,2保留字 由語言規(guī)定的用于定義變量類型、命令字等具有特定意義的標(biāo)識(shí)符。,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,1.4.3 程序風(fēng)格, 如果一行能夠容下一個(gè)語句,那么就讓這個(gè)語句獨(dú)占一行。 用 括起來的部分,通常表示了程序的某一層次結(jié)構(gòu)?!啊焙汀啊币话闩c該結(jié)構(gòu)語句的第一個(gè)字母對(duì)齊,并單獨(dú)占一行。 低一層次的語句應(yīng)比高一層次的語句縮進(jìn)若干列后書寫,以便看起來更加清晰。 要在程序的開始或者在程序的關(guān)鍵位置使用注釋,以提高程序的可讀性。,C語言程序設(shè)計(jì)-理論、方法與實(shí)踐(第2版) 張磊編著,小結(jié)(1),( 1) 算法是逐步求解問題的方法,是計(jì)算機(jī)處理問題所需要的具體步驟。流程圖、偽代碼是常用的描述算法方法。 (2) 順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)是算法的三種基本結(jié)構(gòu)。
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 健康指導(dǎo)員培訓(xùn)
- 大班體能活動(dòng)系統(tǒng)化設(shè)計(jì)
- 25個(gè)顛覆認(rèn)知的健康冷知識(shí)
- 吃好正餐健康生活
- 2025年電信和其他信息傳輸服務(wù)項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模板
- 2025年合成材料項(xiàng)目提案報(bào)告模板
- 2025年廣東能源集團(tuán)節(jié)能降碳有限公司招聘考試筆試試題(含答案)
- 2025年赤峰市公安局招聘警務(wù)輔助人員考試筆試試題(含答案)
- 【株洲】2025年湖南株洲日?qǐng)?bào)社招聘13人筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 故事教學(xué)課件設(shè)計(jì)
- 根管治療期間疼痛的處理
- 客服兼職聘用合同范例
- 調(diào)味品供應(yīng)合同范本
- 2024年葡萄糖注射液項(xiàng)目可行性研究報(bào)告
- 國家職業(yè)技術(shù)技能標(biāo)準(zhǔn) 4-04-02-02 信息通信網(wǎng)絡(luò)線務(wù)員 人社廳發(fā)20199號(hào)
- 垃圾清運(yùn)方案、安全作業(yè)制度、環(huán)保管理制度
- 【互聯(lián)網(wǎng)消費(fèi)金融風(fēng)險(xiǎn)管控探究:以螞蟻花唄ABS為例(論文)11000字】
- 安全操作規(guī)程匯編(服裝廠)
- 國企集團(tuán)公司各崗位廉潔風(fēng)險(xiǎn)點(diǎn)防控表格(廉政)范本
- 人事專員合同范本
- 山東省德州市禹城市2023-2024學(xué)年五年級(jí)下學(xué)期道德與法治期末檢測(cè)試題
評(píng)論
0/150
提交評(píng)論