計算機, 程序設計
編程。 基本算法結構
要創建任何程序必備的基本算法設計。 以下是解決問題最簡單的選擇。 它可以用於,例如,對於具有均勻的示例操作。 還有其他類型的:分支和循環。 這將在本文中被覆蓋。 但是,首先你需要了解的算法一般是什麼。
算法
單詞“算法”來自拉丁文algoritmi。 這是什麼意思? 正宗一詞來源於數學,發生在九世紀活動的名稱。 由於論文人Khorezmi人類可能成為熟悉的基本類型的算法設計與一般與一般概念。
拼寫的早期形式獲得通過 - “算法”。 現在,它僅用於在某些情況下。
算法 - 一種方法,該裝置改變原始數據,這發生在分立的步驟。 有了這個概念,每個人的面孔在生活中,不管他是誰。 算法可以被描述為茶和食品,乘法或加法,解方程,等等。D.所有器具,其工作過程是自動化的,通過在處理器存儲器規定明確的步驟進行操作。 這樣的算法被稱為家庭。 還有其他類型。 讓我們來看看他們。
類型的算法
基本的算法結構分為幾種類型,這將在本段進行討論。 它們是什麼?
- 信息。 這樣的算法處理大量數據的工作,但處理在長度和不複雜的小的絕對數量。
- 控制。 這樣的算法的操作與可用來自特定源的信息相關聯。 一旦收到發送特殊信號,以確保設備的運行情況。
- 計算。 不同的是信息的算法描述。工作與少量的數據,但產生較大的工作過程。
事實上,算法精確到最小的細節指令。 然而,並非所有這些數據可以被稱為解釋的概念。 為了理解該算法指令或不是,它應該檢查某些屬性的存在。
的算法性能
所有主要的算法設計必須有他們的行動“聽話”。 考慮更詳細的這個問題。
如果完全跟踪的算法及其屬性的表現,你可以看到,不一定了解他們的成分,不夠清楚,以適應計劃。 得到正確的結果,即使你只是堅持到所需的機械作用。 由此我們可以得出結論,由於缺乏在認識活動意義的,該算法是完全可能的支付計算機的實現。 換句話說,為自動化設備需要該方法的可用性。
什麼樣的屬性必須有一個基本的算法設計精度最高的工作?
- 可理解性。 每個小組應盡可能明確的運行對象。 似乎沒有什麼是容易比,例如,畫一個點在中心,有,但沒有說出來的球隊,這將執行的操作,也無法做到。
- 有效性。 這意味著,這家酒店? 需要取得的結果。 該算法不能不導致某種形式的答案。 由於一個錯誤,你可以得到錯誤的結果,這是預期的,但他的意志。 此外,響應必須一定數量的步驟之後被接收。
- 質量。 所有的算法應該是適用於任何類型的問題。 它們之間它們可以改變輸入數據。
- 確定性。 每個動作應該只有一個含義,而沒有給出衍生解密的可能性。 理想的情況是,無論方案多麼推出,結果應該是在任何時候都一樣。
- 離散。 算法 - 一致的實施步驟。 每一步都是跳過或添加新的不能命令。
- 正確性。 任何算法,適用於任何類型的任務,必須是每個人都正確。 在編程中,經常有問題,是不是在寫步驟,這往往不需要大量的時間,並在開展各種問題。 因此,一個重要的步驟將是調試算法。 可以用這個和基本算法設計幫助,其中的重複會導致更好的結果。
算法說明
如果我們談論如何編寫算法,它應突出以下內容:
- 言語。 換句話說,在語言,這是方便說話分量。
- 表。 從邏輯上講,該算法是寫在表中,並作為一項規則,被用作輔助部件。
- 公式語言。 基礎採取口頭izyasneniya的方法,但這種行為也記錄字符或數學公式。
- 圖形。 這種算法是用一種特殊的語言流程圖。
有必要澄清的最後一點。 什麼是流程圖? 此線性或非線性算法,其中使用的是特殊的單位寫入的步驟。 他們有自己的配置,目的和功能。 在本說明書中的情況下,該算法寫入框圖,它們是相互連接的線。 他們還必須寫一個特定的動作(步驟)。
算法設計
有些人認為,算法不具有3種類型,和4基本算法設計:線性,分枝狀,環狀。 什麼是這種誤解的原因,目前尚不清楚。 然而,對於簡單的解決方案,以使用計算機算法這三個相當大的群體複雜的問題。 讓我們來看看他們。
- 線性。 這個計算過程得到這個名稱由於其中,每個步驟中進行一次以上的事實,所有操作都在一個線性序列進行。 如果我們考慮問題的方案,然後將其放置塊一個在另一個之上,根據序列號的性能。 線性算法,以這樣的方式,原來的數據不會改變的方向和行動感的工作。 這樣的解決方案適合於計算所述和或差的方法,正方形形狀,或它的周長,並依此類推。N.算法設計的主要類型是完全的。
- 分支。 這個計算過程意味著邏輯表達的存在(在LP)和條件進行選擇(分支“假”和“真”)。 在每一種情況下,只有實現了兩個或兩個以上的球隊之一。 沒有問題,是不可能的,將實施仍然其他選項。 如果算法的兩個分支,它很簡單,如果兩個以上 - 複雜。 後一種方法似乎很容易在第一的代價。 算法設計的主要類型是第一點和第二個。 下面的表格也包括在這個名單。
- 週期性的。 該算法將必然元件是重複的,在使用不同的輸入數據。 換言之,這樣的處理被稱為一個週期。
應當注意的是,所有的主要算法設計(以下,分支,循環)互相連接,儘管它們可以單獨使用。
創建循環及其類型
怎樣才能創建一個循環?
- 循環計數器。 這是一個變量,它定義為初始值,並且它將改變動作的重複。 它必然進入的算法。 框架式工作的基本算法的建設,否則將不會。
- 更改索引上面的數據之前,新的重複的週期。
- 檢查條件的計算機決定是否再次“滾動”循環以上沒有必要。
週期可以是確定性和反复。 第一個是與已知的重複次數的一個重做。 迭代週期 - 一個是反复不定的時間量,直到條件是真還是假。
基本算法
這是值得記住的是,基本算法的結構不包括基本算法。 這是什麼? 這個概念不再在現代文學中,但這並不意味著它不再存在。 鑑於問題的解決可能遇到的幾個分支或重複,得出以下結論。 基本算法的結構(線性,支鏈,環狀)是鹼性的。 事實上,它們代表的每個所謂的指令“結構單元”。
線性算法
如從上面清楚,一個算法是線性的和非線性的。 考慮在第一實施例。 為什麼他們打電話了嗎? 一切都非常簡單。 事實是,所有在該算法發揮的行動,顯然是一貫執行的所有步驟都嚴格此起彼伏。 通常情況下,這些任務是小的,複雜的低水平。
線性算法的示例可以是製備茶的方法:
- 將水倒入鍋中。
- 放到爐子上的水壺燒開。
- 就拿杯子。
- 倒入一杯茶。
- 加了糖。
- 滾燙的水後倒入杯中。
- 拿勺子。
- 攪拌糖。
編程的基本算法結構-重足問題,但如果它是一個 線性算法, 它往往是很容易實現他們。
分支算法
如何理解該算法是分支? 這足以確保您有作用的兩個或更多的課程,視或失效條件下的性能進行選擇。 每個路徑被稱為一個分支。
分支算法的主要特點是條件分支的存在。 它測試表達式真相或謊言期間發生。
典型地,所述邏輯表達式被表示標誌“小於”,“多”,“小於或等於”,“大於或等於”,“相等”,“不相等”。 有時存在其中條件是由命令的裝置和(U)或(或者)彼此相關聯的選項。
這樣的算法的示例可以是解決以下問題:如果表達式((X + 3)/ 1)等於一個正數,則在屏幕上顯示的結果,如果為負 - 以通知用戶有關該錯誤。
在實踐中足夠簡單,使用基本的算法設計。 分支是求解最常用的方法之一。
確定性循環或週期計數器
計數器的週期 - 週期,其包括具有一定步長值變化的變量。 步驟由用戶定義或編寫軟件時由程序員規定。 大多數語言的這個週期的使用操作員。
到程序顯示兩行4次:
- “你怎麼樣?”
- “好了,謝謝你!”
- “你怎麼樣?”
- “好了,謝謝你!”
您必須創建一個確定性的週期。 如何看待? 我們使用的設計更好的感知語言“帕斯卡”。
1.對於i:= 1到2做:
- i是計數器循環,它確定在一個循環重複的次數。
2.開始(開捲曲支架固定到兩個短語是人體循環和重複在一起。)
3. Writeln('你好嗎?'):
- 這個詞的意思writeln結論的短語在單引號之中。
4. Writeln(“很好,謝謝!')。
5.結束。
6. I:= I + 1。
正如你所看到的,很容易的,甚至是有趣的使用基本的算法設計。 基本算法確實眾所周知,沒有他們就不可能寫程序。
週期與後置條件
週期與後置條件可以重複的動作的不確定數目的不插入操作者括號或複合詞。 他將至少執行一次。 直到條件為假據工作循環。 他停在正確的指標形成。 在這個算法它是建立。 在這個特殊的步伐這類工作的基本算法建設。
為了實現這一週期的需要設計一個重複直到B.字面意思是“重複步驟,直到條件為假。” 數據導致應該採取正確的值 - 因此,它是由一個通過本身表示乙反复處理。
循環使用的前提條件
與後置條件循環中,它是在任何情況下,至少進行一次這樣的方式被構造。 不過,也有當需要的特定條件的情況下循環的情況下,並且在不存在復發的不應當被執行。 否則,結果將是不正確的。 正是在這種情況下,有一個先決條件的循環。 要建立必要的設計«而A做B»。 第一小組直譯為“長”。 A - 條件,以及 - 將重複的行動。 整個設計的意思是“直到條件為真,執行一個動作。”
所有主要的算法設計工作,只在某些情況下。 他們是在一個前提條件的循環是什麼? 如果您需要重複以上的動作,而是幾個,那麼你應該使用或複合語句,或特殊的支架。 週期很可能不會被執行,如果條件不成立時,進入它。 因此,如果它是正確的動作將被重複。
輔助算法
輔助算法在其它過程中通過僅指定其名稱中使用。 他是一個主要的算法設計並不適用。 在編程語言,動作過程被稱為程序。 為了促進與代碼的工作,然後更容易地解決的每一個動作被組合成一個單元,它是一個輔助算法的問題。 他們每個人都可以問他的名字,這使得隨後反复與他聯繫。
Similar articles
Trending Now