經濟學大學計算機基礎課件_第1頁
經濟學大學計算機基礎課件_第2頁
經濟學大學計算機基礎課件_第3頁
經濟學大學計算機基礎課件_第4頁
經濟學大學計算機基礎課件_第5頁
已閱讀5頁,還剩203頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

大學計算機基礎——基本概念及應用思維解析東南大學大學計算機基礎東南大學1第3章程序式使用計算機本章主要知識點程序工作方式與交互工作方式的區別和聯系程序的本質程序構造的基本方法基本數據組織方法基本數據處理方法程序設計的三要素程序與軟件的關系軟件和軟件開發的關系軟件開發的工程化管理軟件開發方法相關概念和知識東南大學第3章程序式使用計算機本章主要知識點東南大學

程序是人類思想的結晶,最能反映人類的智慧和創造性。它反映了人類解決問題的思維和方法。程序的構造是一個動態過程,一般涉及語言、軟件模型、環境、應用體系、工程化管理等多個方面。

因此,程序工作方式相對于交互式工作方式,對人的要求更高。程序是最能反映人類的智慧和創造性。程序工作方式與交互工作方式的區別和聯系東南大學程序是人類思想的結晶,最能反映人類的智在交互方式中,人與計算機是聯機的。在程序方式中,人與計算機是脫機的。程序方式中,人們通過某種計算機語言,針對需要解決的特定問題,事先將自己處理問題的思路和方法編寫成程序,然后通過發行和運行程序達到解決問題的目的。程序工作方式與交互工作方式的區別和聯系東南大學在交互方式中,人與計算機是聯機的。程序工作方式程序工作方式與交互工作方式的區別和聯系東南大學程序工作方式與交互工作方式的區別和聯系東南大學聯機工作方式中,人的主動性比較高。面對遇到的問題,可以隨機應變。

脫機工作方式中,構造程序時必須考慮許多問題,要考慮到未來程序運行時的各種各樣可能出現的問題及其對策。另外,程序的構造還涉及計算機語言、軟件開發方法、軟件開發環境、應用體系等方面的知識。特別是,涉及處理問題的各種基本應用模式。因此,對人的思維要求更高。程序工作方式與交互工作方式的區別和聯系東南大學聯機工作方式中,人的主動性比較高。面對遇到的兩種工作方式的區別類似于人類社會中的講話和寫作交互式使用:說話,容易。程序式使用:寫作,較難。程序工作方式與交互工作方式的區別和聯系東南大學兩種工作方式的區別類似于人類社會中的講話和寫作程序工作方式與

兩種方式既有區別又有聯系,區別主要在于兩者的表現形式和層次不同,而從思維本質的角度看,兩者是一致的。事實上,程序設計與構造建立在交互式使用方式基礎上。一方面,程序的開發環境、運行配置環境等,需要交互式使用方式;另一方面,程序構造的語言,是交互式交流方式中命令語言的拓展;再者,針對具體問題的處理,兩者的思維本質是一致的。

程序工作方式與交互工作方式的區別和聯系東南大學兩種方式既有區別又有聯系,區別主要在于兩者的表現形式程序與程序設計程序是指一組預定的工作指令流,可以直接通過計算機執行,使具體的現實世界中的客觀問題得以在計算機世界中智能化再現,從而使具體問題得到解決。程序設計是指程序的形成過程,就是人類運用其邏輯思維能力以及符號處理能力來構造一個特定的符號處理器,使得借助于計算機這樣一種設備,能夠完成預定的計算。東南大學程序與程序設計程序是指一組預定的工作指令流,可以直接程序是人類思維的產物,是人類思維火花的時間定格,呈現靜態特征。程序盡管固化了人類的智慧,但卻沒有展示人類形成該程序的動態思維過程程序設計——產生程序的過程,是動態的。程序設計是一種創造性勞動,或是說腦力勞動,反映了人類思維的規律和模式。伴隨整個程序構造過程而形成的各種人類的思維活動,對于程序的最終形成起到核心作用。 程序的形成過程比程序本身重要得多,程序設計與構造的涵義比程序的涵義要豐富得多。程序與程序設計東南大學程序是人類思維的產物,是人類思維火花的時間定格,呈現程序設計與文化有著很深的淵源。

不同的文化對程序設計有影響。程序與程序設計東南大學程序設計與文化有著很深的淵源。程序與程序設計東南大學

遞歸(recursion)是計算機思維的核心思想之一,其本質反映的是一種跳躍性思維方法。遞歸反映了事物間的規律,即整體是由局部構成的,整體又可以充當粒度較大的局部,整體和局部的關系是辨證統一的。理解事物間規律的視角,即對于一個問題中的整體和局部的理解,取決于看待問題的角度和視角,而這種角度和視角是隨時會改變和調整的。這也就是所謂的當前的概念。遞歸思維解析東南大學遞歸(recursion)是計算機思維的核心思想之一遞歸和當前兩者相互結合,形成完整的辨證思維邏輯。

遞歸思維解析東南大學遞歸思維解析東南大學

基本邏輯控制規則來源于自然社會生活中人們處理各種問題時所采取的策略和方法,對這些策略和方法的歸納和抽象,就產生了基本的邏輯控制策略和方法。計算機程序設計中,有順序、分支、循環、遞歸四種基本邏輯控制規則。對于高性能高質量的應用,其關鍵顯然不在于四種基本邏輯控制規則本身,而是在于如何應用這四種基本邏輯控制規則。基本邏輯控制規則東南大學基本邏輯控制規則來源于自然社會生活中人們一、定義基本邏輯控制規則東南大學一、定義基本邏輯控制規則東南大學從邏輯形態和概念上看,A等同于B,因為無論A還是B,它們都是由三種基本的處理步(處理步、分支組合步和循環處理步)組成。如果將A看成是一個大程序,則B可以看成是一個小程序,由此又可以引申出大程序中包含小程序,小程序的外面是大程序,即程序之中有程序,程序之外是程序的思想。

基本邏輯控制規則東南大學從邏輯形態和概念上看,A等同于B,因為無論A還是B,它們都是

基本邏輯控制規則的組合也是遞歸思想的一種應用。 對于分解后的各個具體模塊,可以按人們的思維邏輯進行任意組合,以實現人類思想的再現。同樣一個問題,不同的人有不同的組合方法,產生出不同的程序。可見,最終用于問題解決的程序,本質上反映了各個人的具體的思維。基本邏輯控制規則東南大學 基本邏輯控制規則的組合也是遞歸思想的一種應程序構造的基本方法

程序構造的基本方法:數據組織+數據處理。數據組織相當于組織和提供各種素材;數據處理則是如何利用這些素材,進行加工處理,得到最后的成品。東南大學程序構造的基本方法 程序構造的基本方法:數據組織+數據處程序構造的基本方法(數據組織)

針對同樣的數據,不同的人可以有不同的處理方法,這些方法都能得到需要的結果。這反映了每個人的思維特征和對問題的處理方法。數據組織和數據處理存在一定的思維聯系。也就是說,一種數據組織方法,隱含地決定了對這些數據的存取方法。同樣,一種數據處理方法也隱含地決定了數據應有的組織方法。東南大學程序構造的基本方法(數據組織)針對同樣的數據,不同的一、分類

根據處理所涉及的數據量和種類,數據組織一般分為內存數據組織和外存數據組織兩大類。內存數據組織是指用于數據處理的數據量一般比較少,所有數據都可以存放到計算機的內部存儲器中,數據處理程序可以直接使用這些數據。內存數據組織的基本方法有:簡單數據組織、線性數據組織、層次數據組織和網狀數據組織程序構造的基本方法(數據組織)東南大學一、分類根據處理所涉及的數據量和種類,數據組織一般分一、分類

外存數據組織是指用于數據處理的數據量比較大,不可能將所有數據都存放到計算機的內部存儲器中。只有當前處理所涉及的一部分數據放在內存,而大部分暫時不用的數據則存放在外部存儲器中。因此,數據處理程序必須經過專用的數據管理系統,根據處理的需要不斷從外部存儲器中將當前需要用到的數據調入內部存儲器中。外存數據組織中的專用數據管理系統一般有文件系統和數據庫系統。程序構造的基本方法(數據組織)東南大學一、分類外存數據組織是指用于數據處理的數據量比較大,程序構造的基本方法(數據組織)數據邏輯組織的類型內存數據組織簡單數據組織線性數據組織層次數據組織—樹網狀數據組織—圖文件系統數據庫系統

外存數據組織東南大學程序構造的基本方法(數據組織)數據邏輯組織的類型內存數據組織數據組織的概念分為兩個層次:邏輯組織和物理組織。邏輯組織是指一種抽象描述,只關心數據之間的組織關系,不涉及數據在計算機內部的具體組織。物理組織是指數據在計算機內部的具體組織,它涉及計算機基本組成結構中的存儲器概念。程序構造的基本方法(數據組織)東南大學數據組織的概念分為兩個層次:邏輯組織和物理組織。邏輯簡單數據組織一般用于對少量、相互之間沒有太大關系的數據的組織。程序構造的基本方法(數據組織)東南大學簡單數據組織一般用于對少量、相互之間沒有太大關系的數據的組織線性數據組織一般用于同類的批量數據組織。這種數據組織方法的優點是,整批數據用同一個名稱,表示他們是屬于同一類數據。其中的每一個具體數據通過一個序號給出。可見,這種數據組織方法隱含在對其處理中,一般都是通過循環完成。程序構造的基本方法(數據組織)東南大學線性數據組織一般用于同類的批量數據組織。這種數據組織方法的優線性數據組織在計算機中的具體實現一般有兩種形式:連續組織和非連續組織。連續組織是指將這批數據存放到計算機內部存儲器中某個連續的區域,數據名表示這個連續區域,根據編號可以計算出與該編號對應的那個數據所存放的區域。非連續組織是指將這批數據分散存放到計算機內部存儲器中,每個數據存放一個位置,一般而言,這些位置是不連續的。但是,為了保持這批數據在邏輯上的線性關系,必須為這些不連續的位置建立聯系。程序構造的基本方法(數據組織)東南大學線性數據組織在計算機中的具體實現一般有兩種形式:連續組織和非非連續組織中建立聯系具體方法是,擴大每個數據的存儲區域,該區域除了存放數據外,還可以再存儲一個位置信息。然后,根據這批數據在邏輯上的線性關系,將后面一個數據存放的位置登記到前面一個存放數據的區域中,完成兩個相鄰數據的邏輯關系建立。對于最后一個數據,因為它的后面沒有其他數據,因此,可以將其存放區域中記錄下一個數據的位置信息的部分填上一個特殊位置值,表示已經結束。對于第一個數據,可以將它的存放位置登記到一個特定的名稱中,表示整個這批數據的起點位置。

程序構造的基本方法(數據組織)東南大學非連續組織中建立聯系具體方法是,擴大每個數據的存儲區域,該區

這種數據組織實現方法也稱為鏈表結構,因為它像一根鏈條。

程序構造的基本方法(數據組織)東南大學 這種數據組織實現方法也稱為鏈表結構,因為它像連續組織方式中,每當插入或刪除一個數據時,該數據后面的所有數據都必須向后或向前移動。因此,這種數據組織方法一般適用于一批數據相對固定的應用場合。非連續組織方式中,每當插入一個數據時,可以將這個數據存放在任意一個允許存放的位置,然后通過修改位置信息完成插入。同樣,每當刪除一個數據時,也可通過修改位置信息完成刪除。

程序構造的基本方法(數據組織)東南大學連續組織方式中,每當插入或刪除一個數據時,該數據后面的所有數

在35和67之間插入一個56,則可以先將67的位置(在35的存儲區域中)登記到56的存儲區域中;再將56的位置(可能是在某個名稱中)登記到35的存儲區域中。圖3.7a插入56程序構造的基本方法(數據組織)東南大學 在35和67之間插入一個56,則可以先將67的3153567662-1200435H2060T206056-1T2010200015200420103203020003520302034672056-122034205666206056T20602030申請空間填充數據修改地址修改地址3153567662-12004H56東南大學3153567662-1200435H2060T206056要刪除35,則可以先將67的位置(在35的存儲區域中)登記到15的存儲區域中,再將35的存儲區域歸還給計算機。圖3.7b刪除35程序構造的基本方法(數據組織)東南大學要刪除35,則可以先將67的位置(在35的存儲區3153567662-12004H2010152010200015200420103203020003520302034672056-122034205666200035修改地址31567662-12004H20302030東南大學3153567662-12004H2010152010200

非連續數據組織方法不存在數據移動。因此,這種數據組織方法一般適用于數據插入刪除比較頻繁的應用場合。盡管非連續組織方法中不涉及數據的頻繁移動,節省了大量時間。但它為了保持數據在邏輯上的線性關系,每個數據存放區域都增加了用于記錄下一個數據存放位置的空間,是犧牲空間而換取時間。程序構造的基本方法(數據組織)東南大學非連續數據組織方法不存在數據移動。因此,這種數據組織如果對通過線性數據組織方法組織的一批數據操作時施加如下規定:數據的增加和刪除必須在同一端進行,每次只能增加或刪除一個數據元素。則這種線性數據組織方法及其應用就稱為棧結構。 其中,數據增加和刪除的一端稱為棧頂,另一端稱為棧底。增加數據的操作稱為壓棧或進棧,刪除數據的操作稱為出棧。

棧結構也稱為LIFO(LastInFirstOut)結構。程序構造的基本方法(數據組織)東南大學如果對通過線性數據組織方法組織的一批數據操作時施加如棧結構也稱為先進后出結構(FILO:FirstInLastOut),圖3.8是棧的示意圖。棧結構示意圖程序構造的基本方法(數據組織)東南大學棧結構也稱為先進后出結構(FILO:FirstInLas棧底棧頂棧進棧東南大學棧底棧頂棧進棧東南大學棧底棧頂棧出棧東南大學棧底棧頂棧出棧東南大學如果對通過線性數據組織方法組織的一批數據操作時施加如下規定:數據的增加和刪除分別在兩端進行;每次只能增加或刪除一個數據元素;則這種線性數據組織方法及其應用就稱為隊列結構。其中,增加數據的一端稱為隊列尾,刪除數據的一端稱為隊列頭。增加數據的操作稱為入隊或進隊,刪除數據的操作稱為出隊。隊列結構也稱為FIFO

(FirstInFirstOut)結構。程序構造的基本方法(數據組織)東南大學如果對通過線性數據組織方法組織的一批數據操作時施加如隊列結構示意圖程序構造的基本方法(數據組織)東南大學隊列結構示意圖程序構造的基本方法(數據組織)東南大學隊列尾隊列頭隊列進隊東南大學隊列尾隊列頭隊列進隊東南大學隊列尾隊列頭隊列出隊東南大學隊列尾隊列頭隊列出隊東南大學文件(file)是指外存中一組相關信息的集合,并有一個名稱標識。文件系統(filesystem)是用于管理文件的軟件系統。通過文件系統提供的功能,人們可以方便地管理和使用文件。程序構造的基本方法(數據組織)東南大學文件(file)是指外存中一組相關信息的集合,并有一個名稱標針對大容量數據,必須將其存儲在外存中。為了對這些數據進行有效管理,操作系統中都提供相應的文件系統,以文件的方式組織數據。由于以文件方式組織的數據是存放在外存,因此必須通過一定的硬件設備驅動和讀寫才能進行數據訪問。文件系統可以屏蔽這些復雜的硬件控制問題,以一種抽象的邏輯視圖進行文件的管理。程序構造的基本方法(數據組織)東南大學針對大容量數據,必須將其存儲在外存中。為了對這些數據文件的基本結構程序構造的基本方法(數據組織)東南大學文件的基本結構程序構造的基本方法(數據組織)東南大學

針對文件方式的數據組織,數據的訪問一般要經過文件建立(create)、文件使用、文件刪除、文件移動等基本操作。其中,文件使用必須經過打開(open)、讀/寫(read/write)、關閉(close)三個基本步驟 針對大容量數據組織和管理,還有專門的方法——數據庫系統技術。程序構造的基本方法(數據組織)東南大學 針對文件方式的數據組織,數據的訪問一般要經過文件建立(cr1)算法及其描述程序構造的基本方法(數據處理)算法是一個有窮的指令集,這些指令為解決某一個特定任務規定了一個運算序列。算法具有如下特點:有0個或多個輸入、有一個或多個輸出、具有確定性、具有有窮性、具有有效性。東南大學1)算法及其描述程序構造的基本方法(數據處理)算法是一個有窮算法與程序的區別:

算法與程序是不同的,程序可以不滿足有窮性特點。算法與數據組織密切相關,它是在某種數據組織結構上的一種解決問題的計算方法。程序構造的基本方法(數據處理)東南大學算法與程序的區別: 算法與程序是不同的,程序可算法的特點:程序構造的基本方法(數據處理)針對同一個問題,會有不同的數據組織方式和不同的算法。衡量一個算法的好壞,主要是通過該算法執行時所耗費的時間和空間來比較,這種比較是一種相對比較,一般只給出量級關系。一般而言,算法的量級有O(1)、O(n)、O(log2n)、O(nlog2n)、O(n2)、O(n3)等。O(m+n)與O(n)屬于同一量級,即線性級;O(100)和O(1)屬于同一量級,即常量級(其中,對于空間耗費而言,m、n表示算法執行時耗費的空間大小,一般以字節為單位計數;對于時間耗費而言,m、n表示算法中指令執行的次數)。

東南大學算法的特點:程序構造的基本方法(數據處理)針對同一個算法的抽象本質在于算法與它的表示之間的區別。也就是說,算法本身是抽象的,它只是反映一種解決問題的方法。但這種方法必須通過某種形式展示出來,這就是具體的算法表示和描述。算法的描述可以有多種形式,可以有語言方式、圖形方式和表格方式。每一種形式還可以有多種不同的形態。比如,語言方式就有自然語言、類計算機語言和計算機語言三種描述。圖形方式有流程圖、N-S圖、PAD圖等多種方式。

程序構造的基本方法(數據處理)東南大學算法的抽象本質在于算法與它的表示之間的區別。也就是說程序構造的基本方法(數據處理)N-S圖是一種結構化的流程圖,通過一個矩形框表達一個對數據的基本處理,并定義三種基本的元素框(元素框內可以包含基本處理矩形框),通過三種基本的元素框可以按需要進行任意邏輯組合,實現處理邏輯的控制策略,從而表達一個完整的處理問題的算法。N-S圖很容易映射為所要求的某種具體的計算機語言。東南大學程序構造的基本方法(數據處理)N-S圖是一種結構化的

N-S圖描述方法,體現了由大到小、由粗到細的逐步求精的分析和設計方法,這種方法比較符合人類的思維習慣。這種方法的核心在于用少量的幾個符號,可以描述無限的問題,呈現出遞歸的分析思想。N-S圖應用的技巧在于深刻領悟這種富有哲理的遞歸思想,從外到內,逐層運用,在外層時不要看內層,在內層時不要看外層,始終保持當前只看到一個層次,這樣無論多復雜的問題,都可以看得相當簡單。程序構造的基本方法(數據處理)東南大學 N-S圖描述方法,體現了由大到小、由粗到細的逐步求精的分析【例3-1】給定一個正整數N,如果N大于0,輸出“大于0!”;否則,輸出“小于等于0!”。程序構造的基本方法(數據處理)東南大學【例3-1】給定一個正整數N,如果N大于0,輸出“大于0!”【例3-2】輸入10個整數,求它們的和。采用簡單數據組織方式,用S存放和,I記錄輸入數據的個數。初始時,S=0,I=0。每輸入一個數,I增加1,并將該數加入到S中。程序構造的基本方法(數據處理)東南大學【例3-2】輸入10個整數,求它們的和。采用簡單數據組織方程序構造的基本方法(數據處理)素數的特征是除1和該數本身之外,不能被其他任何整數整除。算法的基本思想是:將N分別被2、3、4、……、N-1除,如果都除不盡,則N是一個素數。否則,N不是一個素數。根據此思路,算法的自然語言描述如下:①設除數為I,I的值從2變化到N-1;②用I除N,得到余數R;③如果R=0,則表示N能夠被I整除,N不是素數,算法結束;否則,表示N不能被I整除,可能為素數,繼續判斷;④使I的值增加1;⑤如果IN-1,則返回(2)繼續;否則,表示N已被2到N-1除且都不能被整除。因此,N為素數,算法結束。

東南大學程序構造的基本方法(數據處理)素數的特征是除1和該數本身之外判斷N是否是素數的N-S圖程序構造的基本方法(數據處理)東南大學判斷N是否是素數的N-S圖程序構造的基本方法(數據處理)東南常用數據處理算法排序查找遞歸回溯

程序構造的基本方法(數據處理)東南大學常用數據處理算法程序構造的基本方法(數據處理)東南大學151895231013716151895231013716當前需要冒泡的位置從后向前冒泡不需要交換需要交換需要交換71371072397不需要交換需要交換5185155從后向前冒泡原始數據排列冒泡排序程序構造的基本方法(數據處理)東南大學151895231013716151895231013716程序設計三要素環境是指程序作用的范圍,不同的環境對程序的構造有不同的要求。應用是指對具體問題的解決方法,應用與環境是分不開的,環境是應用賴以存在的基礎。語言是一種粘合劑,將應用和環境連接起來。一方面,語言必須將應用中的各種應用模式、及其邏輯組合描述清楚,也就是將人的思維形式化,并記錄下來。另一方面,語言本身又考慮了環境的特征,將應用問題過度到具體環境,實現最終的應用問題求解。

東南大學程序設計三要素環境是指程序作用的范圍,不同的環境對程序的構造程序設計語言(也稱程序描述語言、程序語言等)是計算機語言。它用于人與計算機的交流。程序設計三要素(語言)環境語言應用東南大學程序設計語言(也稱程序描述語言、程序語言等)是計算機語言。它計算機語言的基本體系結構

語言的基本體系結構程序設計三要素(語言)東南大學計算機語言的基本體系結構語言的基本體系結構程序設計三要素(計算機程序設計語言中,數據類型的概念特別重要,它類似于自然語言中的詞性。在計算機程序設計語言中,不同的數據類型定義不同的詞性,用于指明該類詞匯所表達的數據的性質、數據的大小范圍,以及在該類數據上可以施加的基本運算。程序設計三要素(語言)東南大學計算機程序設計語言中,數據類型的概念特別重要

數據類型一般有基本類型和復合類型兩大類,復合類型是由基本類型合成的。程序設計三要素(語言)東南大學數據類型一般有基本類型和復合類型兩大類,復合類型計算機語言中的表達式一般有算術表達式(用于運算)、關系表達式(用于表達基本條件)和邏輯表達式(用于表達復合條件)三種。計算機語言中的語句一般有注釋語句、計算賦值語句、輸入/輸出語句和流程控制語句四種。函數是某種處理邏輯的抽象,也就是解決問題的方法的抽象,這種方法獨立于具體的處理對象。

程序設計三要素(語言)東南大學計算機語言中的表達式一般有算術表達式(用于運算)、關系表達式類是將某個數據集、以及該數據集上的多種處理邏輯(函數)統一考慮的一種機制,它比函數的描寫粒度大。類用于刻畫問題域中的各種實體,數據集反映實體的靜態屬性,函數集反映實體的動態行為屬性。包一般是由多個類組合而成,這些類都是用于處理同一種問題域的各個方面。包中的類可以是有語義聯系的,也可以是相互相對獨立的。

程序設計三要素(語言)東南大學類是將某個數據集、以及該數據集上的多種處理邏輯(函數)統一考根據計算機本身的發展,計算機語言經歷三個發展階段,每個發展階段具有不同性質的計算機語言。三個發展階段的計算機語言分別是機器語言(也稱為二進制語言)、匯編語言和高級語言。

程序設計三要素(語言)東南大學根據計算機本身的發展,計算機語言經歷三個發展階段,每個發展階機器語言直接面向計算機本身。這種語言通過0和1的各種排列組合,表達不同的語義。0和1可以直接控制計算機本身的各種電子元件的開和關,因此,這種語言可以直接交給計算機閱讀。匯編語言是通過一定的助記符號,如英語單詞的縮寫等,代替具有固定語義的0、1排列,從而使得人類可以在符號層面進行程序的描述、閱讀和維護。高級語言是一種獨立于具體計算機的語言,他采用近似于自然語言的結構。這種語言中所涉及的各種數據組織和數據處理都是建立在一些抽象的名稱基礎上,這些名稱可以代表具體計算機的存儲位置。可見,這與人類處理問題的方法類似。程序設計三要素(語言)東南大學機器語言直接面向計算機本身。這種語言通過0和1的各種排列組合匯編語言向人靠近了一步,但卻與計算機遠離了一步。高級語言面向人,但計算機不認識。如何解決這一問題?匯編:將匯編語言描述的程序轉變成等價的用機器語言描述的程序的轉變過程。編譯或解釋:將高級語言描述的程序轉變成等價的用機器語言描述的程序的轉變過程。程序設計三要素(語言)東南大學匯編語言向人靠近了一步,但卻與計算機遠離了一步。高級語言面向程序設計三要素(語言)東南大學程序設計三要素(語言)東南大學解釋與編譯程序設計三要素(語言)東南大學解釋與編譯程序設計三要素(語言)東南大學圖3.35

高級語言基本分類程序設計三要素(語言)東南大學圖3.35高級語言基本分類程序設計三要素(語言)東南大學

為了描述用于解決某個具體問題的程序,一方面涉及到問題求解的算法;另一方面還涉及計算機語言的相關知識。針對計算機語言,除了它的詞匯、短語和句子外,每種語言還定義了其自身的篇章結構(程序結構)。只有按照語言所定義的格式書寫的程序,才能通過翻譯程序的翻譯,最終被計算機正確執行。事實上,翻譯程序就是在語言格式定義的基礎上進行翻譯的。盡管不同語言有不同的格式定義,但總的來說,程序一般包含數據組織說明部分和算法處理邏輯描述部分,這與計算機的基本工作原理相吻合。因此,程序=數據結構+算法。程序設計三要素(語言)東南大學為了描述用于解決某個具體問題的程序,一方面涉程序結構程序設計三要素(語言)東南大學程序結構程序設計三要素(語言)東南大學程序設計三要素(環境)程序設計環境一般分為兩個層面:運行支撐環境和程序開發環境。前者是指程序最終運行的計算機環境,它一般是指操作系統。后者是指用于支持程序構造的寫作環境,它一般是指各種開發工具。東南大學程序設計三要素(環境)程序設計環境一般分為兩個層面:東南大學運行支撐環境定義了程序執行的基本模型。目前,一般有兩種運行模型:主動式和被動式。主動式模型中,程序本身控制自己的輸入和輸出。因此,其程序的基本結構是一體式的。被動式模型中,由運行支撐環境控制輸入和輸出,并將輸入和輸出以消息方式通知程序。因此,其程序的基本結構是分離式的,一個程序分為兩個部分:初始化部分和消息處理部分。被動式模型也稱為事件驅動模型。程序設計三要素(環境)東南大學運行支撐環境定義了程序執行的基本模型。目前,一般有兩種運行模程序設計三要素(環境)主動式模型東南大學程序設計三要素(環境)主動式模型東南大學程序設計三要素(環境)被動式模型東南大學程序設計三要素(環境)被動式模型東南大學程序開發環境本身也是一種程序,在運行支撐環境的支持下工作。這種特殊程序主要用于輔助其他程序的構造。

程序開發環境的使用,一般涉及編輯、編譯、連接、調試、執行等基本階段。這也是程序構造的基本過程。程序設計三要素(環境)東南大學程序開發環境本身也是一種程序,在運行支撐環境程序設計三要素(環境)程序開發環境將運行支撐環境定義的程序執行基本模型進行了重新包裝,并對程序的結構進行了抽象,從而能夠簡化人類構造程序的工作。程序開發環境的具體實現一般有兩種:分離式和集成式。前者將程序構造的各個階段分離,分別提供相應的工具。集成式將程序構造的各個階段集成,提供一個統一的集成開發環境。集成開發環境提供的附加功能比較多,但由于它在幕后進行太多的工作,并對程序的結構進行了一些擴充的定義。因此,它會約束人的思維。東南大學程序設計三要素(環境)程序開發環境將運行支撐環境定義的程序執程序設計基本模式與建構學習語言的目的是為了應用,但學會語言并不代表掌握語言的應用。為了實現語言的應用,必須掌握一些基本的程序設計規律和思維方法,即基本模式及其建構方法。

東南大學程序設計基本模式與建構學習語言的目的是為了應用,但學應用模式是指程序設計中不斷出現的各種設計規律,這些規律反復用于類似的應用問題的解決。模式建構是指多個應用模式,按實際應用問題的需求,進行組合的過程。模式發掘與模式建構,反映的是一種認識問題、解決問題的方法和思想,這種方法和思想符合人的認知規律,映射到程序設計的學習,反映的是一種學習方法的建立。這種學習方法可以培養學習者的正確的思維,真正掌握程序設計的要領和精髓。

程序設計基本模式與建構東南大學應用模式是指程序設計中不斷出現的各種設計規律,這些規律反復用程序設計應用模式發掘及其建構策略建立,主要指兩個方面:應用模式發掘(涉及各種技術思想的感悟)和模式建構策略建立(遞歸思想應用)。模式發掘和模式建構策略建立的具體執行,一般涉及到兩個方面:方法和經驗。它們相互相成。方法比經驗更為重要。程序設計基本模式與建構東南大學程序設計應用模式發掘及其建構策略建立,主要指模式及其建構的思想本質,反映的是一種高級學習活動,體現了一種學習的方法,是一種元認知能力的培養。觸類旁通的思想內涵即體現于此。模式及其建構同時也反映出遞歸的思想內涵。程序設計基本模式與建構東南大學模式及其建構的思想本質,反映的是一種高級學習活動,體模式描述的模板定義名稱模式的名稱語境模式可以適用的情形問題模式解決的問題解決方案基于該模式的基本解決方案原理特征模式的特征抽象樣例模式應用的一個樣例說明實現說明使用該模式時注意的事項參見相關的模式名稱程序設計基本模式與建構東南大學模式描述的模板定義程序設計基本模式與建構東南大學[模式1]

循環模式及其建構名稱

循環三步語境

用于重復處理問題

處理方法的重用解決方案

通過循環語句實現特征

三步曲(初始條件、入口條件、修正條件)樣例

求P=1+2+3+4+5+6+……+100。

實現說明

在特殊語言中,入口條件與修正條件可以合二為一,比如在C/C++語言中,去掉修正條件,將入口條件改為i++<=100;在特殊語言中,三個部分的具體表達形式可能不同。該模式重點是三個條件。

參見累加模式、累乘模式程序設計基本模式與建構東南大學[模式1]循環模式及其建構程序設計基本模式與建構東南大學[模式建構案例1]

計算S=1+3+5+……+99。

本題是循環模式的應用。只是對循環的修正條件ii+1改為ii+2。程序設計基本模式與建構東南大學[模式建構案例1]計算S=1+3+5+……+99。程[模式建構案例2]

輸入一批整數,以-1為終止。

本題是循環模式的應用。程序設計基本模式與建構東南大學[模式建構案例2]輸入一批整數,以-1為終止。程序設計基軟件和軟件工程針對一個大型復雜的問題,往往會涉及大量的程序,這些程序不是一個人能完成的,需要由許多人共同完成。在程序的構造過程中,會涉及許多問題,比如人員的變動、問題本身需求的改變等。除了程序設計外,還有人員管理、項目管理、文檔管理等工作。因此,僅僅通過程序和程序設計的概念來描述整個大型復雜問題的求解過程,顯然是不夠的。為了順利地描述整個過程,計算機科學中將以程序設計和構造為生產力的活動稱為軟件開發,以便與計算機硬件生產相對應。同時,借鑒其他工程學科的方法,引入工程化的管理思想,以工程化管理的方法管理軟件的開發活動。東南大學軟件和軟件工程針對一個大型復雜的問題,往往會涉及大量軟件

=程序+開發、使用和維護程序所需的所有文檔。軟件危機導致軟件工程(軟件開發的“工程化”管理)軟件和軟件工程東南大學軟件=程序+開發、使用和維護程序所需的所有文檔。軟件軟件開發的“工程化”管理與土木工程等傳統應用工程領域的工程化管理的主要區別:傳統工程領域構建復雜設備時可使用預先定義的組件,而在軟件領域,由于已有軟件的內部設計可能依賴某個特殊應用目的,而難以復用,從而需要重新設計;傳統工程領域進行產品開發時,允許一定的誤差,而軟件只有正確和不正確之分,不能出現誤差;傳統工程可通過定量方法度量產品的質量(如故障的平均時間),但對軟件產品質量的定量度量方法還缺乏理論基礎,需要進一步研究。軟件和軟件工程東南大學軟件開發的“工程化”管理與土木工程等傳統應用工程領域軟件工程中最基本的概念是軟件生命周期。軟件生命周期是指軟件產品或軟件系統從產生、投入使用到被淘汰的全過程統。通常,將軟件生命周期分為五個階段。

軟件和軟件工程東南大學軟件工程中最基本的概念是軟件生命周期。軟件生命周期是指軟件產軟件開發模型:為了更好地實施軟件開發的工程化管理而建立的良好的包括軟件開發全部過程、活動和任務的結構框架。軟件開發模型的種類:瀑布模型、演化模型、螺旋模型、噴泉模型和智能模型軟件和軟件工程東南大學軟件開發模型:為了更好地實施軟件開發的工程化管理而建立的良好軟件開發模型只是表示了軟件開發過程、活動和任務的結構框架,是一種宏觀的指導思想。而對于具體的軟件開發過程,還需要微觀的軟件開發方法。軟件開發方法是軟件開發過程所遵循的辦法和步驟。開發過程一般包括需求、設計、實現、確認等活動。需求分析和系統設計是軟件開發過程中最核心的活動。典型的針對需求分析和系統設計的軟件開發方法有:結構化方法、面向數據結構的方法和面向對象方法。軟件和軟件工程東南大學軟件開發模型只是表示了軟件開發過程、活動和任務的結構框架,是一個簡單的數據流圖軟件和軟件工程東南大學一個簡單的數據流圖軟件和軟件工程東南大學UML的幾個圖形語言元素軟件和軟件工程東南大學UML的幾個圖形語言元素軟件和軟件工程東南大學軟件復用是指基于已有軟件的各種有關知識建立新的軟件,以縮減軟件開發和維護的費用、提高軟件生產率和質量的一種技術。軟件復用一般反映在兩個層面:抽象的思想、概念與方法的復用和具體的軟件預制件的復用。軟件復用形式主要有兩種:垂直式復用(同一應用領域中的復用)和水平式復用(不同的應用領域中之間的復用)。軟件和軟件工程東南大學軟件復用是指基于已有軟件的各種有關知識建立新的軟件,以縮減軟構件化軟件開發方法強調標準(零件制作所應滿足的規定,以便零件通用、交互和集成)

、零件(軟件構件,組裝件)和生產線(也稱框架Framework。基于標準和零件,定義大規模產品生產的方法。目前流行的標準主要有三種:COM/DCOM/OLE/ActiveX/.NETAssembly系列、CORBA/CCM系列和JavaBeans/EJB系列。軟件和軟件工程東南大學構件化軟件開發方法強調標準(零件制作所應滿足的規定,以便零件MicrosoftVisualC++開發環境支持的生產線軟件和軟件工程東南大學MicrosoftVisualC++開發環境支持的生產線支持復合文檔框架的開發環境樣例軟件和軟件工程東南大學支持復合文檔框架的開發環境樣例軟件和軟件工程東南大學

軟件開發方法和技術的發展歷程,反映了人類對軟件及其構造方法的認識的深入。結構化方法本質上以功能(數據處理)為核心;面向數據結構的方法本質上以數據組織為核心;上述兩種方法都是將數據組織與數據處理分開考慮。軟件和軟件工程東南大學軟件開發方法和技術的發展歷程,反映了人類對軟面向對象方法實現了數據組織與數據處理的統一考慮。由于面向對象的方法源自于面向對象的程序設計語言,因此,對面向對象方法的思想的認識受到一定限制,也就是說,沒有明確區分面向對象方法的思想與面向對象思想的具體實現。構件化方法可以說是面向對象方法思想的另一種具體實現,它對面向對象的思想做了廣義的演繹。這種認識建立在抽象基礎上,獨立于各種具體的語言和環境,使得面向對象方法所提倡的封裝、繼承、多態等技術得到淋漓盡致的發揮,實現最大限度的軟件重用。從而真正展示出面向對象思想應有的精華。軟件和軟件工程東南大學面向對象方法實現了數據組織與數據處理的統一考構件化設計方法的誕生,其重要意義不僅是廣義的演繹了面向對象的思想,更是在于它引起了軟件開發的革命性變革,將軟件開發形式從手工作坊方式過渡到大工業生產方式,從而實現了與硬件產業、機械產業、電子產業等等同樣的生產方式,真正解決了大規模軟件開發的問題。引起了傳統軟件開發思維和觀念的變革。軟件和軟件工程東南大學構件化設計方法的誕生,其重要意義不僅是廣義的文檔是軟件的重要組成部分,文檔編制成為軟件工程的一個重要方面。

針對一個軟件系統,文檔主要有兩類:用戶文檔和系統文檔。對設計文檔的編制,從軟件開發初始分析開始,這種文檔創建就應不間斷,強調文檔與設計的同步性。解決同步性的一種途徑是使用計算機輔助軟件工程(ComputerAidedSoftwareEngineering,CASE)工具,它可以實現設計、修改與文檔的自動同步。軟件和軟件工程東南大學文檔是軟件的重要組成部分,文檔編制成為軟件工程的一個Thanks!東南大學Thanks!東南大學大學計算機基礎——基本概念及應用思維解析東南大學大學計算機基礎東南大學105第3章程序式使用計算機本章主要知識點程序工作方式與交互工作方式的區別和聯系程序的本質程序構造的基本方法基本數據組織方法基本數據處理方法程序設計的三要素程序與軟件的關系軟件和軟件開發的關系軟件開發的工程化管理軟件開發方法相關概念和知識東南大學第3章程序式使用計算機本章主要知識點東南大學

程序是人類思想的結晶,最能反映人類的智慧和創造性。它反映了人類解決問題的思維和方法。程序的構造是一個動態過程,一般涉及語言、軟件模型、環境、應用體系、工程化管理等多個方面。

因此,程序工作方式相對于交互式工作方式,對人的要求更高。程序是最能反映人類的智慧和創造性。程序工作方式與交互工作方式的區別和聯系東南大學程序是人類思想的結晶,最能反映人類的智在交互方式中,人與計算機是聯機的。在程序方式中,人與計算機是脫機的。程序方式中,人們通過某種計算機語言,針對需要解決的特定問題,事先將自己處理問題的思路和方法編寫成程序,然后通過發行和運行程序達到解決問題的目的。程序工作方式與交互工作方式的區別和聯系東南大學在交互方式中,人與計算機是聯機的。程序工作方式程序工作方式與交互工作方式的區別和聯系東南大學程序工作方式與交互工作方式的區別和聯系東南大學聯機工作方式中,人的主動性比較高。面對遇到的問題,可以隨機應變。

脫機工作方式中,構造程序時必須考慮許多問題,要考慮到未來程序運行時的各種各樣可能出現的問題及其對策。另外,程序的構造還涉及計算機語言、軟件開發方法、軟件開發環境、應用體系等方面的知識。特別是,涉及處理問題的各種基本應用模式。因此,對人的思維要求更高。程序工作方式與交互工作方式的區別和聯系東南大學聯機工作方式中,人的主動性比較高。面對遇到的兩種工作方式的區別類似于人類社會中的講話和寫作交互式使用:說話,容易。程序式使用:寫作,較難。程序工作方式與交互工作方式的區別和聯系東南大學兩種工作方式的區別類似于人類社會中的講話和寫作程序工作方式與

兩種方式既有區別又有聯系,區別主要在于兩者的表現形式和層次不同,而從思維本質的角度看,兩者是一致的。事實上,程序設計與構造建立在交互式使用方式基礎上。一方面,程序的開發環境、運行配置環境等,需要交互式使用方式;另一方面,程序構造的語言,是交互式交流方式中命令語言的拓展;再者,針對具體問題的處理,兩者的思維本質是一致的。

程序工作方式與交互工作方式的區別和聯系東南大學兩種方式既有區別又有聯系,區別主要在于兩者的表現形式程序與程序設計程序是指一組預定的工作指令流,可以直接通過計算機執行,使具體的現實世界中的客觀問題得以在計算機世界中智能化再現,從而使具體問題得到解決。程序設計是指程序的形成過程,就是人類運用其邏輯思維能力以及符號處理能力來構造一個特定的符號處理器,使得借助于計算機這樣一種設備,能夠完成預定的計算。東南大學程序與程序設計程序是指一組預定的工作指令流,可以直接程序是人類思維的產物,是人類思維火花的時間定格,呈現靜態特征。程序盡管固化了人類的智慧,但卻沒有展示人類形成該程序的動態思維過程程序設計——產生程序的過程,是動態的。程序設計是一種創造性勞動,或是說腦力勞動,反映了人類思維的規律和模式。伴隨整個程序構造過程而形成的各種人類的思維活動,對于程序的最終形成起到核心作用。 程序的形成過程比程序本身重要得多,程序設計與構造的涵義比程序的涵義要豐富得多。程序與程序設計東南大學程序是人類思維的產物,是人類思維火花的時間定格,呈現程序設計與文化有著很深的淵源。

不同的文化對程序設計有影響。程序與程序設計東南大學程序設計與文化有著很深的淵源。程序與程序設計東南大學

遞歸(recursion)是計算機思維的核心思想之一,其本質反映的是一種跳躍性思維方法。遞歸反映了事物間的規律,即整體是由局部構成的,整體又可以充當粒度較大的局部,整體和局部的關系是辨證統一的。理解事物間規律的視角,即對于一個問題中的整體和局部的理解,取決于看待問題的角度和視角,而這種角度和視角是隨時會改變和調整的。這也就是所謂的當前的概念。遞歸思維解析東南大學遞歸(recursion)是計算機思維的核心思想之一遞歸和當前兩者相互結合,形成完整的辨證思維邏輯。

遞歸思維解析東南大學遞歸思維解析東南大學

基本邏輯控制規則來源于自然社會生活中人們處理各種問題時所采取的策略和方法,對這些策略和方法的歸納和抽象,就產生了基本的邏輯控制策略和方法。計算機程序設計中,有順序、分支、循環、遞歸四種基本邏輯控制規則。對于高性能高質量的應用,其關鍵顯然不在于四種基本邏輯控制規則本身,而是在于如何應用這四種基本邏輯控制規則。基本邏輯控制規則東南大學基本邏輯控制規則來源于自然社會生活中人們一、定義基本邏輯控制規則東南大學一、定義基本邏輯控制規則東南大學從邏輯形態和概念上看,A等同于B,因為無論A還是B,它們都是由三種基本的處理步(處理步、分支組合步和循環處理步)組成。如果將A看成是一個大程序,則B可以看成是一個小程序,由此又可以引申出大程序中包含小程序,小程序的外面是大程序,即程序之中有程序,程序之外是程序的思想。

基本邏輯控制規則東南大學從邏輯形態和概念上看,A等同于B,因為無論A還是B,它們都是

基本邏輯控制規則的組合也是遞歸思想的一種應用。 對于分解后的各個具體模塊,可以按人們的思維邏輯進行任意組合,以實現人類思想的再現。同樣一個問題,不同的人有不同的組合方法,產生出不同的程序。可見,最終用于問題解決的程序,本質上反映了各個人的具體的思維。基本邏輯控制規則東南大學 基本邏輯控制規則的組合也是遞歸思想的一種應程序構造的基本方法

程序構造的基本方法:數據組織+數據處理。數據組織相當于組織和提供各種素材;數據處理則是如何利用這些素材,進行加工處理,得到最后的成品。東南大學程序構造的基本方法 程序構造的基本方法:數據組織+數據處程序構造的基本方法(數據組織)

針對同樣的數據,不同的人可以有不同的處理方法,這些方法都能得到需要的結果。這反映了每個人的思維特征和對問題的處理方法。數據組織和數據處理存在一定的思維聯系。也就是說,一種數據組織方法,隱含地決定了對這些數據的存取方法。同樣,一種數據處理方法也隱含地決定了數據應有的組織方法。東南大學程序構造的基本方法(數據組織)針對同樣的數據,不同的一、分類

根據處理所涉及的數據量和種類,數據組織一般分為內存數據組織和外存數據組織兩大類。內存數據組織是指用于數據處理的數據量一般比較少,所有數據都可以存放到計算機的內部存儲器中,數據處理程序可以直接使用這些數據。內存數據組織的基本方法有:簡單數據組織、線性數據組織、層次數據組織和網狀數據組織程序構造的基本方法(數據組織)東南大學一、分類根據處理所涉及的數據量和種類,數據組織一般分一、分類

外存數據組織是指用于數據處理的數據量比較大,不可能將所有數據都存放到計算機的內部存儲器中。只有當前處理所涉及的一部分數據放在內存,而大部分暫時不用的數據則存放在外部存儲器中。因此,數據處理程序必須經過專用的數據管理系統,根據處理的需要不斷從外部存儲器中將當前需要用到的數據調入內部存儲器中。外存數據組織中的專用數據管理系統一般有文件系統和數據庫系統。程序構造的基本方法(數據組織)東南大學一、分類外存數據組織是指用于數據處理的數據量比較大,程序構造的基本方法(數據組織)數據邏輯組織的類型內存數據組織簡單數據組織線性數據組織層次數據組織—樹網狀數據組織—圖文件系統數據庫系統

外存數據組織東南大學程序構造的基本方法(數據組織)數據邏輯組織的類型內存數據組織數據組織的概念分為兩個層次:邏輯組織和物理組織。邏輯組織是指一種抽象描述,只關心數據之間的組織關系,不涉及數據在計算機內部的具體組織。物理組織是指數據在計算機內部的具體組織,它涉及計算機基本組成結構中的存儲器概念。程序構造的基本方法(數據組織)東南大學數據組織的概念分為兩個層次:邏輯組織和物理組織。邏輯簡單數據組織一般用于對少量、相互之間沒有太大關系的數據的組織。程序構造的基本方法(數據組織)東南大學簡單數據組織一般用于對少量、相互之間沒有太大關系的數據的組織線性數據組織一般用于同類的批量數據組織。這種數據組織方法的優點是,整批數據用同一個名稱,表示他們是屬于同一類數據。其中的每一個具體數據通過一個序號給出。可見,這種數據組織方法隱含在對其處理中,一般都是通過循環完成。程序構造的基本方法(數據組織)東南大學線性數據組織一般用于同類的批量數據組織。這種數據組織方法的優線性數據組織在計算機中的具體實現一般有兩種形式:連續組織和非連續組織。連續組織是指將這批數據存放到計算機內部存儲器中某個連續的區域,數據名表示這個連續區域,根據編號可以計算出與該編號對應的那個數據所存放的區域。非連續組織是指將這批數據分散存放到計算機內部存儲器中,每個數據存放一個位置,一般而言,這些位置是不連續的。但是,為了保持這批數據在邏輯上的線性關系,必須為這些不連續的位置建立聯系。程序構造的基本方法(數據組織)東南大學線性數據組織在計算機中的具體實現一般有兩種形式:連續組織和非非連續組織中建立聯系具體方法是,擴大每個數據的存儲區域,該區域除了存放數據外,還可以再存儲一個位置信息。然后,根據這批數據在邏輯上的線性關系,將后面一個數據存放的位置登記到前面一個存放數據的區域中,完成兩個相鄰數據的邏輯關系建立。對于最后一個數據,因為它的后面沒有其他數據,因此,可以將其存放區域中記錄下一個數據的位置信息的部分填上一個特殊位置值,表示已經結束。對于第一個數據,可以將它的存放位置登記到一個特定的名稱中,表示整個這批數據的起點位置。

程序構造的基本方法(數據組織)東南大學非連續組織中建立聯系具體方法是,擴大每個數據的存儲區域,該區

這種數據組織實現方法也稱為鏈表結構,因為它像一根鏈條。

程序構造的基本方法(數據組織)東南大學 這種數據組織實現方法也稱為鏈表結構,因為它像連續組織方式中,每當插入或刪除一個數據時,該數據后面的所有數據都必須向后或向前移動。因此,這種數據組織方法一般適用于一批數據相對固定的應用場合。非連續組織方式中,每當插入一個數據時,可以將這個數據存放在任意一個允許存放的位置,然后通過修改位置信息完成插入。同樣,每當刪除一個數據時,也可通過修改位置信息完成刪除。

程序構造的基本方法(數據組織)東南大學連續組織方式中,每當插入或刪除一個數據時,該數據后面的所有數

在35和67之間插入一個56,則可以先將67的位置(在35的存儲區域中)登記到56的存儲區域中;再將56的位置(可能是在某個名稱中)登記到35的存儲區域中。圖3.7a插入56程序構造的基本方法(數據組織)東南大學 在35和67之間插入一個56,則可以先將67的3153567662-1200435H2060T206056-1T2010200015200420103203020003520302034672056-122034205666206056T20602030申請空間填充數據修改地址修改地址3153567662-12004H56東南大學3153567662-1200435H2060T206056要刪除35,則可以先將67的位置(在35的存儲區域中)登記到15的存儲區域中,再將35的存儲區域歸還給計算機。圖3.7b刪除35程序構造的基本方法(數據組織)東南大學要刪除35,則可以先將67的位置(在35的存儲區3153567662-12004H2010152010200015200420103203020003520302034672056-122034205666200035修改地址31567662-12004H20302030東南大學3153567662-12004H2010152010200

非連續數據組織方法不存在數據移動。因此,這種數據組織方法一般適用于數據插入刪除比較頻繁的應用場合。盡管非連續組織方法中不涉及數據的頻繁移動,節省了大量時間。但它為了保持數據在邏輯上的線性關系,每個數據存放區域都增加了用于記錄下一個數據存放位置的空間,是犧牲空間而換取時間。程序構造的基本方法(數據組織)東南大學非連續數據組織方法不存在數據移動。因此,這種數據組織如果對通過線性數據組織方法組織的一批數據操作時施加如下規定:數據的增加和刪除必須在同一端進行,每次只能增加或刪除一個數據元素。則這種線性數據組織方法及其應用就稱為棧結構。 其中,數據增加和刪除的一端稱為棧頂,另一端稱為棧底。增加數據的操作稱為壓棧或進棧,刪除數據的操作稱為出棧。

棧結構也稱為LIFO(LastInFirstOut)結構。程序構造的基本方法(數據組織)東南大學如果對通過線性數據組織方法組織的一批數據操作時施加如棧結構也稱為先進后出結構(FILO:FirstInLastOut),圖3.8是棧的示意圖。棧結構示意圖程序構造的基本方法(數據組織)東南大學棧結構也稱為先進后出結構(FILO:FirstInLas棧底棧頂棧進棧東南大學棧底棧頂棧進棧東南大學棧底棧頂棧出棧東南大學棧底棧頂棧出棧東南大學如果對通過線性數據組織方法組織的一批數據操作時施加如下規定:數據的增加和刪除分別在兩端進行;每次只能增加或刪除一個數據元素;則這種線性數據組織方法及其應用就稱為隊列結構。其中,增加數據的一端稱為隊列尾,刪除數據的一端稱為隊列頭。增加數據的操作稱為入隊或進隊,刪除數據的操作稱為出隊。隊列結構也稱為FIFO

(FirstInFirstOut)結構。程序構造的基本方法(數據組織)東南大學如果對通過線性數據組織方法組織的一批數據操作時施加如隊列結構示意圖程序構造的基本方法(數據組織)東南大學隊列結構示意圖程序構造的基本方法(數據組織)東南大學隊列尾隊列頭隊列進隊東南大學隊列尾隊列頭隊列進隊東南大學隊列尾隊列頭隊列出隊東南大學隊列尾隊列頭隊列出隊東南大學文件(file)是指外存中一組相關信息的集合,并有一個名稱標識。文件系統(filesystem)是用于管理文件的軟件系統。通過文件系統提供的功能,人們可以方便地管理和使用文件。程序構造的基本方法(數據組織)東南大學文件(file)是指外存中一組相關信息的集合,并有一個名稱標針對大容量數據,必須將其存儲在外存中。為了對這些數據進行有效管理,操作系統中都提供相應的文件系統,以文件的方式組織數據。由于以文件方式組織的數據是存放在外存,因此必須通過一定的硬件設備驅動和讀寫才能進行數據訪問。文件系統可以屏蔽這些復雜的硬件控制問題,以一種抽象的邏輯視圖進行文件的管理。程序構造的基本方法(數據組織)東南大學針對大容量數據,必須將其存儲在外存中。為了對這些數據文件的基本結構程序構造的基本方法(數據組織)東南大學文件的基本結構程序構造的基本方法(數據組織)東南大學

針對文件方式的數據組織,數據的訪問一般要經過文件建立(create)、文件使用、文件刪除、文件移動等基本操作。其中,文件使用必須經過打開(open)、讀/寫(read/write)、關閉(close)三個基本步驟 針對大容量數據組織和管理,還有專門的方法——數據庫系統技術。程序構造的基本方法(數據組織)東南大學 針對文件方式的數據組織,數據的訪問一般要經過文件建立(cr1)算法及其描述程序構造的基本方法(數據處理)算法是一個有窮的指令集,這些指令為解決某一個特定任務規定了一個運算序列。算法具有如下特點:有0個或多個輸入、有一個或多個輸出、具有確定性、具有有窮性、具有有效性。東南大學1)算法及其描述程序構造的基本方法(數據處理)算法是一個有窮算法與程序的區別:

算法與程序是不同的,程序可以不滿足有窮性特點。算法與數據組織密切相關,它是在某種數據組織結構上的一種解決問題的計算方法。程序構造的基本方法(數據處理)東南大學算法與程序的區別: 算法與程序是不同的,程序可算法的特點:程序構造的基本方法(數據處理)針對同一個問題,會有不同的數據組織方式和不同的算法。衡量一個算法的好壞,主要是通過該算法執行時所耗費的時間和空間來比較,這種比較是一種相對比較,一般只給出量級關系。一般而言,算法的量級有O(1)、O(n)、O(log2n)、O(nlog2n)、O(n2)、O(n3)等。O(m+n)與O(n)屬于同一量級,即線性級;O(100)和O(1)屬于同一量級,即常量級(其中,對于空間耗費而言,m、n表示算法執行時耗費的空間大小,一般以字節為單位計數;對于時間耗費而言,m、n表示算法中指令執行的次數)。

東南大學算法的特點:程序構造的基本方法(數據處理)針對同一個算法的抽象本質在于算法與它的表示之間的區別。也就是說,算法本身是抽象的,它只是反映一種解決問題的方法。但這種方法必須通過某種形式展示出來,這就是具體的算法表示和描述。算法的描述可以有多種形式,可以有語言方式、圖形方式和表格方式。每一種形式還可以有多種不同的形態。比如,語言方式就有自然語言、類計算機語言和計算機語言三種描述。圖形方式有流程圖、N-S圖、PAD圖等多種方式。

程序構造的基本方法(數據處理)東南大學算法的抽象本質在于算法與它的表示之間的區別。也就是說程序構造的基本方法(數據處理)N-S圖是一種結構化的流程圖,通過一個矩形框表達一個對數據的基本處理,并定義三種基本的元素框(元素框內可以包含基本處理矩形框),通過三種基本的元素框可以按需要進行任意邏輯組合,實現處理邏輯的控制策略,從而表達一個完整的處理問題的算法。N-S圖很容易映射為所要求的某種具體的計算機語言。東南大學程序構造的基本方法(數據處理)N-S圖是一種結構化的

N-S圖描述方法,體現了由大到小、由粗到細的逐步求精的分析和設計方法,這種方法比較符合人類的思維習慣。這種方法的核心在于用少量的幾個符號,可以描述無限的問題,呈現出遞歸的分析思想。N-S圖應用的技巧在于深刻領悟這種富有哲理的遞歸思想,從外到內,逐層運用,在外層時不要看內層,在內層時不要看外層,始終保持當前只看到一個層次,這樣無論多復雜的問題,都可以看得相當簡單。程序構造的基本方法(數據處理)東南大學 N-S圖描述方法,體現了由大到小、由粗到細的逐步求精的分析【例3-1】給定一個正整數N,如果N大于0,輸出“大于0!”;否則,輸出“小于等于0!”。程序構造的基本方法(數據處理)東南大學【例3-1】給定一個正整數N,如果N大于0,輸出“大于0!”【例3-2】輸入10個整數,求它們的和。采用簡單數據組織方式,用S存放和,I記錄輸入數據的個數。初始時,S=0,I=0。每輸入一個數,I增加1,并將該數加入到S中。程序構造的基本方法(數據處理)東南大學【例3-2】輸入10個整數,求它們的和。采用簡單數據組織方程序構造的基本方法(數據處理)素數的特征是除1和該數本身之外,不能被其他任何整數整除。算法的基本思想是:將N分別被2、3、4、……、N-1除,如果都除不盡,則N是一個素數。否則,N不是一個素數。根據此思路,算法的自然語言描述如下:①設除數為I,I的值從2變化到N-1;②用I除N,得到余數R;③如果R=0,則表示N能夠被I整除,N不是素數,算法結束;否則,表示N不能被I整除,可能為素數,繼續判斷;④使I的值增加1;⑤如果IN-1,則返回(2)繼續;否則,表示N已被2到N-1除且都不能被整除。因此,N為素數,算法結束。

東南大學程序構造的基本方法(數據處理)素數的特征是除1和該數本身之外判斷N是否是素數的N-S圖程序構造的基本方法(數據處理)東南大學判斷N是否是素數的N-S圖程序構造的基本方法(數據處理)東南常用數據處理算法排序查找遞歸回溯

程序構造的基本方法(數據處理)東南大學常用數據處理算法程序構造的基本方法(數據處理)東南大學151895231013716151895231013716當前需要冒泡的位置從后向前冒泡不需要交換需

溫馨提示

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

評論

0/150

提交評論