版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語(yǔ)言程序設(shè)計(jì)C語(yǔ)言程序設(shè)計(jì)2---教材《全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)教程—c語(yǔ)言程序設(shè)計(jì)(2017年版)》田淑清主編高等教育出版社---參考書《c語(yǔ)言程序設(shè)計(jì)》譚浩強(qiáng)清華大學(xué)出版社---課時(shí)安排:總學(xué)時(shí):64學(xué)時(shí)理論授課:32學(xué)時(shí)上機(jī)實(shí)驗(yàn):32學(xué)時(shí)教材、參考書與課時(shí)安排2---教材教材、參考書與課時(shí)安排C程序設(shè)計(jì)的初步知識(shí)23選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)45順序結(jié)構(gòu)C語(yǔ)言程序設(shè)計(jì)(2017版)程序設(shè)計(jì)基本概念1字符型數(shù)據(jù)6C程序設(shè)計(jì)的初步知識(shí)23選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)45順序結(jié)構(gòu)C語(yǔ)言程函數(shù)78數(shù)組字符串910指針C語(yǔ)言程序設(shè)計(jì)(2017版)C語(yǔ)言中用戶標(biāo)識(shí)符的作用域和存儲(chǔ)類12對(duì)函數(shù)的進(jìn)一步討論11函數(shù)78數(shù)組字符串910指針C語(yǔ)言程序設(shè)計(jì)(2017版)C語(yǔ)13結(jié)構(gòu)體、共用體和用戶定義類型位運(yùn)算1415編譯預(yù)處理和動(dòng)態(tài)存儲(chǔ)分配C語(yǔ)言程序設(shè)計(jì)(2017版)文件1613結(jié)構(gòu)體、共用體和用戶定義類型位運(yùn)算1415編譯預(yù)處理和動(dòng)第1章程序設(shè)計(jì)基本概念1.1程序和程序設(shè)計(jì)1.2算法1.3結(jié)構(gòu)化程序設(shè)計(jì)和模塊化結(jié)構(gòu)第1章程序設(shè)計(jì)基本概念1.1程序和程序設(shè)計(jì)1.2算法12022/11/241.1.1C程序●定義:可以連續(xù)執(zhí)行的一條條指令的集合。●程序設(shè)計(jì)語(yǔ)言分類1.1程序和程序設(shè)計(jì)2022/11/221.1.1C程序1.1程序和程序設(shè)計(jì)2022/11/241、計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的發(fā)展(1)機(jī)器語(yǔ)言電子計(jì)算機(jī)所使用的是由“0”和“1”組成的二進(jìn)制數(shù),二進(jìn)制是計(jì)算機(jī)語(yǔ)言的基礎(chǔ)。計(jì)算機(jī)發(fā)明之初,人們只能降貴屈尊,用計(jì)算機(jī)的語(yǔ)言去命令計(jì)算機(jī)干這干那,一句話,就是寫出一串串由“0”和“1”組成的指令序列交由計(jì)算機(jī)執(zhí)行,這種語(yǔ)言,就是機(jī)器語(yǔ)言。使用機(jī)器語(yǔ)言是十分痛苦的,特別是在程序有錯(cuò)需要修改時(shí),更是如此。而且,由于每臺(tái)計(jì)算機(jī)的指令系統(tǒng)往往各不相同,所以,在一臺(tái)計(jì)算機(jī)上執(zhí)行的程序,要想在另一臺(tái)計(jì)算機(jī)上執(zhí)行,必須另編程序,造成了重復(fù)工作。但由于使用的是針對(duì)特定型號(hào)計(jì)算機(jī)的語(yǔ)言,故而運(yùn)算效率是所有語(yǔ)言中最高的。機(jī)器語(yǔ)言,是第一代計(jì)算機(jī)語(yǔ)言。
1.1程序和程序設(shè)計(jì)2022/11/221、計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的發(fā)展1.1程序2022/11/24(2)匯編語(yǔ)言為了減輕使用機(jī)器語(yǔ)言編程的痛苦,人們進(jìn)行了一種有益的改進(jìn):用一些簡(jiǎn)潔的英文字母、符號(hào)串來替代一個(gè)特定的指令的二進(jìn)制串,比如,用“ADD”代表加法,“MOV”代表數(shù)據(jù)傳遞等等,這樣一來,人們很容易讀懂并理解程序在干什么,糾錯(cuò)及維護(hù)都變得方便了,這種程序設(shè)計(jì)語(yǔ)言就稱為匯編語(yǔ)言,即第二代計(jì)算機(jī)語(yǔ)言。然而計(jì)算機(jī)是不認(rèn)識(shí)這些符號(hào)的,這就需要一個(gè)專門的程序,專門負(fù)責(zé)將這些符號(hào)翻譯成二進(jìn)制數(shù)的機(jī)器語(yǔ)言,這種翻譯程序被稱為編譯程序。匯編語(yǔ)言同樣十分依賴于機(jī)器硬件,移植性不好,但效率仍十分高,針對(duì)計(jì)算機(jī)特定硬件而編制的匯編語(yǔ)言程序,能準(zhǔn)確發(fā)揮計(jì)算機(jī)硬件的功能和特長(zhǎng),程序精煉而質(zhì)量高,所以至今仍是一種常用而強(qiáng)有力的軟件開發(fā)工具。1.1程序和程序設(shè)計(jì)2022/11/22(2)匯編語(yǔ)言1.1程序和程序設(shè)計(jì)2022/11/24(3)高級(jí)語(yǔ)言
1954年,第一個(gè)完全脫離機(jī)器硬件的高級(jí)語(yǔ)言—FORTRAN問世了,40多年來,共有幾百種高級(jí)語(yǔ)言出現(xiàn)。
60年代中后期,軟件越來越多,規(guī)模越來越大,而軟件的生產(chǎn)基本上是人自為戰(zhàn),缺乏科學(xué)規(guī)范的系統(tǒng)規(guī)劃與測(cè)試、評(píng)估標(biāo)準(zhǔn),其惡果是大批耗費(fèi)巨資建立起來的軟件系統(tǒng),由于含有錯(cuò)誤而無法使用,甚至帶來巨大損失,軟件給人的感覺是越來越不可靠,以致幾乎沒有不出錯(cuò)的軟件。這一切,極大地震動(dòng)了計(jì)算機(jī)界,史稱“軟件危機(jī)”。人們認(rèn)識(shí)到:大型程序的編制不同于寫小程序,它應(yīng)該是一項(xiàng)新的技術(shù),應(yīng)該像處理工程一樣處理軟件研制的全過程。程序的設(shè)計(jì)應(yīng)易于保證正確性,也便于驗(yàn)證正確性。1969年,提出了結(jié)構(gòu)化程序設(shè)計(jì)方法,1970年,第一個(gè)結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言—Pascal語(yǔ)言出現(xiàn),標(biāo)志著結(jié)構(gòu)化程序設(shè)計(jì)時(shí)期的開始。
1.1程序和程序設(shè)計(jì)2022/11/22(3)高級(jí)語(yǔ)言1.1程序和程序設(shè)計(jì)2022/11/2480年代初開始,在軟件設(shè)計(jì)思想上,又產(chǎn)生了一次革命,其成果就是面向?qū)ο蟮某绦蛟O(shè)計(jì)。在此之前的高級(jí)語(yǔ)言,幾乎都是面向過程的,程序的執(zhí)行是流水線似的,在一個(gè)模塊被執(zhí)行完成前,人們不能干別的事,也無法動(dòng)態(tài)地改變程序的執(zhí)行方向。這和人們?nèi)粘L幚硎挛锏姆绞绞遣灰恢碌?,?duì)人而言是希望發(fā)生一件事就處理一件事,也就是說,不能面向過程,而應(yīng)是面向具體的應(yīng)用功能,也就是對(duì)象(object)。其方法就是軟件的集成化,如同硬件的集成電路一樣,生產(chǎn)一些通用的、封裝緊密的功能模塊,稱之為軟件集成塊,它與具體應(yīng)用無關(guān),但能相互組合,完成具體的應(yīng)用功能,同時(shí)又能重復(fù)使用。對(duì)使用者來說,只關(guān)心它的接口(輸入量、輸出量)及能實(shí)現(xiàn)的功能,至于如何實(shí)現(xiàn)的,那是它內(nèi)部的事,使用者完全不用關(guān)心,C++、VB、Delphi就是典型代表。1.1程序和程序設(shè)計(jì)2022/11/2280年代初開始,2022/11/24
高級(jí)語(yǔ)言的下一個(gè)發(fā)展目標(biāo)是面向應(yīng)用,也就是說:只需要告訴程序你要干什么,程序就能自動(dòng)生成算法,自動(dòng)進(jìn)行處理,這就是非過程化的程序語(yǔ)言。1.1程序和程序設(shè)計(jì)2022/11/221.1程序和程序2022/11/242、C語(yǔ)言程序的執(zhí)行
編輯C語(yǔ)言源程序EX101.C
編譯C語(yǔ)言程序
連接EX101.EXE
執(zhí)行文件
二進(jìn)制機(jī)器指令(目標(biāo)文件)EX101.obj編譯程序連接程序1.1程序和程序設(shè)計(jì)2022/11/222、C語(yǔ)言程序的執(zhí)行二進(jìn)制機(jī)器指令(目標(biāo)2022/11/241.1.2程序設(shè)計(jì)程序設(shè)計(jì)是一個(gè)工作的過程,包括:在計(jì)算機(jī)上對(duì)指定的任務(wù)來確定采用的數(shù)據(jù)結(jié)構(gòu)和算法,然后選擇合適的計(jì)算機(jī)語(yǔ)言進(jìn)行編碼(編程),在計(jì)算機(jī)上對(duì)程序進(jìn)行調(diào)試,直到得到正確結(jié)果。簡(jiǎn)單的程序設(shè)計(jì)包括:
●分析問題
●確定數(shù)據(jù)結(jié)構(gòu)————加工對(duì)象數(shù)據(jù)類型、數(shù)據(jù)的組織形式●確定算法————靈魂●編碼在一定語(yǔ)言環(huán)境和工具支持下編寫源程序代碼●調(diào)試源程序語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤●整理并寫出文檔資料給出必要的注釋/*……………*/
1.1程序和程序設(shè)計(jì)2022/11/221.1.2程序設(shè)計(jì)1.1程序和程序1.2.1算法的概念程序=算法+數(shù)據(jù)結(jié)構(gòu)
所謂算法,就是一個(gè)有窮規(guī)則的集合,其中的規(guī)則確定了一個(gè)解決某個(gè)特定類型問題的運(yùn)算序列。簡(jiǎn)單說:就是為解決某一特定問題而采取的具體的有限的操作步驟。1.2算法1.2.1算法的概念程序=算法+數(shù)據(jù)結(jié)構(gòu)所謂算16
1.2.2
算法的特性(5個(gè)規(guī)則)(1)算法的有窮性算法中執(zhí)行步驟在執(zhí)行有窮步后結(jié)束,是有限的,每一條指令執(zhí)行次數(shù)都是有限的。(2)算法的有效性(可行性)算法中每一個(gè)步驟都應(yīng)當(dāng)能有效地執(zhí)行,并得到確定的結(jié)果。(3)輸入
一個(gè)算法應(yīng)當(dāng)有若干個(gè)輸入量,所謂輸入是指在執(zhí)行算法時(shí)需要從外界取得必要的信息。1.2算法161.2.2
算法的特性(5個(gè)規(guī)則)1.2算法
(4)輸出一個(gè)算法有一個(gè)或多個(gè)輸出的量,它們是與輸入有某種關(guān)系的量。(5)算法的確定性算法中的每一個(gè)操作的含義必須明確,無二義性。一定條件下執(zhí)行路徑也是唯一的。1.2算法(4)輸出(5)算法的確定性1.2算法(1)自然語(yǔ)言表示法
1.2.3算法描述自然語(yǔ)言表示法是用自然語(yǔ)言敘述一個(gè)問題的求解過程。自然語(yǔ)言描述的算法明確、詳細(xì),是人們常用的描述解決問題的步驟的一般方法。前面的例題在描述其算法結(jié)構(gòu)的時(shí)候,用到了自然語(yǔ)言的描述方法。(2)程序流程圖
程序流程圖是用規(guī)定的圖形、指向線和文字說明來表示算法的一種圖形。1.2算法(1)自然語(yǔ)言表示法1.2.3算法描述自程序流程圖的基本符號(hào):1)橢圓形圖框:終端框表示算法的開始與結(jié)束2)矩型圖框:處理框表示算法的各種處理功能3)菱形圖框:判斷框表示算法的條件轉(zhuǎn)移操作4)平形四邊形:表示算法的輸入/輸出操作5)圓點(diǎn)圖框:引入引出連接符表示流程圖的延續(xù)6)指向線:指向線指引流程圖中的方向1.2算法1.2算法20算法的表示--流程圖起止框輸入/出框判斷框處理框流程線連接點(diǎn)1.2算法20算法的表示--流程圖起止框輸入/出框判斷框處理框(3)N-S圖
N-S圖用層層嵌套的方框圖形來描述程序算法,避免了流程圖中出現(xiàn)的流程線,有效控制了無條件轉(zhuǎn)移,體現(xiàn)了結(jié)構(gòu)化描述方法。
(4)偽代碼表示算法
偽代碼表示算法是用介于自然語(yǔ)言和計(jì)算機(jī)語(yǔ)言之間的文字和符號(hào)表示算法。1.2算法(3)N-S圖(4)偽代碼表示算法1.2算法
1.3.1結(jié)構(gòu)化程序
(1)順序結(jié)構(gòu)順序結(jié)構(gòu)中的各個(gè)模塊是按照它們出現(xiàn)的先后順序執(zhí)行的。(2)選擇結(jié)構(gòu)選擇結(jié)構(gòu)先判斷選擇條件,根據(jù)判斷的邏輯值,確定執(zhí)行其中的某一個(gè)模塊。(3)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)先判斷循環(huán)條件,滿足條件重復(fù)執(zhí)行循環(huán)體包含的執(zhí)行塊,直到循環(huán)條件不滿足,終止循環(huán)。
1.3結(jié)構(gòu)化程序和模塊化結(jié)構(gòu)1.3.1結(jié)構(gòu)化程序1.3結(jié)構(gòu)化程序和模塊化結(jié)構(gòu)程序流程圖的基本結(jié)構(gòu)
A
B順序結(jié)構(gòu)流程圖
ABT
F條件P分支結(jié)構(gòu)流程圖1.3結(jié)構(gòu)化程序和模塊化結(jié)構(gòu)程序流程圖的基本結(jié)構(gòu)AB順序結(jié)構(gòu)流程圖當(dāng)循環(huán)結(jié)構(gòu)流程圖
A
條件PTF直到循環(huán)結(jié)構(gòu)流程圖
ATF條件P1.3結(jié)構(gòu)化程序和模塊化結(jié)構(gòu)當(dāng)循環(huán)結(jié)構(gòu)流程圖A條件P2022/11/24
當(dāng)條件P為真
A
當(dāng)循環(huán)結(jié)構(gòu)流程圖
A
直到條件P為真直到循環(huán)結(jié)構(gòu)流程圖
條件P
T
F
A
B選擇結(jié)構(gòu)流程圖N-S圖1.3結(jié)構(gòu)化程序和模塊化結(jié)構(gòu)2022/11/22當(dāng)循環(huán)結(jié)構(gòu)流程圖直到循環(huán)結(jié)構(gòu)1.3.2模塊化結(jié)構(gòu)自頂向下、逐級(jí)細(xì)化2022/11/241.3結(jié)構(gòu)化程序和模塊化結(jié)構(gòu)1.3.2模塊化結(jié)構(gòu)自頂向下、逐級(jí)細(xì)化2022/11/22C語(yǔ)言程序設(shè)計(jì)C語(yǔ)言程序設(shè)計(jì)28---教材《全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)教程—c語(yǔ)言程序設(shè)計(jì)(2017年版)》田淑清主編高等教育出版社---參考書《c語(yǔ)言程序設(shè)計(jì)》譚浩強(qiáng)清華大學(xué)出版社---課時(shí)安排:總學(xué)時(shí):64學(xué)時(shí)理論授課:32學(xué)時(shí)上機(jī)實(shí)驗(yàn):32學(xué)時(shí)教材、參考書與課時(shí)安排2---教材教材、參考書與課時(shí)安排C程序設(shè)計(jì)的初步知識(shí)23選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)45順序結(jié)構(gòu)C語(yǔ)言程序設(shè)計(jì)(2017版)程序設(shè)計(jì)基本概念1字符型數(shù)據(jù)6C程序設(shè)計(jì)的初步知識(shí)23選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)45順序結(jié)構(gòu)C語(yǔ)言程函數(shù)78數(shù)組字符串910指針C語(yǔ)言程序設(shè)計(jì)(2017版)C語(yǔ)言中用戶標(biāo)識(shí)符的作用域和存儲(chǔ)類12對(duì)函數(shù)的進(jìn)一步討論11函數(shù)78數(shù)組字符串910指針C語(yǔ)言程序設(shè)計(jì)(2017版)C語(yǔ)13結(jié)構(gòu)體、共用體和用戶定義類型位運(yùn)算1415編譯預(yù)處理和動(dòng)態(tài)存儲(chǔ)分配C語(yǔ)言程序設(shè)計(jì)(2017版)文件1613結(jié)構(gòu)體、共用體和用戶定義類型位運(yùn)算1415編譯預(yù)處理和動(dòng)第1章程序設(shè)計(jì)基本概念1.1程序和程序設(shè)計(jì)1.2算法1.3結(jié)構(gòu)化程序設(shè)計(jì)和模塊化結(jié)構(gòu)第1章程序設(shè)計(jì)基本概念1.1程序和程序設(shè)計(jì)1.2算法12022/11/241.1.1C程序●定義:可以連續(xù)執(zhí)行的一條條指令的集合?!癯绦蛟O(shè)計(jì)語(yǔ)言分類1.1程序和程序設(shè)計(jì)2022/11/221.1.1C程序1.1程序和程序設(shè)計(jì)2022/11/241、計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的發(fā)展(1)機(jī)器語(yǔ)言電子計(jì)算機(jī)所使用的是由“0”和“1”組成的二進(jìn)制數(shù),二進(jìn)制是計(jì)算機(jī)語(yǔ)言的基礎(chǔ)。計(jì)算機(jī)發(fā)明之初,人們只能降貴屈尊,用計(jì)算機(jī)的語(yǔ)言去命令計(jì)算機(jī)干這干那,一句話,就是寫出一串串由“0”和“1”組成的指令序列交由計(jì)算機(jī)執(zhí)行,這種語(yǔ)言,就是機(jī)器語(yǔ)言。使用機(jī)器語(yǔ)言是十分痛苦的,特別是在程序有錯(cuò)需要修改時(shí),更是如此。而且,由于每臺(tái)計(jì)算機(jī)的指令系統(tǒng)往往各不相同,所以,在一臺(tái)計(jì)算機(jī)上執(zhí)行的程序,要想在另一臺(tái)計(jì)算機(jī)上執(zhí)行,必須另編程序,造成了重復(fù)工作。但由于使用的是針對(duì)特定型號(hào)計(jì)算機(jī)的語(yǔ)言,故而運(yùn)算效率是所有語(yǔ)言中最高的。機(jī)器語(yǔ)言,是第一代計(jì)算機(jī)語(yǔ)言。
1.1程序和程序設(shè)計(jì)2022/11/221、計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的發(fā)展1.1程序2022/11/24(2)匯編語(yǔ)言為了減輕使用機(jī)器語(yǔ)言編程的痛苦,人們進(jìn)行了一種有益的改進(jìn):用一些簡(jiǎn)潔的英文字母、符號(hào)串來替代一個(gè)特定的指令的二進(jìn)制串,比如,用“ADD”代表加法,“MOV”代表數(shù)據(jù)傳遞等等,這樣一來,人們很容易讀懂并理解程序在干什么,糾錯(cuò)及維護(hù)都變得方便了,這種程序設(shè)計(jì)語(yǔ)言就稱為匯編語(yǔ)言,即第二代計(jì)算機(jī)語(yǔ)言。然而計(jì)算機(jī)是不認(rèn)識(shí)這些符號(hào)的,這就需要一個(gè)專門的程序,專門負(fù)責(zé)將這些符號(hào)翻譯成二進(jìn)制數(shù)的機(jī)器語(yǔ)言,這種翻譯程序被稱為編譯程序。匯編語(yǔ)言同樣十分依賴于機(jī)器硬件,移植性不好,但效率仍十分高,針對(duì)計(jì)算機(jī)特定硬件而編制的匯編語(yǔ)言程序,能準(zhǔn)確發(fā)揮計(jì)算機(jī)硬件的功能和特長(zhǎng),程序精煉而質(zhì)量高,所以至今仍是一種常用而強(qiáng)有力的軟件開發(fā)工具。1.1程序和程序設(shè)計(jì)2022/11/22(2)匯編語(yǔ)言1.1程序和程序設(shè)計(jì)2022/11/24(3)高級(jí)語(yǔ)言
1954年,第一個(gè)完全脫離機(jī)器硬件的高級(jí)語(yǔ)言—FORTRAN問世了,40多年來,共有幾百種高級(jí)語(yǔ)言出現(xiàn)。
60年代中后期,軟件越來越多,規(guī)模越來越大,而軟件的生產(chǎn)基本上是人自為戰(zhàn),缺乏科學(xué)規(guī)范的系統(tǒng)規(guī)劃與測(cè)試、評(píng)估標(biāo)準(zhǔn),其惡果是大批耗費(fèi)巨資建立起來的軟件系統(tǒng),由于含有錯(cuò)誤而無法使用,甚至帶來巨大損失,軟件給人的感覺是越來越不可靠,以致幾乎沒有不出錯(cuò)的軟件。這一切,極大地震動(dòng)了計(jì)算機(jī)界,史稱“軟件危機(jī)”。人們認(rèn)識(shí)到:大型程序的編制不同于寫小程序,它應(yīng)該是一項(xiàng)新的技術(shù),應(yīng)該像處理工程一樣處理軟件研制的全過程。程序的設(shè)計(jì)應(yīng)易于保證正確性,也便于驗(yàn)證正確性。1969年,提出了結(jié)構(gòu)化程序設(shè)計(jì)方法,1970年,第一個(gè)結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言—Pascal語(yǔ)言出現(xiàn),標(biāo)志著結(jié)構(gòu)化程序設(shè)計(jì)時(shí)期的開始。
1.1程序和程序設(shè)計(jì)2022/11/22(3)高級(jí)語(yǔ)言1.1程序和程序設(shè)計(jì)2022/11/2480年代初開始,在軟件設(shè)計(jì)思想上,又產(chǎn)生了一次革命,其成果就是面向?qū)ο蟮某绦蛟O(shè)計(jì)。在此之前的高級(jí)語(yǔ)言,幾乎都是面向過程的,程序的執(zhí)行是流水線似的,在一個(gè)模塊被執(zhí)行完成前,人們不能干別的事,也無法動(dòng)態(tài)地改變程序的執(zhí)行方向。這和人們?nèi)粘L幚硎挛锏姆绞绞遣灰恢碌?,?duì)人而言是希望發(fā)生一件事就處理一件事,也就是說,不能面向過程,而應(yīng)是面向具體的應(yīng)用功能,也就是對(duì)象(object)。其方法就是軟件的集成化,如同硬件的集成電路一樣,生產(chǎn)一些通用的、封裝緊密的功能模塊,稱之為軟件集成塊,它與具體應(yīng)用無關(guān),但能相互組合,完成具體的應(yīng)用功能,同時(shí)又能重復(fù)使用。對(duì)使用者來說,只關(guān)心它的接口(輸入量、輸出量)及能實(shí)現(xiàn)的功能,至于如何實(shí)現(xiàn)的,那是它內(nèi)部的事,使用者完全不用關(guān)心,C++、VB、Delphi就是典型代表。1.1程序和程序設(shè)計(jì)2022/11/2280年代初開始,2022/11/24
高級(jí)語(yǔ)言的下一個(gè)發(fā)展目標(biāo)是面向應(yīng)用,也就是說:只需要告訴程序你要干什么,程序就能自動(dòng)生成算法,自動(dòng)進(jìn)行處理,這就是非過程化的程序語(yǔ)言。1.1程序和程序設(shè)計(jì)2022/11/221.1程序和程序2022/11/242、C語(yǔ)言程序的執(zhí)行
編輯C語(yǔ)言源程序EX101.C
編譯C語(yǔ)言程序
連接EX101.EXE
執(zhí)行文件
二進(jìn)制機(jī)器指令(目標(biāo)文件)EX101.obj編譯程序連接程序1.1程序和程序設(shè)計(jì)2022/11/222、C語(yǔ)言程序的執(zhí)行二進(jìn)制機(jī)器指令(目標(biāo)2022/11/241.1.2程序設(shè)計(jì)程序設(shè)計(jì)是一個(gè)工作的過程,包括:在計(jì)算機(jī)上對(duì)指定的任務(wù)來確定采用的數(shù)據(jù)結(jié)構(gòu)和算法,然后選擇合適的計(jì)算機(jī)語(yǔ)言進(jìn)行編碼(編程),在計(jì)算機(jī)上對(duì)程序進(jìn)行調(diào)試,直到得到正確結(jié)果。簡(jiǎn)單的程序設(shè)計(jì)包括:
●分析問題
●確定數(shù)據(jù)結(jié)構(gòu)————加工對(duì)象數(shù)據(jù)類型、數(shù)據(jù)的組織形式●確定算法————靈魂●編碼在一定語(yǔ)言環(huán)境和工具支持下編寫源程序代碼●調(diào)試源程序語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤●整理并寫出文檔資料給出必要的注釋/*……………*/
1.1程序和程序設(shè)計(jì)2022/11/221.1.2程序設(shè)計(jì)1.1程序和程序1.2.1算法的概念程序=算法+數(shù)據(jù)結(jié)構(gòu)
所謂算法,就是一個(gè)有窮規(guī)則的集合,其中的規(guī)則確定了一個(gè)解決某個(gè)特定類型問題的運(yùn)算序列。簡(jiǎn)單說:就是為解決某一特定問題而采取的具體的有限的操作步驟。1.2算法1.2.1算法的概念程序=算法+數(shù)據(jù)結(jié)構(gòu)所謂算42
1.2.2
算法的特性(5個(gè)規(guī)則)(1)算法的有窮性算法中執(zhí)行步驟在執(zhí)行有窮步后結(jié)束,是有限的,每一條指令執(zhí)行次數(shù)都是有限的。(2)算法的有效性(可行性)算法中每一個(gè)步驟都應(yīng)當(dāng)能有效地執(zhí)行,并得到確定的結(jié)果。(3)輸入
一個(gè)算法應(yīng)當(dāng)有若干個(gè)輸入量,所謂輸入是指在執(zhí)行算法時(shí)需要從外界取得必要的信息。1.2算法161.2.2
算法的特性(5個(gè)規(guī)則)1.2算法
(4)輸出一個(gè)算法有一個(gè)或多個(gè)輸出的量,它們是與輸入有某種關(guān)系的量。(5)算法的確定性算法中的每一個(gè)操作的含義必須明確,無二義性。一定條件下執(zhí)行路徑也是唯一的。1.2算法(4)輸出(5)算法的確定性1.2算法(1)自然語(yǔ)言表示法
1.2.3算法描述自然語(yǔ)言表示法是用自然語(yǔ)言敘述一個(gè)問題的求解過程。自然語(yǔ)言描述的算法明確、詳細(xì),是人們常用的描述解決問題的步驟的一般方法。前面的例題在描述其算法結(jié)構(gòu)的時(shí)候,用到了自然語(yǔ)言的描述方法。(2)程序流程圖
程序流程圖是用規(guī)定的圖形、指向線和文字說明來表示算法的一種圖形。1.2算法(1)自然語(yǔ)言表示法1.2.3算法描述自程序流程圖的基本符號(hào):1)橢圓形圖框:終端框表示算法的開始與結(jié)束2)矩型圖框:處理框表示算法的各種處理功能3)菱形圖框:判斷框表示算法的條件轉(zhuǎn)移操作4)平形四邊形:表示算法的輸入/輸出操作5)圓點(diǎn)圖框:引入引出連接符表示流程圖的延續(xù)6)指向線:指向線指引流程圖中的方向1.2算法1.2算法46算法的表示--流程圖起止框輸入/出框判斷框處理框流程線連接點(diǎn)1.2算法20算法的表示--流程圖起止框輸入/出框判斷框處理框(3)N-S圖
N-S圖用層層嵌套的方框圖形來描述程序算法,避免了流程圖中出現(xiàn)的流程線,有效控制了無條件轉(zhuǎn)移,體現(xiàn)了結(jié)構(gòu)化描述方法。
(4)偽代碼表
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學(xué)宿舍管理制度
- 臨時(shí)麻醉管理制度
- 2026年高級(jí)IT項(xiàng)目管理專業(yè)試題庫(kù)及答案
- 2026年音樂創(chuàng)作與音樂理論專業(yè)題庫(kù)
- 輸尿管支架管拔除同意書
- 廣東省肇慶市高要區(qū)2025-2026學(xué)年九年級(jí)上學(xué)期1月期末化學(xué)試題(含答案)
- 2025年陜西省初中學(xué)業(yè)水平考試物理試卷(副題)(含答案)
- 2025年濰坊食品科技職業(yè)學(xué)院馬克思主義基本原理概論期末考試模擬題帶答案解析(必刷)
- 2024年綏江縣幼兒園教師招教考試備考題庫(kù)附答案解析
- 2025年連云港職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)附答案解析
- 太空電梯能源供應(yīng)-洞察分析
- 人教版英語(yǔ)八年級(jí)全冊(cè)單詞默寫模板
- 環(huán)境影響評(píng)估投標(biāo)方案(技術(shù)方案)
- 危險(xiǎn)廢物管理臺(tái)賬(樣表)
- 磚瓦廠脫硝工藝
- GB/T 43731-2024生物樣本庫(kù)中生物樣本處理方法的確認(rèn)和驗(yàn)證通用要求
- 《沉積學(xué)復(fù)習(xí)提綱》課件
- 信訪工作課件
- 110kV旗潘線π接入社旗陌陂110kV輸電線路施工方案(OPGW光纜)解析
- 第5章 PowerPoint 2016演示文稿制作軟件
- 基坑支護(hù)降水施工組織設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論