導航:首頁 > 源碼編譯 > 演算法及其基本控制結構說課

演算法及其基本控制結構說課

發布時間:2022-07-11 00:40:42

演算法的三種基本結構是什麼

演算法有順序結構、條件分支結構、循環結構三種基本邏輯結構。

三種基本結構的共同點:

(1)只有一個入口和出口。

(2)結構內的每一部分都有機會被執行到,也就是說對每一個框來說都應當有一條從入口到出口的路徑通過它。

(3)結構內不存在死循環,即無終止的循環。

數據結構演算法具有五個基本特徵:輸入、輸出、有窮性、確定性和可行性。

1、輸入:一個演算法具有零個或者多個輸出,以刻畫運算對象的初始情況,所謂0個輸入是指演算法本身定出了初始條件,後面一句話翻譯過來就是,如果一個演算法本身給出了初始條件,那麼可以沒有輸出。

2、輸出:演算法至少有一個輸出。也就是說,演算法一定要有輸出,輸出的形式可以是列印,也可以使返回一個值或者多個值等,也可以是顯示某些提示。

3、有窮性:演算法的執行步驟是有限的,演算法的執行時間也是有限的。

4、確定性:演算法的每個步驟都有確定的含義,不會出現二義性。

5、可行性:演算法是可用的,也就是能夠解決當前問題。

⑵ 演算法設計要素中的控制結構包含哪幾種請結合生活實際舉例說明各種控制結構

順序結構,條件結構,循環結構。 循環結構又分為直到型循環結構和彎型循環結構。a 是對的 b 中循環條件的判斷是條件結構 c 允許 d 循環語句無法用

⑶ 數學演算法結構

演算法(Algorithm)是指解題方案的准確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。如果一個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。一個演算法的優劣可以用空間復雜度與時間復雜度來衡量。
演算法中的指令描述的是一個計算,當其運行時能從一個初始狀態和(可能為空的)初始輸入開始,經過一系列有限而清晰定義的狀態,最終產生輸出並停止於一個終態。一個狀態到另一個狀態的轉移不一定是確定的。隨機化演算法在內的一些演算法,包含了一些隨機輸入。
形式化演算法的概念部分源自嘗試解決希爾伯特提出的判定問題,並在其後嘗試定義有效計算性或者有效方法中成形。這些嘗試包括庫爾特·哥德爾、Jacques Herbrand和斯蒂芬·科爾·克萊尼分別於1930年、1934年和1935年提出的遞歸函數,阿隆佐·邱奇於1936年提出的λ演算,1936年Emil Leon Post的Formulation 1和艾倫·圖靈1937年提出的圖靈機。即使在當前,依然常有直覺想法難以定義為形式化演算法的情況。
一個演算法應該具有以下五個重要的特徵:

有窮性
(Finiteness)
演算法的有窮性是指演算法必須能在執行有限個步驟之後終止;

確切性
(Definiteness)
演算法的每一步驟必須有確切的定義;

輸入項
(Input)
一個演算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指演算法本身定出了初始條件;

輸出項
(Output)
一個演算法有一個或多個輸出,以反映對輸入數據加工後的結果。沒有輸出的演算法是毫無意義的;

可行性
(Effectiveness)
演算法中執行的任何計算步驟都是可以被分解為基本的可執行的操作步,即每個計算步都可以在有限時間內完成(也稱之為有效性)。
一、數據對象的運算和操作:計算機可以執行的基本操作是以指令的形式描述的。一個計算機系統能執行的所有指令的集合,成為該計算機系統的指令系統。一個計算機的基本運算和操作有如下四類:[1]
1.算術運算:加減乘除等運算
2.邏輯運算:或、且、非等運算
3.關系運算:大於、小於、等於、不等於等運算
4.數據傳輸:輸入、輸出、賦值等運算[1]
二、演算法的控制結構:一個演算法的功能結構不僅取決於所選用的操作,而且還與各操作之間的執行順序有關。
演算法可大致分為基本演算法、數據結構的演算法、數論與代數演算法、計算幾何的演算法、圖論的演算法、動態規劃以及數值分析、加密演算法、排序演算法、檢索演算法、隨機化演算法、並行演算法,厄米變形模型,隨機森林演算法。
演算法可以宏泛地分為三類:
一、有限的,確定性演算法 這類演算法在有限的一段時間內終止。他們可能要花很長時間來執行指定的任務,但仍將在一定的時間內終止。這類演算法得出的結果常取決於輸入值。
二、有限的,非確定演算法 這類演算法在有限的時間內終止。然而,對於一個(或一些)給定的數值,演算法的結果並不是唯一的或確定的。
三、無限的演算法 是那些由於沒有定義終止定義條件,或定義的條件無法由輸入的數據滿足而不終止運行的演算法。通常,無限演算法的產生是由於未能確定的定義終止條件。
希望我能幫助你解疑釋惑。

⑷ 演算法的基本要素有哪些

演算法通常由兩種基本要素組成分別是對數據對象的運算和操作;演算法的控制結構,即運算或操作間的順序。
演算法是指解題方案的准確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。如果一個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。一個演算法的優劣可以用空間復雜度與時間復雜度來衡量。演算法中的指令描述的是一個計算,當其運行時能從一個初始狀態和(可能為空的)初始輸入開始,經過一系列有限而清晰定義的狀態,最終產生輸出並停止於一個終態。一個狀態到另一個狀態的轉移不一定是確定的。隨機化演算法在內的一些演算法,包含了一些隨機輸入。

⑸ 演算法由某些基本成分組成,這些基本成分是一些基本的操作和控制結構,給出一種最基本的控制結構

??怎麼沒有給出來啊?通常的計算機程序總是由若干條語句組成,從執行方式上看,從第一條語句到最後一條語句完全按順序執行,是簡單的順序結構;若在程序執行過程當中,根據用戶的輸入或中間結果去執行若干不同的任務則為選擇結構;如果在程序的某處,需要根據某項條件重復地執行某項任務若干次或直到滿足或不滿足某條件為止,這就構成循環結構。大多數情況下,程序都不會是簡單的順序結構,而是順序、選擇、循環三種結構的復雜組合。三種基本結構的流程圖、N-S圖以及PAD圖可以參看本書第1章1.4節「演算法」相關內容。如:在C語言中,有一組相關的控制語句,用以實現選擇結構與循環結構:選擇控制語句:if;switch、case循環控制語句:for、while、dowhile轉移控制語句:break、continue、goto

⑹ 初中數學說課稿/初中數學說課怎麼說

說課就是教師口頭表述具體課題的教學設想及其理論依據,也就是授課教師在備課的基礎上,面對同行或教研人員,講述自己的,然後由聽者評說,達到互相交流,共同提高的目的的一種教學研究和師資培訓的活動。下面我們來看看數學說課稿怎麼寫。
一、說教材
(一)教材的地位與作用
《順序結構與選擇結構》選自北師大版初中數學必修三第二章第二節第一課時的內容,本節課之前學生已經學習了什麼是演算法,演算法的初步知識。本節課是在這些知識的基礎上進一步介紹演算法的相關知識即循序結構與選擇結構的知識。這為後面學習其他的演算法奠定了基礎,因此本節課在高中數學中起到了承上啟下的作用。
(二)教學目標
知識與技能:了解演算法框圖的概念,掌握各種框圖符號的功能。了解順序結構和選擇結構的概念,能用演算法框圖表示順序結構和選擇結構。
過程與方法:通過學習演算法框圖的各個符號功能,培養學生對圖形符號語言和數學文字語言的轉換能力。通過模仿、操作、探索,經歷設計演算法框圖表達解決問題的過程,在具體問題的解決過程中理解流程圖的結構。
情感態度價值觀:學生通過動手,用程序框圖表示演算法,進一步體會演算法的基本思想,體會數學表達的准確與簡潔,培養學生的數學表達能力和邏輯思維能力。
(三)教學重難點
教學重點:各種程序框圖功能,演算法的順序結構與選擇結構。
教學難點:選擇結構的演算法框圖
二、說學情
學生已經具備的基本的數學基礎知識,對演算法已經有了初步的認識,但是對知識的深層次的理解還需要進一步的提升。這一階段的學生求知慾與好奇心強,有了抽象思維的能力,但是由於高中數學知識復雜,需要學生多動手、多動腦、感受知識的形成於發展過程。
三、說教法
教法上,本著「教師為主導,學生為主體,問題解決為主線,能力發展為目標」的教學思想。知識的學習不是一個「授予——吸收」的過程,而是學習者主動的建構的過程,而且這一階段學生已經具備了基礎知識和技能,因此,本節課我主要採用「誘思探究」的教法。藉助學生已有的知識引出新知;在知識的獲得過程中,以一系列的問題為主線,採用討論式,引導學生主動探索,自己建構新知識,通過層層深入的例題配置,使學生的思路逐步開闊,提高解決問題的能力。
四、說學法
教為了不教,在教知識的同時最關鍵的是要教給學生學習的方法,讓學生在學中領悟、會中用法。這樣才有利於學生全面素質的提高。根據本節教材的特點,採用學生課前預習、查閱資料、課堂閱讀、討論總結、梳理推導、歸納概括等學習方法,為學生提供大量參與教學活動的機會,積極思維,充分體現教學活動中學生的主體地位。
五、說教學過程
(一)直接點題,導入新課
用自然語言表示演算法步驟有明確的順序性,但是對於在一定條件下才會被執行的步驟,以及在一定條件下會被重復執行的步驟,自然語言的表示就顯得困難,而且不直觀、不準確。因此,本節課有必要探究使演算法表達得更加直觀、准確的方法。今天我們開始學習演算法框圖。有認知上的沖突,從而引入新知,導入本節課。
(二)引入新知,奠定基礎
1.自主學習
教師提問導學案上自主學習的問題,學生回答
(1)演算法和演算法框圖的概念
(2)程序框的名稱和功能
(3)演算法的結構及其演算法框圖
通過復習,加深了對知識的理解,為本節課的學習奠定了基礎。
2.合作探究
(1)順序結構的演算法框圖案例例1
(2)選擇結構的演算法框圖案例例2
學生按分組情況合作探究,叫學生上黑板板書探究結果,同學先糾正前面學生板書的問題
教師最後糾正和評價
給學生提供合作探究的環境,培養學生動手實踐的能力,糾正學生存在的問題
(三)鞏固練習
遵循課本難度,設計一組習題,幫助學生全面理解概念,克服難點。並將概念中的幾個要點分散到每個題目中,有利於學生掌握。
讓學生體驗正確運用所學知識自主探求問題的方法,激發學生獲取新知識的興趣,為進一步學習新知識作準備。
(四)總結反思
在教師啟發誘導下,學生觀察、歸納、總結,教師完善,讓學生積極發言,歸納總結本節課的收獲,教師及時點評並歸納總結,使學生對所學內容有一個整體的認識。
讓學生回顧本節所學知識與方法,以逐步提高學生自我獲取知識的能力,有利於發現教與學中存在的問題,並及時反饋糾正,使知識結構更系統,更完善。
(五)布置作業
為了滿足不同層次學生需要,我設計了兩個層次的作業,
一是必做題,課後題的1,2,鞏固本節課所學的知識,學會應用
二是選做題,自己設計一個選擇結構的框圖

⑺ 計算機演算法的三種基本結構

演算法有順序結構、條件分支結構、循環結構三種基本邏輯結構。

1、順序結構

序貫結構是最簡單的演算法結構,在語句之間、框之間自上而下進行。它由依次執行的幾個處理步驟組成。

它是任何演算法都不能缺少的基本演算法結構。方框圖中的順序結構是將程序框從上到下與流水線連接,按順序執行演算法步驟。

2、條件分支結構

條件結構是指通過判斷演算法中的條件,根據條件是否為真來選擇不同流向的演算法結構。

如果條件P為真,則選擇執行框A或框B。無論P條件是否為真,只能執行A盒或B盒中的一個。不可能同時執行盒子A和B,盒子A和B不執行也是不可能的。一個判斷結構可以有多個判斷框。

3、循環結構

在某些演算法中,經常會出現某一處理步驟按照某一條件從某一地點重復執行的情況。這就是循環結構。重復執行的處理步驟是循環體,顯然,循環結構必須包含條件結構。循環結構又稱重復結構,可分為兩類:

一種是當循環結構,功能是P時形成時給定的條件下,執行一個盒子,一個盒子在執行後,確定條件P,如果仍然設置和執行一個盒子,等等來執行一個盒子,直到一個條件P並不不再執行一個盒子,這個時候離開循環結構。

另一種類型是直到型循環結構,作用是先執行,然後判斷給定條件P是否為真。如果P仍然不為真,將繼續執行盒子A,直到給定條件P為真一段時間。

(7)演算法及其基本控制結構說課擴展閱讀:

共同特徵

1、只有一個入口和出口

2、結構的每個部分都有執行的機會,即對於每個盒子,應該有一個從入口到出口的路徑。如圖A所示,從入口到出口沒有經過它的路徑,這是不符合要求的演算法結構。

3、結構中不存在死循環,即沒有結束循環。

⑻ 結構化設計方法及編程語言有何特點它們有哪幾種基本控制結構

結構化程序的概念首先是從以往編程過程中無限制地使用轉移語句而提出的。轉移語句可以使程序的控制流程強制性的轉向程序的任一處,在傳統流程圖中,就是用上節我們提到的"很隨意"的流程線來描述這種轉移功能。如果一個程序中多處出現這種轉移情況,將會導致程序流程無序可尋,程序結構雜亂無章,這樣的程序是令人難以理解和接受的,並且容易出錯。尤其是在實際軟體產品的開發中,更多的追求軟體的可讀性和可修改性,象這種結構和風格的程序是不允許出現的。為此提出了程序的三種基本結構。

在討論演算法時我們列舉了程序的順序、選擇和循環三種控制流程,這就是結構化程序設計方法強調使用的三種基本結構。演算法的實現過程是由一系列操作組成的,這些操作之間的執行次序就是程序的控制結構。1996年,計算機科學家Bohm和Jacopini證明了這樣的事實:任何簡單或復雜的演算法都可以由順序結構、選擇結構和循環結構這三種基本結構組合而成。所以,這三種結構就被稱為程序設計的三種基本結構。也是結構化程序設計必須採用的結構。

1. 順序結構
順序結構表示程序中的各操作是按照它們出現的先後順序執行的,其流程如圖1-6所示。圖中的s1和s2表示兩個處理步驟,這些處理步驟可以是一個非轉移操作或多個非轉移操作序列,甚至可以是空操作,也可以是三種基本結構中的任一結構。整個順序結構只有一個入口點a和一個出口點b。這種結構的特點是:程序從入口點a開始,按順序執行所有操作,直到出口點b處,所以稱為順序結構。上一節圖1-2表示的就是一個順序結構的流程圖。事實上,不論程序中包含了什麼樣的結構,而程序的總流程都是順序結構的。例如,在圖1-3、圖1-4和圖1-5所表示的流程圖中,其總體結構流程都是自上而下順序執行的。

2.選擇結構
選擇結構表示程序的處理步驟出現了分支,它需要根據某一特定的條件選擇其中的一個分支執行。選擇結構有單選擇、雙選擇和多選擇三種形式。
雙選擇是典型的選擇結構形式,其流程如圖1-8所示,圖中的s1和s2與順序結構中的說明相同。由圖中可見,在結構的入口點a處是一個判斷框,表示程序流程出現了兩個可供選擇的分支,如果條件滿足執行s1處理,否則執行s2處理。值得注意的是,在這兩個分支中只能選擇一條且必須選擇一條執行,但不論選擇了哪一條分支執行,最後流程都一定到達結構的出口點b處。前面的圖1-3中就採用了雙選擇結構流程圖。

當s1和s2中的任意一個處理為空時,說明結構中只有一個可供選擇的分支,如果條件滿足執行s1處理,否則順序向下到流程出口b處。也就是說,當條件不滿足時,什麼也沒執行,所以稱為單選擇結構,如圖1-7所示。

多選擇結構是指程序流程中遇到如圖1-9所示的s1、s2、……、sn等多個分支,程序執行方向將根據條件確定。如果滿足條件1則執行s1處理,如果滿足條件n則執行Sn處理,總之要根據判斷條件選擇多個分支的其中之一執行。不論選擇了哪一條分支,最後流程要到達同一個出口處。如果所有分支的條件都不滿足,則直接到達出口。有些程序語言不支持多選擇結構,但所有的結構化程序設計語言都是支持的,C語言是面向過程的結構化程序設計語言,它可以非常簡便的實現這一功能。本書在第五章將詳細介紹各種形式的選擇結構應用問題。

3.循環結構
循環結構表示程序反復執行某個或某些操作,直到某條件為假(或為真)時才可終止循環。在循環結構中最主要的是:什麼情況下執行循環?哪些操作需要循環執行?循環結構的基本形式有兩種:當型循環和直到型循環,其流程如圖1-10所示。圖中虛線框內的操作稱為循環體,是指從循環入口點a到循環出口點b之間的處理步驟,這就是需要循環執行的部分。而什麼情況下執行循環則要根據條件判斷。

當型結構:表示先判斷條件,當滿足給定的條件時執行循環體,並且在循環終端處流程自動返回到循環入口;如果條件不滿足,則退出循環體直接到達流程出口處。因為是"當條件滿足時執行循環",即先判斷後執行,所以稱為當型循環。其流程如圖1-10(a)所示。
直到型循環:表示從結構入口處直接執行循環體,在循環終端處判斷條件,如果條件不滿足,返回入口處繼續執行循環體,直到條件為真時再退出循環到達流程出口處,是先執行後判斷。因為是"直到條件為真時為止",所以稱為直到型循環。其流程如圖1-10(b)所示。本章圖1-5用迭代法求和的流程圖就是一個典型的直到型循環結構。
同樣,循環型結構也只有一個入口點a和一個出口點b,循環終止是指流程執行到了循環的出口點。圖中所表示的S處理可以是一個或多個操作,也可以是一個完整的結構或一個過程。

整個虛線框中是一個循環結構。
通過三種基本控制結構可以看到,結構化程序中的任意基本結構都具有唯一入口和唯一出口,並且程序不會出現死循環。在程序的靜態形式與動態執行流程之間具有良好的對應關系。

1.3.2 N-S流程圖

N-S流程圖是結構化程序設計方法中用於表示演算法的圖形工具之一。對於結構化程序設計來說,傳統流程圖已很難完全適應了。因為傳統流程圖出現得較早,它更多地反映了機器指令系統設計和傳統程序設計方法的需要,難以保證程序的結構良好。另外,結構化程序設計的一些基本結構在傳統流程圖中沒有相應的表達符號。例如,在傳統流程圖中,循環結構仍採用判斷結構符號來表示,這樣不易區分到底是哪種結構。特別是傳統流程圖由於轉向的問題而無法保證自頂而下的程序設計方法,使模塊之間的調用關系難以表達。為此,兩位美國學者Nassi和Shneiderman於1973年就提出了一種新的流程圖形式,這就是N-S流程圖,它是以兩位創作者姓名的首字母取名,也稱為Nassi Shneiderman圖。

N-S圖的基本單元是矩形框,它只有一個入口和一個出口。長方形框內用不同形狀的線來分割,可表示順序結構、選擇結構和循環結構。在N-S流程圖中,完全去掉了帶有方向的流程線,程序的三種基本結構分別用三種矩形框表示,將這種矩形框進行組裝就可表示全部演算法。這種流程圖從表達形式上就排除了隨意使用控制轉移對程序流程的影響,限制了不良程序結構的產生。
與順序、選擇和循環這三種基本結構相對應的N-S流程圖的基本符號如圖1-11所示。圖1-11(a)和圖1-11(b)分別是順序結構和選擇結構的N-S圖表示,圖1-11(c)和圖1-11(d)是循環結構的N-S圖表示。由圖可見,在N-S圖中,流程總是從矩形框的上面開始,一直執行到矩形框的下面,這就是流程的入口和出口,這樣的形式是不可能出現無條件的轉移情況。下面用N-S流程圖表示前面例1-2中求函數值m的演算法,其流程如圖1-12所示。

值得注意的是,N-S流程圖是適合結構化程序設計方法的圖形工具,對於非結構化的程序,用N-S流程圖是無法表示的。
例如在例1-3中,求任意兩個正整數的最大公約數,其演算法是非常經典的,圖1-5中用傳統流程圖表示了該演算法,但是這個演算法卻無法直接用N-S流程圖表示。因為該演算法的關鍵是執行一個循環結構,但圖1-5表示的循環結構既不是當型循環,也不是直到型循環,這樣,用N-S流程圖就無法表示。如果將例1-3中的演算法稍作調整,使流程圖採用單選擇結構形式,其中的條件改為r≠0,這樣就可以用直到型循環的N-S流程圖表示這個演算法。圖1-13是表示例1-3的N-S流程圖。

N-S流程圖是描述演算法的重要圖形工具之一,在結構化程序設計中得到了廣泛應用。在此僅作簡單介紹,旨在拋磚引玉。在實際軟體開發中,有興趣的讀者可參閱有關軟體工程或軟體開發技術等方面的著作。

1.3.3 結構化程序設計方法

結構化程序設計方法是公認的面向過程編程應遵循的基本方法和原則。結構化程序設計方法主要包括:①只採用三種基本的程序控制結構來編製程序,從而使程序具有良好的結構;②程序設計自頂而下;③用結構化程序設計流程圖表示演算法。

有關結構化程序設計及方法有一整套不斷發展和完善的理論和技術,對於初學者來說,完全掌握是比較困難的。但在學習的起步階段就了解結構化程序設計的方法,學習好的程序設計思想,對今後的實際編程是很有幫助的。

1.結構化程序設計特徵
結構化程序設計的特徵主要有以下幾點:
(1) 以三種基本結構的組合來描述程序;
(2) 整個程序採用模塊化結構;
(3) 有限制地使用轉移語句,在非用不可的情況下,也要十分謹慎,並且只限於在一個結構內部跳轉,不允許從一個結構跳到另一個結構,這樣可縮小程序的靜態結構與動態執行過程之間的差異,使人們能正確理解程序的功能;
(4) 以控制結構為單位,每個結構只有一個入口,一個出口,各單位之間介面簡單,邏輯清晰;
(5) 採用結構化程序設計語言書寫程序,並採用一定的書寫格式使程序結構清晰,易於閱讀;
(6) 注意程序設計風格。

2. 自頂而下的設計方法
結構化程序設計的總體思想是採用模塊化結構,自上而下,逐步求精。即首先把一個復雜的大問題分解為若干相對獨立的小問題。如果小問題仍較復雜,則可以把這些小問題又繼續分解成若乾子問題,這樣不斷地分解,使得小問題或子問題簡單到能夠直接用程序的三種基本結構表達為止。然後,對應每一個小問題或子問題編寫出一個功能上相對獨立的程序塊來,這種象積木一樣的程序塊被稱為模塊。每個模塊各個擊破,最後再統一組裝,這樣,對一個復雜問題的解決就變成了對若干個簡單問題的求解。這就是自上而下,逐步求精的程序設計方法。

確切地說,模塊是程序對象的集合,模塊化就是把程序劃分成若干個模塊,每個模塊完成一個確定的子功能,把這些模塊集中起來組成一個整體,就可以完成對問題的求解。這種用模塊組裝起來的程序被稱為模塊化結構程序。在模塊化結構程序設計中,採用自上而下,逐步求精的設計方法便於對問題的分解和模塊的劃分,所以,它是結構化程序設計的基本原則。

例1-9: 求一元二次方程:
ax2+bx+c=0
的根。
分析:先從最上層考慮,求解問題的演算法可以分成三個小問題,即:輸入問題、求根問題和輸出問題。這三個小問題就是求一元二次方程根的三個功能模塊:輸入模塊M1、計算處理模塊M2和輸出模塊M3。其中M1模塊完成輸入必要的原始數據,M2模塊根據求根演算法求解,M3模塊完成所得結果的顯示或列印。這樣的劃分,使求一元二次方程根的問題變成了三個相對獨立的子問題,其模塊結構如圖1-14所示。
分解出來的三個模塊從總體上是順序結構。其中M1和 M3模塊是完成簡單的輸入和輸出,可以直接設計出程序流程,不需要再分解。而M2模塊是完成求根計算,求根則需要首先判斷二次項系數a是否為0。當a=0時,方程蛻化成一次方程,求根方法就不同於二次方程。如果a≠0,則要根據b2-4ac的情況求二次方程的根。可見M2模塊比較復雜,可以將其再細化成M21和M22兩個子模塊,分別對應一次方程和二次方程的求根,其模塊結構如圖1-15所示。
此次分解後,M21子模塊的功能是求一次方程的根,其演算法簡單,可以直接表示。M22是求二次方程的根,用流程圖表示演算法如圖1-16所示,它由簡單的順序結構和一個選擇結構組成,這就是M22模塊最細的流程表示。然後,按照細化M22模塊的方法,分別將M1、M21和M3的演算法用流程圖表示出來,再分別按圖1-15和圖1-14的模塊結構組裝,最終將得到細化後完整的流程圖。
可見,編製程序與建大樓一樣,首先要考慮大樓的整體結構而忽略一些細節問題,待把整體框架搭起來後,再逐步解決每個房間的細節問題。在程序設計中就是首先考慮問題的頂層設計,然後再逐步細化,完成底層設計。使用自頂向下、逐步細化的設計方法符合人們解決復雜問題的一般規律,是人們習慣接受的方法,可以顯著地提高程序設計的效率。在這種自頂而下、分而治之的方法的指導下,實現了先全局後局部,先整體後細節,先抽象後具體的逐步細化過程。這樣編寫的程序具有結構清晰的特點,提高程序的可讀性和可維護性。

3. 程序設計的風格
程序設計風格從一定意義上講就是一種個人編寫程序時的習慣。而風格問題不象方法問題那樣涉及一套比較完善的理論和規則,程序設計風格是一種編寫程序的經驗和教訓的提煉,不同程度和不同應用角度的程序設計人員對此問題也各有所見。正因為如此,程序設計風格很容易被人們忽視,尤其是初學者。結構化程序設計強調對程序設計風格的要求。因為,程序設計風格主要影響程序的可讀性。一個具有良好風格的程序應當注意以下幾點:
(1) 語句形式化。程序語言是形式化語言,需要准確,無二義性。所以,形式呆板、內容活潑是軟體行業的風范;
(2) 程序一致性。保持程序中的各部分風格一致,文檔格式一致;
(3) 結構規范化。程序結構、數據結構、甚至軟體的體系結構要符合結構化程序設計原則;
(4) 適當使用注釋。注釋是幫助程序員理解程序,提高程序可讀性的重要手段,對某段程序或某行程序可適當加上注釋;
(5) 標識符貼近實際。程序中數據、變數和函數等的命名原則是:選擇有實際意義標識符,以易於識別和理解。要避免使用意義不明確的縮寫和標識符。例如:表示電壓和電流的變數名盡量使用v和i,而不要用a和b。要避免使用類似aa、bb等無直觀意義的變數名。

閱讀全文

與演算法及其基本控制結構說課相關的資料

熱點內容
噴油螺桿製冷壓縮機 瀏覽:578
python員工信息登記表 瀏覽:376
高中美術pdf 瀏覽:160
java實現排列 瀏覽:512
javavector的用法 瀏覽:981
osi實現加密的三層 瀏覽:231
大眾寶來原廠中控如何安裝app 瀏覽:915
linux內核根文件系統 瀏覽:242
3d的命令面板不見了 瀏覽:525
武漢理工大學伺服器ip地址 瀏覽:148
亞馬遜雲伺服器登錄 瀏覽:524
安卓手機如何進行文件處理 瀏覽:70
mysql執行系統命令 瀏覽:929
php支持curlhttps 瀏覽:142
新預演算法責任 瀏覽:443
伺服器如何處理5萬人同時在線 瀏覽:250
哈夫曼編碼數據壓縮 瀏覽:425
鎖定伺服器是什麼意思 瀏覽:383
場景檢測演算法 瀏覽:616
解壓手機軟體觸屏 瀏覽:349