版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第六章數(shù)據(jù)的組織結(jié)構(gòu)與算法6.1數(shù)據(jù)結(jié)構(gòu)的基本概念6.2常用的幾種數(shù)據(jù)結(jié)構(gòu)6.3算法6.4程序設(shè)計方法16.1數(shù)據(jù)結(jié)構(gòu)的基本概念6.1.1數(shù)值計算與非數(shù)值計算數(shù)據(jù)是描述客觀事物的數(shù)值、字符以及能輸入機(jī)器且能被處理的各種符號集合。換句話說,數(shù)據(jù)對客觀事物采用計算機(jī)能夠識別、存貯和處理形式所進(jìn)行的描述。簡言之,數(shù)據(jù)就是計算機(jī)化的信息。數(shù)學(xué)模型有定量模型和定性模型兩類之分,定量模型指的是可以用數(shù)值方程表示的一類計算模型,而定性模型則是指非數(shù)值性的數(shù)據(jù)結(jié)構(gòu),如表、樹和圖等及其運(yùn)算。2
數(shù)據(jù)結(jié)構(gòu)(DataStructure)問題起源于程序設(shè)計的發(fā)展。第一個8008芯片只有4K的內(nèi)存,微軟的最初成立就是為這個芯片的機(jī)器編寫B(tài)ASIC語言,優(yōu)化在每一處都非常重要。逐漸地,人們注意了數(shù)據(jù)表示與操作的結(jié)構(gòu)化,把一些確實能夠有效解決問題的數(shù)據(jù)表示和算法總結(jié)出來,如表、棧、隊、樹、圖(稍后會介紹這些術(shù)語)等被單獨抽出研究,而這些方法便形成一門學(xué)問,這就是“數(shù)據(jù)結(jié)構(gòu)”這門學(xué)科的來源。6.1.2數(shù)據(jù)結(jié)構(gòu)的起源3數(shù)據(jù)結(jié)構(gòu)有邏輯上的數(shù)據(jù)結(jié)構(gòu)和物理上的數(shù)據(jù)結(jié)構(gòu)之分。邏輯上的數(shù)據(jù)結(jié)構(gòu)反映成分?jǐn)?shù)據(jù)之間的邏輯關(guān)系。物理上的數(shù)據(jù)結(jié)構(gòu)反映成分?jǐn)?shù)據(jù)在計算機(jī)內(nèi)部的存儲安排。6.1.3對數(shù)據(jù)結(jié)構(gòu)的理解41.表示對象/實體及其關(guān)系在計算機(jī)中的表示。只有對象及其相互關(guān)系已存儲(表示)在計算機(jī)中,才能被進(jìn)一步處理;2.操作:對對象/實體進(jìn)行處理、訪問。數(shù)據(jù)結(jié)構(gòu)的一般定義:相互之間存在著一定關(guān)系的數(shù)據(jù)元素的集合及定義在其上的操作(運(yùn)算)稱為數(shù)據(jù)結(jié)構(gòu)。51.插入:在數(shù)據(jù)結(jié)構(gòu)中的指定位置增添新的數(shù)據(jù)元素2.刪除:刪去數(shù)據(jù)結(jié)構(gòu)中指定的數(shù)據(jù)元素。3.查找:在數(shù)據(jù)結(jié)構(gòu)中尋找某個特定要求的數(shù)據(jù)元素。4.排序:(在線性結(jié)構(gòu)中)重新安排數(shù)據(jù)元素之間的邏輯順序關(guān)系,使之按某個關(guān)鍵字值由小到大或由大到小的次序排列。5.遍歷:按某一次序訪問數(shù)據(jù)結(jié)構(gòu)中的每一個數(shù)據(jù)元素。6.1.4對數(shù)據(jù)結(jié)構(gòu)中數(shù)據(jù)元素的操作6
[例6.1]解一元二次方程ax2+bx+c=0.利用計算機(jī)解此方程,第一個問題就是如何在計算機(jī)中表示該方程。分析該方程,可知決定方程的是方程的三個系數(shù)值:a、b、c,而它們的次序表示它們分別屬于那一項,其他符號是為增加可讀性而引入的,因此,可用這三個系數(shù)的線性排列在計算機(jī)中表示該方程。例如:3x2-x+1=0表示為(3,-1,1)x2-3=0表示為(1,0,-3)在數(shù)據(jù)結(jié)構(gòu)中,將若干個數(shù)線性排列的數(shù)(元素)稱為線性表,因此,一元二次方程ax2+bx+c=0就在計算機(jī)中表示為線性表(a,b,c)。解方程實質(zhì)上是對線性表(a,b,c)進(jìn)行操作。6.1.5數(shù)據(jù)結(jié)構(gòu)能解決什么問題7定義變量X和一個線性表,如數(shù)組intS[3];
S[2],S[1],S[0]可以分別存放三個系數(shù)值輸入S[2],S[1],S[0]三個系數(shù)值輸入任意一個值X開始S[2]*X*X+S[1]*X+S[0]<1E-5?輸出X結(jié)束YESNO8[例6-2]電話號碼查詢系統(tǒng)設(shè)有一個電話號碼薄,它記錄了N個人的名字和其相應(yīng)的電話號碼,假定按如下形式安排:(a1,b1)(a2,b2)…(ai,bi)其中ai,bi(i=1,2…n)分別表示某人的名字和對應(yīng)的電話號碼。要求設(shè)計一個算法,當(dāng)給定任何一個人的名字時,該算法能夠打印出此人的電話號碼,如果該電話簿中根本就沒有這個人,則該算法也能夠報告沒有這個人的標(biāo)志。假定名字和其電話號碼邏輯上已安排成N元向量的形式,它的每個元素是一個數(shù)對(ai,bi),1≤i≤n。9[例6-3]家族成員的族譜表示一個家族的族譜就構(gòu)成了一個層次結(jié)構(gòu),在數(shù)據(jù)結(jié)構(gòu)中,稱為樹。圖6-2給出了這種族譜關(guān)系。10一般般用用示示意意圖圖表表示示數(shù)數(shù)據(jù)據(jù)結(jié)結(jié)構(gòu)構(gòu)。。用小小圓圓圈圈代代表表數(shù)數(shù)據(jù)據(jù)元元素素,用小小圓圓圈圈之之間間的的連連線線代代表表小小圓圓圈圈對對應(yīng)應(yīng)的的數(shù)數(shù)據(jù)據(jù)元元素素具具有有的的關(guān)關(guān)系系,,如果果強(qiáng)強(qiáng)調(diào)調(diào)關(guān)關(guān)系系的的方方向向性性,,可可用用帶帶箭箭頭頭的的線線段段表表示示關(guān)關(guān)系系。。具體體地地講講,,若若d1和d2表示示兩兩個個數(shù)數(shù)據(jù)據(jù)元元素素,,它它們們具具有有關(guān)關(guān)系系<<d1,d2>,,則則表表示示為為如如圖圖6-3所所示示的的結(jié)結(jié)構(gòu)構(gòu)。。圖中中表表示示的的只只是是一一個個抽抽象象關(guān)關(guān)系系,,不不代代表表具具體體意意義義。。對對于于具具體體的的應(yīng)應(yīng)用用,,也也可可以以表表示示家家族族關(guān)關(guān)系系中中的的父父子子關(guān)關(guān)系系。。例例如如,,<<d1,d2>可代表d1是d2的父親。數(shù)數(shù)據(jù)結(jié)構(gòu)的的圖示116.2常用用的幾種數(shù)據(jù)據(jù)結(jié)構(gòu)根據(jù)數(shù)據(jù)元素素之間的關(guān)系系的不同,將將數(shù)據(jù)結(jié)構(gòu)的的邏輯結(jié)構(gòu)分分為集合結(jié)構(gòu)構(gòu)、線性結(jié)構(gòu)構(gòu)、樹狀結(jié)構(gòu)構(gòu)和圖結(jié)構(gòu)((圖6-4))。12
集合:數(shù)據(jù)元素間間除了“同屬屬于一個集合合”外,別無無其它關(guān)系。。
線性結(jié)構(gòu):數(shù)據(jù)元素間間存在一個對對一個的關(guān)系系。
樹形結(jié)構(gòu):數(shù)據(jù)元素間間存在一個對對多個的關(guān)系系。
圖或網(wǎng)狀結(jié)構(gòu)構(gòu):數(shù)據(jù)元素間間存在多個對對多個的關(guān)系系。6.2常用用的幾種數(shù)據(jù)據(jù)結(jié)構(gòu)131.棧(stack)棧是只能在某某一端插入和和刪除的特殊殊線性表。進(jìn)行刪除和插插入的一端稱稱棧頂,另一堆稱棧底。插入一般稱為為進(jìn)棧(Push),刪除則稱為出棧(Pop)。棧也稱為后進(jìn)進(jìn)先出表(LIFO:LastIn,FirstOut)。操作系統(tǒng)中的的中斷調(diào)用及及返回就是采采用棧結(jié)構(gòu)線線性結(jié)構(gòu)14隊列是限定在在一端進(jìn)行插插入,另一端端進(jìn)行刪除和和特殊線性表表。通常把隊列的的刪除和插入入分別稱為出出隊和入隊。。允許出隊的的一端稱為隊隊頭,允許入入隊的一端稱稱為隊尾。所所有需要進(jìn)隊隊的數(shù)據(jù)項,,只能從隊尾尾進(jìn)入,隊列列中的數(shù)據(jù)項項只能從隊頭頭離去。由于于總是先入隊隊的元素先出出隊(先排隊隊的人先買完完東西),這這種表也稱為為先進(jìn)先表((FIFO::FirstIn,FirstOut))表。2.隊列151.鏈表是指指用一組任意意的存儲單元元來依次存放放線性表的數(shù)數(shù)據(jù)元素。2.在存儲每每個結(jié)點值的的同時,必須須存儲指示其其后繼(或前前趨)結(jié)點的的地址(或位位置)信息,,這個信息稱稱為指針(pointer)或鏈(link)。如果鏈表表的每一個結(jié)結(jié)點只有一個個指針域,則則這種鏈表稱稱為單鏈表結(jié)結(jié)點結(jié)構(gòu),如如圖6-9(a)所示;;如果鏈表的的每一個結(jié)點點有兩個指針針域,則這種種鏈表稱為雙雙鏈表結(jié)點結(jié)結(jié)構(gòu)。一個指指針域指向其其前趨結(jié)點,,一個指針域域向其后繼結(jié)結(jié)點。如圖6-9(b)所示。3.鏈表16[例6.4]單循環(huán)鏈表的的應(yīng)用單循環(huán)鏈表的的一個典型例例子是約瑟夫環(huán)(JosephCircle),其描述如下下:編號為1,2,...,n的n個人人按順時針方方向圍坐一圈圈,每人持有有一個密碼((正整數(shù))?!,F(xiàn)在給定一一個隨機(jī)數(shù)m>0,從編編號為1的人人開始,按順順時針方向1開始順序報報數(shù),報到m時停止。報報m的人出圈圈,同時留下下他的密碼作作為新的m值值,從他在順順時針方向上上的下一個人人開始,重新新從1開始報報數(shù),如此下下去,直至所所有的人出列列為止。17當(dāng)n和m較大時,,用人工工求解約約瑟夫環(huán)環(huán)問題是是相當(dāng)繁繁瑣的。。采用單循循環(huán)鏈表表就容易易解決。。其基本思思路是::n人圍成一一圈,把把一人看看成一個個結(jié)點,,n人之間的的關(guān)系采采用鏈接接方式,,即每一一結(jié)點有有一個前前趨結(jié)點點和一個個后繼結(jié)結(jié)點,每每一個結(jié)結(jié)點有一一個指針針指向下下一個結(jié)結(jié)點,最最后一個個結(jié)點指指針指向向第一個個結(jié)點。。這就是是單循環(huán)環(huán)鏈的數(shù)數(shù)據(jù)結(jié)構(gòu)構(gòu)。當(dāng)m人出列時時,將m結(jié)點的前前趨結(jié)點點指針指指向m結(jié)點的后后繼結(jié)點點指針,,即把m結(jié)點驅(qū)出出循環(huán)鏈鏈。181.樹的的定義樹是由一一個或多多個結(jié)點點組成的的有限集集合,如如圖6-12所所示。樹樹結(jié)構(gòu)19必有一個個特定的的稱為根(ROOT)的的結(jié)點,,根的每每個分支支稱為子樹(sub-tree)),子樹樹也是一一棵樹樹中的每每一個結(jié)結(jié)點都可可以不止止一個直直接后繼繼,結(jié)點點的后繼繼結(jié)點稱稱為該結(jié)結(jié)點的““子結(jié)點點”(Children)除根結(jié)點點外的所所有結(jié)點點有且只只有一個個直接前前趨,結(jié)結(jié)點的前前趨結(jié)點點稱為該該結(jié)點的的“父結(jié)結(jié)點”((Parent)同一父結(jié)結(jié)點的子子結(jié)點稱稱為“兄兄弟”((Sibling)結(jié)點下不不再有分分支的稱稱為樹葉葉(leaf)),或者者葉子結(jié)結(jié)點樹結(jié)構(gòu)的的特點20二叉樹的的特點::樹中的的每個結(jié)結(jié)點最多多只有兩兩棵子樹樹,即樹樹中任何何結(jié)點的的度數(shù)不不得大于于2。二叉樹的的子樹有有左右之之分,稱稱為左子子樹和右右子樹。。而且子子樹的左左右次序序是重要要的,即即使在只只有一棵棵子樹的的情況下下,也應(yīng)應(yīng)分清楚楚。例如如圖6-13是是兩棵不不同的二二叉樹。。2.二叉叉樹21所謂遍歷歷二叉樹樹,就是是按一定的的規(guī)則和和順序走走遍二叉叉樹的所所有結(jié)點點,使每一一個結(jié)點點都被訪訪問一次次,而且且只被訪訪問一次次。二叉樹的的遍歷可可分為先序遍歷歷中序遍歷歷后序遍歷歷3.二叉叉樹的遍遍歷221.先序序遍歷遞遞歸算法法定義::若二叉樹樹非空,,則依次次執(zhí)行操操作:(1)訪問問根結(jié)點點;(2)遍遍歷左左子樹;;(3)遍遍歷右子子樹。ABDGECF2.中序遍歷歷遞歸算算法定義義:若二叉樹樹非空,,則依次次執(zhí)行操操作:(1)遍歷左左子樹;;(2)訪問問根結(jié)點點;(3)遍遍歷右子子樹。GDBEACF3.后序序遍歷遞遞歸算法法定義::若二叉樹樹非空,,則依次次執(zhí)行操操作:(1)遍歷左左子樹;;(2)遍歷歷右子樹樹;(3)訪訪問根結(jié)結(jié)點。GDEBFCA23一個圖由由有限的的頂點((Vertices))和邊((Edge)組組成,所所以可形形式化地地用G=(V,E))代表一個個圖。圖圖中的結(jié)結(jié)點稱為為頂點,,頂點之之間的連連線代表表邊。圖圖結(jié)構(gòu)24圖(Graph)是由由非空的的頂點集集合和一一個描述述頂點之之間關(guān)系系――邊邊(或者者弧)的的集合組組成。其形式化化定義為為:G==(V,,E)V={vi|vi∈∈dataobject}E={(vi,vj)|vi,vj∈V∧P(vi,vj)}其中,G表示一一個圖,,V是圖圖G中頂頂點的集集合,E是圖G中邊的的集合,,集合E中P(vi,vj)表示頂頂點vi和頂點點vj之之間有一一條直接接連線,,即偶對對(vi,vj)表示示一條邊邊。圖圖結(jié)構(gòu)25下圖(無無向圖G1)給給出了一一個圖的的示例,,在該圖圖中:集合V=={v1,v2,v3,v4};集合E=={(v1,v3),(v1,v4),(v2,v3),(v2,v4),(V3,V4)}圖圖結(jié)構(gòu)26如果數(shù)據(jù)據(jù)結(jié)構(gòu)中中,數(shù)據(jù)據(jù)元素之之間不考考慮關(guān)系系問題((無前趨趨/后繼繼之分)),則稱稱這種結(jié)結(jié)構(gòu)為集合。在集合合中,各各元素是是“平等等”的,,它們的的共同關(guān)關(guān)系是::都屬于于同一個個集合。。集合276.3算算法算算法的特特性算法是對對問題求求解過程程的一種種描述,,是為解解決一個個或一類類問題給給出的一一個確定定的、有有限長的的操作序序列。1.有窮窮性2.確定定性3.可行行性4.有輸輸入5.有輸輸出28算法的五五個特性性(1)有窮性::對任何合合法的輸輸入值,,一個算算法必須須總是在在執(zhí)行有有窮步之之后結(jié)束束,且每每一步都都可在有有窮時間間內(nèi)完成成;(2)確定性::算法中每每一條指指令必須須有確切切的含義義,不會會產(chǎn)生二二義性,,對于相相同的輸輸入只能能得出相相同的輸輸出。(3)可行性::即算法中中描述的的操作都都可以通通過已經(jīng)經(jīng)實現(xiàn)的的基本運(yùn)運(yùn)算執(zhí)行行有限次次來實現(xiàn)現(xiàn)的。(4)輸入:一個算法法有0個個或多個個輸入,,這些輸輸入取自自于某個個特定的的數(shù)據(jù)對對象的集集合,它它可以使使用輸入語句句從外部提提供,也也可以在在算法內(nèi)內(nèi)通過賦初值給定。(5)輸出:一個算法法有一個個或多個個的輸出出,這些些輸出是是同輸入入有著某某些特定定關(guān)系的的量。29在設(shè)計算算法時,,通常應(yīng)應(yīng)考慮以以下原則則:首先設(shè)計計的算法法必須是是“正確的”其次應(yīng)有有很好的的“可讀性”,還必必須具有有“健壯性”最后還應(yīng)應(yīng)考慮所所設(shè)計算算法的復(fù)復(fù)雜性,,即有““高效率與與低存儲儲量”。什什么是““好”的的算法30算法的正正確性所謂算法法的正確性,也稱可可靠性或或有效性性,是指指:程序不含含語法錯錯誤。程序?qū)τ谟趲捉M輸輸入的數(shù)數(shù)據(jù)能夠夠得出滿滿足規(guī)格格說明要要求的結(jié)結(jié)果。程序?qū)τ谟诰倪x選擇的典典型、苛苛刻而帶帶有刁難難性的幾幾組輸入入數(shù)據(jù)能能夠得出出滿足規(guī)規(guī)格說明明要求的的結(jié)果。。程序?qū)τ谟谝磺泻虾戏ǖ妮斴斎霐?shù)據(jù)據(jù)都能產(chǎn)產(chǎn)生滿足足規(guī)格說說明要求求的結(jié)果果。31在算法是是正確的的前提下下,算法法的可讀性是擺在第第一位的的??勺x讀性好有有助于人人們對算算法的理理解,難難懂的程程序易隱隱藏較多多錯誤,,難以調(diào)調(diào)試和修修改。算法的效率指的是算算法執(zhí)行行時計算算機(jī)資源源的消耗耗,它包包括運(yùn)行行時間代代價和存存儲空間間代價。。算法的健壯性指的是,,算法應(yīng)應(yīng)對非法法輸入的的數(shù)據(jù)做做出恰當(dāng)當(dāng)反映或或進(jìn)行相相應(yīng)處理理。它強(qiáng)強(qiáng)調(diào)的是是,如果果輸入非非法數(shù)據(jù)據(jù)時,算算法應(yīng)能能加以識識別并做做出處理理,而不不是產(chǎn)生生誤動作作或陷入入癱瘓。。32算法的復(fù)復(fù)雜性是是算法運(yùn)運(yùn)行所需需要的計計算機(jī)資資源的量量。算法法的復(fù)雜雜性是算算法效率率的度量量,是評評價算法法優(yōu)劣的的重要依依據(jù)。算法的復(fù)復(fù)雜性有有時間復(fù)雜雜性和空間復(fù)雜雜性之分。需要的時時間資源源的量,,即算法法的運(yùn)行行速度,,稱作時間復(fù)雜雜性。需要的空空間(即即存儲器器)資源源的量稱稱作空間復(fù)雜雜性。算算法復(fù)雜雜性331.自然然語言自然語言言是人們們?nèi)粘K玫恼Z語言,如如漢語、、英語、、德語等等。例如,求求3個數(shù)中中最大者者的問題題,可以以描述為為:①比較較前兩個個數(shù)。②將①①中較大大的數(shù)與與第三個個數(shù)進(jìn)行行比較。。③步驟驟②中較較大的數(shù)數(shù)即為所所求。算算法的表表示342.流程程圖流程圖是是描述算算法的常常用工具具。它采采用美國國國家標(biāo)標(biāo)準(zhǔn)化協(xié)協(xié)會ANSI((AmericanNationalStandardInstitute)規(guī)定定的一組組圖形符符號來表表示算法法起止框判斷框處理框輸入/輸出框注釋框流向線連接點353.偽代代碼偽代碼是是用介于于自然語語言和計計算機(jī)語語言之間間的文字字和符號號來描述述算法的的工具。。它不用用圖形符符號,因因此書寫寫方便格格式緊湊湊,易于于理解,,便于向向計算機(jī)機(jī)程序設(shè)設(shè)計語言言過渡。。例:求兩兩個數(shù)的的較大者者,用偽偽代碼描描述算法法如下::FindthebiggerInput:twonumbers:a,b1.if(thefirstnumberaisgreaterthanorequaltothesecondnumberb)then1.1returnaelse1.2returnbendifend364.計算算機(jī)程序序設(shè)計語語言一般而言言,計算算機(jī)程序序設(shè)計語語言描述述的算法法是清晰晰的、簡簡明的,,最終也也能由計計算機(jī)處處理的,,然而也也不是完完善無缺缺。它需需要設(shè)計計者用特特定程序序設(shè)計語語言編寫寫的算法法,限制制了與他他人的交交流;容容易陷入入描述計計算步驟驟的細(xì)節(jié)節(jié)而忽視視算法的的本質(zhì)。。376.4程程序設(shè)設(shè)計方法法計計算機(jī)程程序的性性質(zhì)計算機(jī)程序包包含兩方面的的內(nèi)容:對象及對象之之間關(guān)系(數(shù)數(shù)據(jù)結(jié)構(gòu));;描述對這些對對象進(jìn)行處理理的加工規(guī)則則(算法)。。38目的性—程序有明確確的目的,程程序運(yùn)行時能能完成賦予它它的功能。分步性—程序為完成成其復(fù)雜的功功能,由一系系列計算機(jī)可可執(zhí)行的步驟驟組成。有序性—程序的執(zhí)行行步驟是有序序的,不可隨隨意改變程序序步驟的執(zhí)行行順序。有限性—程序是有限限的指令序列列,程序所包包含的步驟是是有限的。操作性—有意義的程程序總是對某某些對象進(jìn)行行操作,使其其改變狀態(tài),,完成其功能能。計算機(jī)程序具具有以下性質(zhì)質(zhì):39數(shù)據(jù)結(jié)構(gòu)是數(shù)數(shù)據(jù)構(gòu)造的邏邏輯表示形式式,算法是處處理問題的方方法和步驟,,最后問題的的解由計算機(jī)機(jī)程序給出。。這是程序員員在程序設(shè)計計時應(yīng)考慮的的主要問題。。程程序設(shè)計計與數(shù)據(jù)結(jié)構(gòu)構(gòu)、算法之間間的關(guān)系401.程序的控制結(jié)結(jié)構(gòu)一個可以用順序、選擇、、循環(huán)和跳轉(zhuǎn)轉(zhuǎn)(如goto語句)四種程程序結(jié)構(gòu)解決決的問題,也也一定能用順順序、選擇、、循環(huán)三種程程序結(jié)構(gòu)解決決。但確實存在這這樣的問題,,它可以用順順序、選擇、、循環(huán)三種程程序結(jié)構(gòu)解決決,但不能用用其中任何兩兩種解決。換句話說,順順序、選擇、、循環(huán)三種程程序結(jié)構(gòu)構(gòu)成成了一個最小小完備集。我我們將這三種種程序結(jié)構(gòu)叫叫基本程序結(jié)構(gòu)構(gòu)。結(jié)結(jié)構(gòu)化程序序設(shè)計41三種基本結(jié)構(gòu)構(gòu)的圖示:順序結(jié)構(gòu)選擇結(jié)構(gòu)42循環(huán)結(jié)構(gòu)的圖圖示:當(dāng)型(While型)循循環(huán)結(jié)構(gòu)直到型(Until型)循環(huán)43順序程序設(shè)計計44分支結(jié)構(gòu)45循環(huán)結(jié)構(gòu)462.結(jié)構(gòu)化程程序設(shè)計方法法結(jié)構(gòu)化程序設(shè)設(shè)計方法主要要包括程序結(jié)結(jié)構(gòu)的自頂向向下和模塊化化設(shè)計方法。。47程序設(shè)計的一一般步驟如下下:1.分析問題題對要解決的問問題,首先必必須分析清楚楚,明確題目目的要求,列列出所有已知知量,找出題題目的求解范范圍、解的精精度等。2.建立數(shù)學(xué)學(xué)模型對實際問題進(jìn)進(jìn)行分析之后后,找出它的的內(nèi)在規(guī)律,,就可以建立立數(shù)學(xué)模型。。只有建立了了模型的問題題,才能可能能利用計算機(jī)機(jī)來解決。3.確定算法法建立數(shù)學(xué)模型型后,還不能能著手編程序序,必須根據(jù)據(jù)數(shù)據(jù)結(jié)構(gòu),,確定解決問問題的算法。。一般確定算算法要注意::算法的邏輯結(jié)結(jié)構(gòu)盡可能簡簡單;算法所要求的的存貯量應(yīng)盡盡可能少;在滿足題目條條件要求下,,使所需的計計算量最小。程程序設(shè)計的的步驟484.編寫程序序把整個程序看看作一個整體體,先全局后后局部,自頂頂向下,一層層一層分解處處理,如果某某些子問題的的算法相同而而僅參數(shù)不同同,可以用子子程序來表示示。5.調(diào)試運(yùn)行行;6.分析結(jié)果果;7.寫出程序序的文檔主要是對程序序中的變量、、函數(shù)或過程程作必要的說說明,解釋編編程思路,需需要時給出程程序流程圖,,并討論運(yùn)行行結(jié)果。499、靜夜四無無鄰,荒居居舊業(yè)貧。。。1月-231月-23Sunday,January1,202310、雨中中黃葉葉樹,,燈下下白頭頭人。。。20:48:1820:48:1820:481/1/20238:48:18PM11、以我我獨沈沈久,,愧君君相見見頻。。。1月-2320:48:1820:48Jan-2301-Jan-2312、故人江海別別,幾度隔山山川。。20:48:1920:48:1920:48Sunday,January1,202313、乍見翻翻疑夢,,相悲各各問年。。。1月-231月-2320:48:1920:48:19January1,202314、他鄉(xiāng)生白白發(fā),舊國國見青山。。。01一月月20238:48:19下下午20:48:191月-2315、比不了了得就不不比,得得不到的的就不要要。。。。一月238:48下午午1月-2320:48January1,202316、行動動出成成果,,工作作出財財富。。。2023/1/120:48:1920:48:1901January202317、做前,能夠夠環(huán)視四周;;做時,你只只能或者最好好沿著以腳為為起點的射線線向前。。8:48:19下午8:48下下午20:48:191月-239、沒有失敗敗,只有暫暫時停止成成功!。1月-231月-23Sunday,January1,202310、很很多多事事情情努努力力了了未未必必有有結(jié)結(jié)果果,,但但是是不不努努力力卻卻什什么么改改變變也也沒沒有有。。。。20:48:1920:48:1920:481/1/20238:48:19PM11、成功就就是日復(fù)復(fù)一日那那一點點點小小努努力的積積累。。。1月-2320:48:1920:48Jan-2301-Jan-2312、世間成成事,不不求其絕絕對圓滿滿,留一一份不足足,可得得無限完完美。。。20:48:1920:48:1920:48Sunday,January1,202313、不知知香積積寺,,數(shù)里里入云云峰。。。1月-231月-2320:48:1920:48:19January1,202314、意意志志堅堅強(qiáng)強(qiáng)的的人人能能把把世世
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療機(jī)構(gòu)廁所翻新合同樣本
- 煙草種植園教育培訓(xùn)合同
- 糖尿病防治診所護(hù)士勞動合同
- 節(jié)慶裝飾租賃合同樣本
- 農(nóng)場交易合同休閑農(nóng)業(yè)新機(jī)遇
- 網(wǎng)絡(luò)開發(fā)合同范例
- 垃圾電廠供貨合同范例
- 裝修期限合同范例
- 發(fā)包廚房合同范例
- 公產(chǎn)房購買合同3篇
- 初一分班英語試卷(含答案)
- 現(xiàn)代漢語詞典電子版
- 2023廣東珠海市統(tǒng)計局招聘合同制職員1人(共500題含答案解析)筆試歷年難、易錯考點試題含答案附詳解
- 跨境電商物流與供應(yīng)鏈管理PPT全套完整教學(xué)課件
- 四年級上冊英語說課稿-Module 7 Unit 1 Did you take Amy's doll|外研社(一起)
- 教師資格面試-75篇結(jié)構(gòu)化逐字稿
- 內(nèi)鏡中心減少患者內(nèi)鏡診療等候時間品管圈PDCA匯報
- 學(xué)習(xí)當(dāng)代大學(xué)生國防教育的體會和意義
- CDNL-MR08 高溫試驗測量方法 不確定度評定報告 V1.0
- 康復(fù)中心工作匯報專家講座
- 拓?fù)鋵W(xué)(黑龍江聯(lián)盟)知到章節(jié)答案智慧樹2023年哈爾濱工程大學(xué)
評論
0/150
提交評論