第六講 計(jì)算思維之問題求解思想—2_第1頁
第六講 計(jì)算思維之問題求解思想—2_第2頁
第六講 計(jì)算思維之問題求解思想—2_第3頁
第六講 計(jì)算思維之問題求解思想—2_第4頁
第六講 計(jì)算思維之問題求解思想—2_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第六講 計(jì)算思維之問題求解思想 主題一 探討問題求解過程 主題二 相關(guān)知識(shí)的認(rèn)識(shí)與了解 主題三 關(guān)于算法的理解 主題四 算法策略大搜羅 主題五 幾個(gè)經(jīng)典案例的算法實(shí)現(xiàn)主題二相關(guān)知識(shí)的認(rèn)識(shí)與了解 數(shù)學(xué)建模 數(shù)據(jù)結(jié)構(gòu) 程序設(shè)計(jì)數(shù)學(xué)建模 我們對(duì)具體問題進(jìn)行分析、抽象、歸納和推理,從中發(fā)現(xiàn)可以用數(shù)學(xué)語言來描述的關(guān)系或規(guī)律,然后把這個(gè)實(shí)際問題化成一個(gè)數(shù)學(xué)問題,這就稱為數(shù)學(xué)模型,而建立數(shù)學(xué)模型的整個(gè)過程就稱為數(shù)學(xué)建模。數(shù)學(xué)建模 數(shù)學(xué)模型的定義 數(shù)學(xué)模型(Mathematical Model)是一種模擬,是用數(shù)學(xué)符號(hào)、數(shù)學(xué)式子、程序、圖形等對(duì)實(shí)際問題本質(zhì)屬性的抽象而又簡潔的刻劃,它或能解釋某些客觀現(xiàn)象,或能

2、預(yù)測(cè)未來的發(fā)展規(guī)律,或能為控制某一現(xiàn)象的發(fā)展提供某種意義下的最優(yōu)策略或較好策略。數(shù)學(xué)建模 數(shù)學(xué)模型的定義 數(shù)學(xué)建模是一種數(shù)學(xué)的思考方法,是運(yùn)用數(shù)學(xué)的語言和方法,通過抽象、簡化建立能近似刻畫并“解決”實(shí)際問題的一種強(qiáng)有力的數(shù)學(xué)手段。 數(shù)學(xué)建模和計(jì)算機(jī)技術(shù)的相互輔佐和融合在知識(shí)經(jīng)濟(jì)時(shí)代的作用可謂是如虎添翼。數(shù)學(xué)建模 建立數(shù)學(xué)模型的方法和步驟 模型準(zhǔn)備(問題的提出與分析)、模型假設(shè)與符號(hào)說明、模型的建立與求解、模型的分析與檢驗(yàn)、模型的完善與推廣模型的完善與推廣模型的分析與檢驗(yàn)?zāi)P偷慕⑴c求解模型假設(shè)與符號(hào)說明模型準(zhǔn)備(問題的提出與分析)主題二相關(guān)知識(shí)的認(rèn)識(shí)與了解 數(shù)學(xué)建模 數(shù)據(jù)結(jié)構(gòu) 程序設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)

3、 眾所周知,計(jì)算機(jī)的算法和程序是對(duì)信息進(jìn)行加工處理。在大多數(shù)情況下,這些信息并不是沒有組織,信息(數(shù)據(jù))之間往往具有重要的結(jié)構(gòu)關(guān)系,這就是數(shù)據(jù)結(jié)構(gòu)的內(nèi)容。數(shù)據(jù)的結(jié)構(gòu),直接影響問題求解算法的策略選擇和程序的執(zhí)行效率。數(shù)據(jù)結(jié)構(gòu)定義 數(shù)據(jù)結(jié)構(gòu)的定義 數(shù)據(jù)結(jié)構(gòu)(Data Structure)是計(jì)算機(jī)存儲(chǔ)、組織數(shù)據(jù)的方式。 數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。 一般認(rèn)為,一個(gè)數(shù)據(jù)結(jié)構(gòu)是由數(shù)據(jù)元素依據(jù)某種邏輯聯(lián)系組織起來的。數(shù)據(jù)結(jié)構(gòu)定義數(shù)據(jù)結(jié)構(gòu)的定義 數(shù)據(jù)結(jié)構(gòu)主要包括三個(gè)組成成分:數(shù)據(jù)的邏輯結(jié)構(gòu),數(shù)據(jù)的物理(存儲(chǔ))結(jié)構(gòu)和數(shù)據(jù)的運(yùn)算結(jié)構(gòu)。 數(shù)據(jù)的邏輯結(jié)構(gòu) 數(shù)據(jù)的邏輯結(jié)構(gòu)指反映數(shù)據(jù)元素

4、之間的邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu),其中的邏輯關(guān)系是指數(shù)據(jù)元素之間的前后件關(guān)系,而與它們?cè)谟?jì)算機(jī)中的存儲(chǔ)位置無關(guān)。 邏輯結(jié)構(gòu)有以下基本類型:集合結(jié)構(gòu)、線性結(jié)構(gòu)、非線性結(jié)構(gòu)(樹狀結(jié)構(gòu)和圖形結(jié)構(gòu))。數(shù)據(jù)結(jié)構(gòu)定義數(shù)據(jù)結(jié)構(gòu)的定義 數(shù)據(jù)結(jié)構(gòu)主要包括三個(gè)組成成分:數(shù)據(jù)的邏輯結(jié)構(gòu),數(shù)據(jù)的物理(存儲(chǔ))結(jié)構(gòu)和數(shù)據(jù)的運(yùn)算結(jié)構(gòu)。 數(shù)據(jù)的物理結(jié)構(gòu) 數(shù)據(jù)的物理(存儲(chǔ))結(jié)構(gòu)指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間的存放形式,是數(shù)據(jù)在計(jì)算機(jī)中的表示(又稱映像)。它所研究的是數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)中的實(shí)現(xiàn)方法,包括數(shù)據(jù)結(jié)構(gòu)中元素的表示及元素間關(guān)系的表示。 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)通常采用順序存儲(chǔ)或鏈?zhǔn)酱鎯?chǔ)的方法。數(shù)據(jù)結(jié)構(gòu)定義數(shù)據(jù)結(jié)構(gòu)的定義 數(shù)據(jù)結(jié)構(gòu)主要包括三

5、個(gè)組成成分:數(shù)據(jù)的邏輯結(jié)構(gòu),數(shù)據(jù)的物理(存儲(chǔ))結(jié)構(gòu)和數(shù)據(jù)的運(yùn)算結(jié)構(gòu)。 數(shù)據(jù)結(jié)構(gòu)的運(yùn)算 數(shù)據(jù)的運(yùn)算是數(shù)據(jù)結(jié)構(gòu)的一個(gè)重要方面,討論任一種數(shù)據(jù)結(jié)構(gòu)時(shí)都離不開對(duì)該結(jié)構(gòu)上的數(shù)據(jù)運(yùn)算及其實(shí)現(xiàn)算法的討論。 不同數(shù)據(jù)結(jié)構(gòu)有其相應(yīng)的若干運(yùn)算。數(shù)據(jù)的運(yùn)算是在數(shù)據(jù)的邏輯結(jié)構(gòu)上定義的操作算法,如檢索、插入、刪除、更新和排序等。數(shù)據(jù)結(jié)構(gòu)選擇意義數(shù)據(jù)結(jié)構(gòu)的選擇意義 在許多類型的程序設(shè)計(jì)算法中,數(shù)據(jù)結(jié)構(gòu)的選擇是一個(gè)基本的設(shè)計(jì)考慮因素。許多大型系統(tǒng)的構(gòu)造經(jīng)驗(yàn)表明,系統(tǒng)實(shí)現(xiàn)的困難程度和系統(tǒng)構(gòu)造的質(zhì)量都嚴(yán)重的依賴于是否選擇了最優(yōu)的數(shù)據(jù)結(jié)構(gòu)。許多時(shí)候,確定了數(shù)據(jù)結(jié)構(gòu)后,算法就容易得到了。 算法的設(shè)計(jì)取決于數(shù)據(jù)的邏輯結(jié)構(gòu),而算法的實(shí)

6、現(xiàn)依賴于數(shù)據(jù)采用的物理存儲(chǔ)結(jié)構(gòu)。 通常情況下,精心選擇的數(shù)據(jù)結(jié)構(gòu)可以給算法和程序帶來更高的運(yùn)行或者存儲(chǔ)效率。數(shù)據(jù)結(jié)構(gòu)常用數(shù)據(jù)結(jié)構(gòu) 常用數(shù)據(jù)結(jié)構(gòu)數(shù)組(Array) 在程序設(shè)計(jì)算法中,為了處理方便,把具有相同類型的若干變量按有序的形式組織起來。這些按序排列的同類數(shù)據(jù)元素的集合稱為數(shù)組。數(shù)據(jù)結(jié)構(gòu)常用數(shù)據(jù)結(jié)構(gòu) 常用數(shù)據(jù)結(jié)構(gòu)棧(Stack) 棧是只能在某一端插入和刪除數(shù)據(jù)的特殊線性表。它按照先進(jìn)后出的原則存儲(chǔ)數(shù)據(jù),先進(jìn)入的數(shù)據(jù)被壓入棧底,最后的數(shù)據(jù)在棧頂,需要讀數(shù)據(jù)的時(shí)候從棧頂開始彈出數(shù)據(jù)(最后一個(gè)數(shù)據(jù)被第一個(gè)讀出來)。數(shù)據(jù)結(jié)構(gòu)常用數(shù)據(jù)結(jié)構(gòu)常用數(shù)據(jù)結(jié)構(gòu)隊(duì)列(Queue) 隊(duì)列是一種特殊的線性表,它只允許

7、在表的前端(Front)進(jìn)行刪除操作,而在表的后端(Rear)進(jìn)行插入操作。 進(jìn)行插入操作的端稱為隊(duì)尾,進(jìn)行刪除操作的端稱為隊(duì)頭。隊(duì)列是按照“先進(jìn)先出”或“后進(jìn)后出”的原則組織數(shù)據(jù)的。隊(duì)列中沒有元素時(shí)稱為空隊(duì)列。數(shù)據(jù)結(jié)構(gòu)常用數(shù)據(jù)結(jié)構(gòu)常用數(shù)據(jù)結(jié)構(gòu)鏈表(Linked list)數(shù)據(jù)結(jié)構(gòu)常用數(shù)據(jù)結(jié)構(gòu)常用數(shù)據(jù)結(jié)構(gòu)鏈表(Linked list) 鏈表是一種物理存儲(chǔ)單元上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),它既可以表示線性結(jié)構(gòu),也可以用于表示非線性結(jié)構(gòu)。數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接次序?qū)崿F(xiàn)的。 鏈表由一系列結(jié)點(diǎn)(鏈表中每一個(gè)元素稱為結(jié)點(diǎn))組成,結(jié)點(diǎn)可以在運(yùn)行時(shí)動(dòng)態(tài)生成。 每個(gè)結(jié)點(diǎn)包括兩個(gè)部分:一個(gè)是存儲(chǔ)

8、數(shù)據(jù)元素的數(shù)據(jù)域,另一個(gè)是存儲(chǔ)下個(gè)結(jié)點(diǎn)地址的指針域。導(dǎo)座員3排4座小明4排1座小強(qiáng)4排5座小紅3排7座小麗1排2座小榮2排2座小佳2排6座小軍3排13座小宇4排9座小偉3排10座小峰Null數(shù)據(jù)結(jié)構(gòu)常用數(shù)據(jù)結(jié)構(gòu) 常用數(shù)據(jù)結(jié)構(gòu)樹(Tree)校長教學(xué)副校長A分院教學(xué)副院長教學(xué)部主任家偶爾不叫事研究所所長研究所教師B分院教學(xué)副院長C分院教學(xué)副院長行政副校長A分院院長B分院院長C分院院長后勤副校長校醫(yī)院院長校食堂負(fù)責(zé)人校環(huán)境保安負(fù)責(zé)人數(shù)據(jù)結(jié)構(gòu)常用數(shù)據(jù)結(jié)構(gòu) 常用數(shù)據(jù)結(jié)構(gòu)樹(Tree) 樹是包含N(N0)個(gè)結(jié)點(diǎn)的有窮集合K,且在K中定義了一個(gè)關(guān)系N,N滿足以下條件: 有且僅有一個(gè)結(jié)點(diǎn)K0,它對(duì)于關(guān)系N來說

9、沒有前驅(qū),稱K0為樹的根結(jié)點(diǎn)。簡稱為根(Root)。 除K0外,K中的每個(gè)結(jié)點(diǎn),對(duì)于關(guān)系N來說有且僅有一個(gè)前驅(qū)。 K中各結(jié)點(diǎn),對(duì)關(guān)系N來說可以有M個(gè)后繼(M=0)。數(shù)據(jù)結(jié)構(gòu)常用數(shù)據(jù)結(jié)構(gòu) 常用數(shù)據(jù)結(jié)構(gòu)圖(Graph) 圖是由結(jié)點(diǎn)的有窮集合V和邊的集合E組成。其中,為了與樹形結(jié)構(gòu)加以區(qū)別,在圖結(jié)構(gòu)中常常將結(jié)點(diǎn)稱為頂點(diǎn),邊是頂點(diǎn)的有序偶對(duì),若兩個(gè)頂點(diǎn)之間存在一條邊,就表示這兩個(gè)頂點(diǎn)具有相鄰關(guān)系。小明小強(qiáng)小紅小麗小軍小峰朋友圈數(shù)據(jù)結(jié)構(gòu)常用數(shù)據(jù)結(jié)構(gòu) 常用數(shù)據(jù)結(jié)構(gòu)堆(Heap)745顆糖果320顆糖果135顆糖果50顆糖果20顆糖果(原始袋)30顆糖果(原始袋)85顆糖果40顆糖果(原始袋)45顆糖果(原

10、始袋)185顆糖果90顆糖果(原始袋)95顆糖果(原始袋)425顆糖果205顆糖果100顆糖果(原始袋)105顆糖果(原始袋)225顆糖果 110顆糖果(原始袋)115顆糖果(原始袋)有10袋糖果,兩兩合并裝到一個(gè)新袋子中,按每次確保糖果數(shù)最少的策略來組合合并裝袋。數(shù)據(jù)結(jié)構(gòu)常用數(shù)據(jù)結(jié)構(gòu) 常用數(shù)據(jù)結(jié)構(gòu)堆(Heap) 堆是一種特殊的樹形數(shù)據(jù)結(jié)構(gòu),每個(gè)結(jié)點(diǎn)都有一個(gè)值。 通常我們所說的堆的數(shù)據(jù)結(jié)構(gòu),是指二叉堆。 堆的特點(diǎn)是根結(jié)點(diǎn)的值最小(或最大),且根結(jié)點(diǎn)的兩個(gè)子樹也是一個(gè)堆。 堆總是一顆完全樹。數(shù)據(jù)結(jié)構(gòu)常用數(shù)據(jù)結(jié)構(gòu)常用數(shù)據(jù)結(jié)構(gòu)散列表(Hash)數(shù)據(jù)結(jié)構(gòu)常用數(shù)據(jù)結(jié)構(gòu) 常用數(shù)據(jù)結(jié)構(gòu)散列表(Hash)3排

11、4座(304房號(hào))小明4排1座(401房號(hào))小強(qiáng)4排5座(405房號(hào))小紅3排7座(307房號(hào))小麗1排2座(102房號(hào))小榮2排2座(202房號(hào))小佳2排6座(206房號(hào))小軍3排13座(313房號(hào))小宇4排9座(409房號(hào))小偉3排10座(310房號(hào))小峰數(shù)據(jù)結(jié)構(gòu)常用數(shù)據(jù)結(jié)構(gòu) 常用數(shù)據(jù)結(jié)構(gòu)散列表(Hash) 散列表是根據(jù)關(guān)鍵碼值(Keyvalue)而直接進(jìn)行訪問的數(shù)據(jù)結(jié)構(gòu)。也就是說,它通過把關(guān)鍵碼值映射到表中一個(gè)位置來訪問記錄,以加快查找的速度。 這個(gè)映射函數(shù)叫做散列函數(shù),存放記錄的數(shù)組叫做散列表。由此,不需比較便可直接取得所查記錄。主題二相關(guān)知識(shí)的認(rèn)識(shí)與了解 數(shù)學(xué)建模 數(shù)據(jù)結(jié)構(gòu) 程序設(shè)計(jì)

12、程序設(shè)計(jì)在運(yùn)用計(jì)算思維理念求解問題時(shí),雖然需要經(jīng)歷分析抽象出數(shù)學(xué)模型、選擇合適的數(shù)據(jù)結(jié)構(gòu)以及整理歸納出解題算法等一系列階段過程,但最終都要將算法轉(zhuǎn)換成計(jì)算機(jī)可計(jì)算執(zhí)行的計(jì)算機(jī)程序,經(jīng)過程序的編輯和運(yùn)行并進(jìn)行測(cè)試、調(diào)整直至問題得到最終解答。程序設(shè)計(jì)計(jì)算機(jī)程序計(jì)算機(jī)程序 計(jì)算機(jī)程序(Computer Program)就是按照實(shí)際解決問題的算法步驟而事先編制好的、具有特殊功能的指令序列。序列由一串CPU能夠識(shí)別并執(zhí)行的基本指令組成,每一條指令規(guī)定了計(jì)算機(jī)應(yīng)該進(jìn)行什么操作(如加、減、乘、除、判斷等)及操作需要的有關(guān)數(shù)據(jù)。計(jì)算機(jī)程序主要涉及兩部分內(nèi)容,即數(shù)據(jù)的描述和數(shù)據(jù)的處理。 數(shù)據(jù)的描述是指各種變量的

13、定義,也稱數(shù)據(jù)結(jié)構(gòu)描述; 數(shù)據(jù)的處理是指對(duì)變量的操作,這些操作按解決問題的步驟要求有一定的先后順序和規(guī)則,也稱為求解算法。程序設(shè)計(jì)計(jì)算機(jī)程序計(jì)算機(jī)程序 算法是程序的核心,它在程序編制、軟件開發(fā)及整個(gè)計(jì)算機(jī)科學(xué)中占據(jù)重要地位。 數(shù)據(jù)結(jié)構(gòu)是算法加工的對(duì)象,一個(gè)程序要進(jìn)行計(jì)算或處理總是以某些數(shù)據(jù)為對(duì)象的,要設(shè)計(jì)一個(gè)好的程序就需要將這些數(shù)據(jù)按要求組成合適并高效的數(shù)據(jù)結(jié)構(gòu)。 所以,可以說:數(shù)據(jù)結(jié)構(gòu)+計(jì)算算法=程序數(shù)據(jù)結(jié)構(gòu)計(jì)算算法程序程序設(shè)計(jì)計(jì)算機(jī)程序設(shè)計(jì)計(jì)算機(jī)程序設(shè)計(jì) 計(jì)算機(jī)程序設(shè)計(jì)(Computer Programming)是指設(shè)計(jì)、編制、調(diào)試程序的方法和過程。 程序設(shè)計(jì)通常分為問題建模,算法設(shè)計(jì),編

14、寫代碼,編譯調(diào)試和整理并寫出文檔資料五個(gè)階段。 程序設(shè)計(jì)過程就是通過分析問題、確定算法、編程求解等步驟來解決問題的過程,其中,算法具有重要的作用,它能夠提供一種思考問題的方向和方法。程序設(shè)計(jì)計(jì)算機(jī)程序設(shè)計(jì)計(jì)算機(jī)程序設(shè)計(jì) 在計(jì)算機(jī)中,把解決具體問題的過程準(zhǔn)確完整地描述出來就形成解決該問題的算法。 在程序設(shè)計(jì)中,我們要考慮數(shù)據(jù)的結(jié)構(gòu)和類型、變量的定義,要用到算法語句,要考慮使用順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)來控制程序等等,最終將一個(gè)具體的實(shí)際問題用程序設(shè)計(jì)語言表示出來并由計(jì)算機(jī)去執(zhí)行完成。程序設(shè)計(jì)程序設(shè)計(jì)語言程序設(shè)計(jì)語言 程序設(shè)計(jì)語言(Programming Language)是用來編寫計(jì)算機(jī)程序的

15、語言,是用戶與計(jì)算機(jī)交流信息的工具。 程序設(shè)計(jì)語言的發(fā)展過程是伴隨整個(gè)計(jì)算機(jī)技術(shù)的發(fā)展而進(jìn)行,從最初的機(jī)器語言到匯編語言,再到各種結(jié)構(gòu)化的高級(jí)語言,最后到支持面向?qū)ο蠹夹g(shù)的面向?qū)ο笳Z言。這個(gè)發(fā)展過程,使程序設(shè)計(jì)者更容易學(xué)習(xí)掌握語言,能以更接近問題本質(zhì)的方式去思考和描述問題。 常用高級(jí)語言包括:C語言系列(C+、C#、基本C)、JAVA語言、Visual BASIC語言等。程序設(shè)計(jì)程序構(gòu)成元素 程序構(gòu)成元素 雖然各種高級(jí)程序設(shè)計(jì)語言的應(yīng)用領(lǐng)域不同,功能和風(fēng)格也存在差異,但是一門語言所包含的主要內(nèi)容卻是類似的,程序設(shè)計(jì)語言的程序代碼組成元素一般包括: 數(shù)據(jù)類型 語言元素 控制結(jié)構(gòu) 程序模塊等程序設(shè)

16、計(jì)程序構(gòu)成元素 程序構(gòu)成元素控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)選擇結(jié)構(gòu)順序結(jié)構(gòu)語句元素表達(dá)式運(yùn)算符常量變量函數(shù)賦值程序設(shè)計(jì)程序構(gòu)成元素?cái)?shù)據(jù)類型 計(jì)算機(jī)使用數(shù)據(jù)類型的目的是: 決定了該類型數(shù)據(jù)在計(jì)算機(jī)中的存儲(chǔ)與表示方式; 決定了該類型數(shù)據(jù)的取值范圍; 決定了該類型數(shù)據(jù)所能執(zhí)行的操作; 不同程序設(shè)計(jì)語言所提供的數(shù)據(jù)類型的種類是不盡相同的。 提供的數(shù)據(jù)類型越多,解決處理實(shí)際問題時(shí)就方便容易,但這也增加了學(xué)習(xí)編程的難度。程序設(shè)計(jì)程序構(gòu)成元素?cái)?shù)據(jù)類型 數(shù)據(jù)類型是一個(gè)值的集合和定義在這個(gè)值集上的一組操作的總稱。 在計(jì)算機(jī)中,數(shù)據(jù)就是各種數(shù)字、字符及所有能輸入到計(jì)算機(jī)中,并能被計(jì)算機(jī)識(shí)別和處理的符號(hào)的集合。 常用的數(shù)據(jù)類型一

17、般有:整數(shù)類型、浮點(diǎn)數(shù)類型、字符類型、邏輯類型、指針類型、數(shù)組類型、記錄類型、枚舉類型、集合類型和文件等。程序設(shè)計(jì)程序構(gòu)成元素?cái)?shù)據(jù)類型 一方面,在程序設(shè)計(jì)語言中,每一個(gè)數(shù)據(jù)都屬于某種數(shù)據(jù)類型。類型明顯或隱含地規(guī)定了數(shù)據(jù)的取值范圍、存儲(chǔ)方式以及允許進(jìn)行的運(yùn)算??梢哉J(rèn)為,數(shù)據(jù)類型是在程序設(shè)計(jì)中已經(jīng)實(shí)現(xiàn)了的數(shù)據(jù)結(jié)構(gòu)。 另一方面,在程序設(shè)計(jì)過程中,當(dāng)需要引入某種新的數(shù)據(jù)結(jié)構(gòu)時(shí),總是借助編程語言所提供的數(shù)據(jù)類型來描述數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。程序設(shè)計(jì)程序構(gòu)成元素語言元素 高級(jí)程序設(shè)計(jì)語言使用我們的日常文字、數(shù)學(xué)符號(hào)和表達(dá)式來書寫程序,內(nèi)容包括字母符號(hào)、數(shù)字符號(hào)、變量、常量、表達(dá)式、運(yùn)算符、特殊字符和標(biāo)準(zhǔn)函數(shù)等。

18、這些用來表示書寫程序的符號(hào)就是程序設(shè)計(jì)語言中的語言元素,不同的程序設(shè)計(jì)語言所使用的語言元素是不盡相同的,但基本一致。掌握和理解程序設(shè)計(jì)語言中的語言元素是正確書寫程序的基礎(chǔ)。程序設(shè)計(jì)程序構(gòu)成元素語言元素變量 變量實(shí)際上是內(nèi)存中的一個(gè)臨時(shí)存儲(chǔ)區(qū)域的編號(hào)或別名,用于存放程序中的數(shù)據(jù)和結(jié)果,是程序的基本操作對(duì)象。 程序設(shè)計(jì)時(shí)根據(jù)實(shí)際要求必須先定義好所需的變量,明確變量的類型和名稱,程序運(yùn)行時(shí),語言處理程序根據(jù)定義好的變量數(shù)據(jù)類型,會(huì)在內(nèi)存分配相應(yīng)的存儲(chǔ)空間,用于存放該變量的值。程序設(shè)計(jì)程序構(gòu)成元素語言元素運(yùn)算符 計(jì)算機(jī)可以進(jìn)行各種運(yùn)算,包括算術(shù)運(yùn)算、邏輯運(yùn)算、關(guān)系運(yùn)算、字符運(yùn)算和特殊運(yùn)算。不同的程序設(shè)

19、計(jì)語言提供的運(yùn)算符種類不同,表示形式也可能不同。一般有: 算術(shù)運(yùn)算加、減、乘、除、整除和求余等; 字符運(yùn)算合并字符串、取子字符串等。 關(guān)系運(yùn)算大于、大于等于、小于、小于等于、等于、不等于等。 邏輯運(yùn)算與、或、非等。程序設(shè)計(jì)程序構(gòu)成元素語言元素標(biāo)準(zhǔn)函數(shù) 一般高級(jí)程序設(shè)計(jì)語言都提供許多常用的標(biāo)準(zhǔn)函數(shù),供用戶在程序中直接使用。這些標(biāo)準(zhǔn)函數(shù)實(shí)際上就是為完成某一特定任務(wù)而專門設(shè)計(jì)的一段程序。 標(biāo)準(zhǔn)函數(shù)一般分為:數(shù)學(xué)函數(shù)、字符串函數(shù)、類型轉(zhuǎn)換函數(shù)、隨機(jī)數(shù)函數(shù)、日期和時(shí)間函數(shù)和文件函數(shù)等。程序設(shè)計(jì)控制結(jié)構(gòu)控制結(jié)構(gòu) 通常,結(jié)構(gòu)化的程序設(shè)計(jì)都包括順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)三類,它們構(gòu)成了程序的主體。只是不同的

20、程序設(shè)計(jì)語言,具體表示的語句命令形式有所不同。程序設(shè)計(jì)控制結(jié)構(gòu) 控制結(jié)構(gòu) 在實(shí)際的應(yīng)用程序開發(fā)中,順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)往往是綜合在一起的使用的,從總體看一個(gè)應(yīng)用程序可能很龐大很復(fù)雜,但如果從局部看卻都是由這三種基本結(jié)構(gòu)的嵌套和組合而成。程序設(shè)計(jì)控制結(jié)構(gòu)控制結(jié)構(gòu)順序結(jié)構(gòu)順序結(jié)構(gòu)是指程序的執(zhí)行按語句的排列順序從上到下依次執(zhí)行,每條語句均被執(zhí)行一次,直至結(jié)束。其為最常用、最簡單、最基本的控制結(jié)構(gòu)??刂平Y(jié)構(gòu)選擇結(jié)構(gòu)選擇結(jié)構(gòu)是指程序中的某些語句的執(zhí)行會(huì)受到某一條件的制約,當(dāng)條件成立時(shí),執(zhí)行一部分語句,否則執(zhí)行另外一些語句,也就是說,有些語句可能被跨過未被執(zhí)行。選擇結(jié)構(gòu)又可分為:二路分支結(jié)構(gòu)和多路

21、分支結(jié)構(gòu)。程序設(shè)計(jì)控制結(jié)構(gòu)控制結(jié)構(gòu)循環(huán)結(jié)構(gòu) 循環(huán)結(jié)構(gòu)是指程序中的某些語句在某一條件成立時(shí),需要重復(fù)執(zhí)行,直到條件不成立時(shí),才結(jié)束重復(fù)執(zhí)行。 循環(huán)結(jié)構(gòu)要特別注意的是在重復(fù)執(zhí)行語句過程中,要有控制條件的語句,以避免出現(xiàn)死循環(huán)現(xiàn)象。程序設(shè)計(jì)程序過程模塊程序過程模塊 從軟件開發(fā)的角度,一個(gè)功能豐富繁多、規(guī)模龐大復(fù)雜的項(xiàng)目,通常需要團(tuán)隊(duì)的合作,才能最大限度的縮短軟件開發(fā)研制的周期。 同時(shí),為了使整個(gè)程序結(jié)構(gòu)清晰明了,避免代碼冗余率,便于程序的調(diào)試維護(hù)和代碼重復(fù)使用,通常會(huì)根據(jù)應(yīng)用程序的規(guī)模和功能,將問題總體模塊劃分為若干個(gè)相對(duì)獨(dú)立的子模塊,使其中每個(gè)部分解決一個(gè)相對(duì)簡單的功能。程序設(shè)計(jì)程序過程模塊程序過

22、程模塊 簡單地說,這種程序設(shè)計(jì)思想就是“自頂向下、化整為零、逐步細(xì)化”的設(shè)計(jì)方法,即把一個(gè)龐大復(fù)雜的程序劃分成若干個(gè)功能相對(duì)簡單的子模塊,這些子模塊之間盡可能彼此獨(dú)立,然后再通過過程調(diào)用語句把這些子模塊聯(lián)系起來,最終形成一個(gè)完整的程序。項(xiàng)目總模塊項(xiàng)目分模塊1項(xiàng)目子模塊11項(xiàng)目子模塊12項(xiàng)目分模塊2項(xiàng)目子模塊21項(xiàng)目子模塊22項(xiàng)目子模塊23項(xiàng)目分模塊3項(xiàng)目子模塊31項(xiàng)目子模塊32項(xiàng)目分模塊4項(xiàng)目子模塊41項(xiàng)目子模塊42項(xiàng)目子模塊43項(xiàng)目子模塊44項(xiàng)目子模塊45程序設(shè)計(jì)程序過程模塊程序過程模塊 一個(gè)子程序即為一個(gè)程序模塊。一個(gè)程序模塊可以借助調(diào)用的方法與其他程序模塊來建立彼此的聯(lián)系,進(jìn)而完成整個(gè)程

23、序功能。 這種程序設(shè)計(jì)的方法,稱為模塊化的程序設(shè)計(jì)高級(jí)程序設(shè)計(jì)語言都提供設(shè)計(jì)子程序模塊的功能,一般將子程序模塊稱為過程或函數(shù)。 過程和函數(shù)的主要區(qū)別是過程沒有返回值,函數(shù)可帶回返回值。過程和函數(shù)需要先定義設(shè)計(jì)好后,才能被主程序調(diào)用。程序設(shè)計(jì)程序過程模塊 程序過程模塊程序設(shè)計(jì)程序設(shè)計(jì)方法程序設(shè)計(jì)方法結(jié)構(gòu)化程序設(shè)計(jì) 結(jié)構(gòu)化程序設(shè)計(jì)(Structured Programming)是一種程序設(shè)計(jì)的原則和方法。用幾種標(biāo)準(zhǔn)的控制結(jié)構(gòu)(順序、分支和循環(huán))通過重復(fù)和嵌套來表示。 結(jié)構(gòu)化程序設(shè)計(jì)思想采用“自頂向下、逐步求精”的方法。按結(jié)構(gòu)化程序設(shè)計(jì)的要求設(shè)計(jì)出的高級(jí)程序設(shè)計(jì)語言稱為結(jié)構(gòu)化程序設(shè)計(jì)語言。 利用結(jié)構(gòu)化程序設(shè)計(jì)語言,或者說按結(jié)構(gòu)化程序設(shè)計(jì)思想編寫出來的程序稱為結(jié)構(gòu)化程序。結(jié)構(gòu)化程序具有結(jié)構(gòu)清晰、容易理解、容易修改、容易驗(yàn)證等特點(diǎn)。缺點(diǎn)就是代碼的可重用性差;可維護(hù)性差;穩(wěn)定性差;難以實(shí)現(xiàn)。程序設(shè)計(jì)程序設(shè)計(jì)方法程序設(shè)計(jì)方法面向?qū)ο蟪绦蛟O(shè)計(jì) 面向?qū)ο蟪绦蛟O(shè)計(jì)(Object Oriented Programming,OOP)是一種計(jì)算機(jī)編程架構(gòu)。OOP的一條基本原則是計(jì)算機(jī)程序是由單個(gè)能夠起到子程序作用的單元或?qū)ο蠼M合而成。OOP達(dá)到了軟件工程的三

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論