知名百科  > 所屬分類  >  其他科技   

順序結(jié)構(gòu)

順序結(jié)構(gòu)(英語(yǔ):Sequential structure)是指表明程序中所有操作都按其出現(xiàn)的順序執(zhí)行的結(jié)構(gòu)。它是三種類型的控制結(jié)構(gòu)之一。這種結(jié)構(gòu)的特點(diǎn)是程序從入口點(diǎn)開(kāi)始,按順序執(zhí)行所有操作,直到出口點(diǎn)結(jié)束。在順序結(jié)構(gòu)中,無(wú)論程序中包含哪種結(jié)構(gòu),程序的整體過(guò)程都是順序結(jié)構(gòu),是自上而下執(zhí)行的。序列結(jié)構(gòu)是編程中最簡(jiǎn)單、最常用的基本結(jié)構(gòu)。它是任何程序的主要基本結(jié)構(gòu),甚至在選擇結(jié)構(gòu)或循環(huán)結(jié)構(gòu)中,序列結(jié)構(gòu)也經(jīng)常被用作其子結(jié)構(gòu)。

序列結(jié)構(gòu)的程序功能有限,在處理實(shí)際問(wèn)題時(shí)會(huì)遇到復(fù)雜的問(wèn)題,應(yīng)用序列結(jié)構(gòu)的程序無(wú)法完全解決這些問(wèn)題。例如,有時(shí)需要根據(jù)某些條件是否成立進(jìn)行判斷,然后根據(jù)判斷結(jié)果執(zhí)行不同的處理程序,以確定程序的執(zhí)行方向;有時(shí)需要多次重復(fù)執(zhí)行一個(gè)程序。在某些情況下,有必要使用選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。有了順序結(jié)構(gòu),程序可以按順序執(zhí)行每個(gè)動(dòng)作。一個(gè)序列結(jié)構(gòu)包含幾個(gè)事件,但它們不能分支和轉(zhuǎn)移。一旦程序按順序執(zhí)行了事件,程序?qū)⒁徊揭徊降貓?zhí)行直到結(jié)束。

目錄

概念定義 編輯本段

順序結(jié)構(gòu)意味著程序中的操作是按照它們出現(xiàn)的順序執(zhí)行的。無(wú)論程序中包含哪種結(jié)構(gòu),程序的整體過(guò)程都是順序結(jié)構(gòu),自上而下執(zhí)行。序列結(jié)構(gòu)在不同編程語(yǔ)言中的不同表現(xiàn)如下:

C語(yǔ)言中的序列結(jié)構(gòu)是C語(yǔ)句到C程序轉(zhuǎn)換的起點(diǎn)。一個(gè)C程序從主入口開(kāi)始,從前到后依次執(zhí)行,直到main()函數(shù)體中的語(yǔ)句執(zhí)行完畢,程序結(jié)束。

Java的序列結(jié)構(gòu)Java是默認(rèn)的Java程序結(jié)構(gòu)。默認(rèn)情況下,Java程序?qū)⒏鶕?jù)序列結(jié)構(gòu)逐步執(zhí)行程序。在Java中,序列結(jié)構(gòu)中的語(yǔ)句可以分為三類:表達(dá)式語(yǔ)句、空語(yǔ)句和復(fù)合語(yǔ)句。

Python在Python中,縮進(jìn)的代碼表示它屬于上一行代碼,而縮進(jìn)的代碼表示它與上一行代碼是順序關(guān)系。

歷史進(jìn)程 編輯本段

早期編程語(yǔ)言的使用:編程語(yǔ)言的發(fā)展主要經(jīng)歷了三個(gè)階段:機(jī)器語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言。機(jī)器語(yǔ)言中的每條指令只代表一個(gè)非常簡(jiǎn)單的動(dòng)作,一系列按順序排列的指令組成一個(gè)指令整體來(lái)完成要做的事情。這個(gè)指令整體稱為程序。大多數(shù)早期應(yīng)用程序都是部分或全部用匯編語(yǔ)言編寫(xiě)的。匯編語(yǔ)言中的簡(jiǎn)單程序是按照編程的順序一個(gè)接一個(gè)地執(zhí)行的,這是程序最基本的結(jié)構(gòu)。隨著內(nèi)存容量的增加和處理器速度的快速提高,程序變得越來(lái)越復(fù)雜,程序員轉(zhuǎn)向具有某些結(jié)構(gòu)能力的高級(jí)語(yǔ)言,如C、FORTRAN和COBOL。
順序結(jié)構(gòu)順序結(jié)構(gòu)

高級(jí)編程語(yǔ)言引入了控制結(jié)構(gòu):世界上最早的高級(jí)編程語(yǔ)言Fortran于1954年問(wèn)世,并于1957年由IBM正式推出。它的缺點(diǎn)是不方便設(shè)計(jì)和編寫(xiě)結(jié)構(gòu)化程序。在隨后的十年中,針對(duì)不同的應(yīng)用領(lǐng)域出現(xiàn)了ALGOL60、COBOL和LISP等高級(jí)語(yǔ)言。直到20世紀(jì)60年代末N. Wirth教授在瑞士蘇黎世聯(lián)邦理工大學(xué)創(chuàng)立Pascal編程語(yǔ)言之前,Pascal是第一個(gè)系統(tǒng)體現(xiàn)結(jié)構(gòu)化編程思想的語(yǔ)言,其結(jié)構(gòu)控制和數(shù)據(jù)類型非常豐富。在此期間,軟件工作者追求的主要目標(biāo)是設(shè)計(jì)和實(shí)現(xiàn)一種在控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)方面具有強(qiáng)大性能的高級(jí)語(yǔ)言。為了提高程序的可靠性,首先要使程序具有簡(jiǎn)明的控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),因此必須對(duì)程序結(jié)構(gòu)和風(fēng)格施加必要的限制,并由此提出了結(jié)構(gòu)化程序設(shè)計(jì)的思想。它將程序結(jié)構(gòu)限制為三種基本結(jié)構(gòu):序列、選擇和循環(huán)。在高級(jí)語(yǔ)言的編程中,順序編程是編程的基礎(chǔ)。Sequence structure的程序按照程序的順序一個(gè)接一個(gè)地執(zhí)行,直到程序完成,并且對(duì)程序的進(jìn)程沒(méi)有控制。

結(jié)構(gòu)化程序設(shè)計(jì)的提出:序列結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)的一部分,結(jié)構(gòu)化程序設(shè)計(jì)的概念最早是由荷蘭科學(xué)家E.W.Dijikstra提出的。早在1965年,他就指出任何程序都可以由序列、選擇和循環(huán)三種基本控制結(jié)構(gòu)組成。1966年,Boehm和Jacopini證明了“任何單入口和單出口程序都可以僅通過(guò)三種基本控制結(jié)構(gòu)來(lái)實(shí)現(xiàn)”。Boehm和Jacopini的證明為結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)奠定了理論基礎(chǔ)。1968年,E.W.Dijkstra給COMM.ACM雜志編輯部寫(xiě)了一封信,指出了在語(yǔ)言中使用goto所帶來(lái)的問(wèn)題,由此引發(fā)了關(guān)于是否在編程語(yǔ)言中使用goto的討論。1974年,D.Gries教授將結(jié)構(gòu)程序設(shè)計(jì)現(xiàn)有的不同解釋分為13種。如今,序列結(jié)構(gòu)作為編程中最簡(jiǎn)單、最常用的基本結(jié)構(gòu),是任何程序的主要基本結(jié)構(gòu),被廣泛應(yīng)用于C語(yǔ)言、Java、Python等各種編程語(yǔ)言中。

基本原理 編輯本段

線性執(zhí)行

線性執(zhí)行通常稱為順序執(zhí)行,這意味著每個(gè)程序腳本中的命令都是按照程序中列出的順序執(zhí)行的。一個(gè)應(yīng)用程序可以分成幾個(gè)程序段,每個(gè)程序段必須按一定的順序執(zhí)行。只有在執(zhí)行了前一個(gè)程序段(操作)后,才能執(zhí)行后一個(gè)程序段(操作)。例如,當(dāng)計(jì)算機(jī)計(jì)算時(shí),它總是需要先輸入用戶程序和數(shù)據(jù),然后才能計(jì)算并最終打印出結(jié)果。

無(wú)條件跳轉(zhuǎn)

無(wú)條件轉(zhuǎn)移意味著程序可以在沒(méi)有任何前提條件的情況下更改執(zhí)行順序。只要處理器執(zhí)行無(wú)條件分支指令,它就可以使程序轉(zhuǎn)到指定的目的地址,并從目的地址開(kāi)始執(zhí)行指令。程序從上到下依次執(zhí)行每個(gè)可執(zhí)行語(yǔ)句指定的任務(wù)。這種程序結(jié)構(gòu)被稱為序列結(jié)構(gòu),但大多數(shù)實(shí)際問(wèn)題不能單獨(dú)使用這種結(jié)構(gòu)來(lái)解決。在FORTRAN語(yǔ)句中,無(wú)條件分支語(yǔ)句可用于在程序執(zhí)行過(guò)程中跳過(guò)程序段。

自上而下設(shè)計(jì)

自頂向下設(shè)計(jì)技術(shù)將一個(gè)算法分解成幾個(gè)函數(shù)。自上而下的設(shè)計(jì)過(guò)程如下:將程序的整個(gè)任務(wù)分解為一系列子任務(wù);檢查每個(gè)子任務(wù),以確定是否可以進(jìn)一步分解為更多的子任務(wù);重復(fù)此步驟,直到不再有子任務(wù);一旦確定了所有子任務(wù),就可以將它們寫(xiě)入代碼。這個(gè)過(guò)程稱為自頂向下的設(shè)計(jì)方法。結(jié)構(gòu)化程序設(shè)計(jì)采用“自上而下,逐步細(xì)化”的設(shè)計(jì)方法。順序結(jié)構(gòu)是程序的基本結(jié)構(gòu)之一,其特點(diǎn)是幾個(gè)程序步驟由順序結(jié)構(gòu)組成,從上到下依次執(zhí)行。

結(jié)構(gòu)化程序設(shè)計(jì)

結(jié)構(gòu)化程序設(shè)計(jì)也稱為結(jié)構(gòu)化程序設(shè)計(jì),包括三種重要的控制結(jié)構(gòu):序列結(jié)構(gòu)、選擇結(jié)構(gòu)(也稱為分支結(jié)構(gòu))和循環(huán)結(jié)構(gòu)。其中,序列結(jié)構(gòu)是在程序語(yǔ)句序列中執(zhí)行以完成相應(yīng)的功能。序列結(jié)構(gòu)是最簡(jiǎn)單、最基本的程序結(jié)構(gòu),是所有復(fù)雜程序設(shè)計(jì)的基礎(chǔ)和組成部分。通常,實(shí)際應(yīng)用的結(jié)構(gòu)要比序列結(jié)構(gòu)復(fù)雜得多,但序列結(jié)構(gòu)是復(fù)雜程序的基礎(chǔ)和支柱。

控制結(jié)構(gòu) 編輯本段

選擇結(jié)構(gòu)

選擇結(jié)構(gòu)可以根據(jù)表達(dá)式的值選擇并執(zhí)行程序中的一組語(yǔ)句。換句話說(shuō),選擇結(jié)構(gòu)可以控制程序中的語(yǔ)句在滿足某些條件時(shí)執(zhí)行,而在不滿足條件時(shí)不執(zhí)行。

循環(huán)結(jié)構(gòu)

循環(huán)結(jié)構(gòu)是指只要滿足某些條件,程序就會(huì)重復(fù)執(zhí)行,直到不再滿足這些條件。重復(fù)執(zhí)行的程序段稱為循環(huán)體。如果不希望循環(huán)體連續(xù)循環(huán),循環(huán)體中應(yīng)該有更改循環(huán)條件的語(yǔ)句。

循環(huán)體中有兩種循環(huán)結(jié)構(gòu):一種是當(dāng)前循環(huán)結(jié)構(gòu),先判斷條件表達(dá)式的值,只要值為yes就重復(fù)執(zhí)行循環(huán)體;另一種是until循環(huán)結(jié)構(gòu),循環(huán)體執(zhí)行一次,然后判斷條件表達(dá)式的值是否為真。如果為真,循環(huán)體將重復(fù)執(zhí)行,直到條件表達(dá)式的值為假。

主要應(yīng)用 編輯本段

LabVIEW程序的應(yīng)用

LabVIEW程序的運(yùn)行依賴于程序中的順序數(shù)據(jù)流,而其他文本編程語(yǔ)言(如C語(yǔ)言)是根據(jù)代碼的順序進(jìn)行編譯和執(zhí)行的。利用數(shù)據(jù)節(jié)點(diǎn)之間的數(shù)據(jù)流連接來(lái)實(shí)現(xiàn)程序的順序操作。此外,LabVIEW提供了圖形化的序列結(jié)構(gòu)來(lái)實(shí)現(xiàn)模塊代碼的順序執(zhí)行,包括兩種序列結(jié)構(gòu):平鋪序列結(jié)構(gòu)和級(jí)聯(lián)序列結(jié)構(gòu)。

在VBA的應(yīng)用

順序結(jié)構(gòu)是每個(gè)句子按照出現(xiàn)的順序執(zhí)行。在一般程序設(shè)計(jì)語(yǔ)言中,序列結(jié)構(gòu)的語(yǔ)句主要是賦值語(yǔ)句、輸入/輸出語(yǔ)句等。在VBA中,有用于人機(jī)交互的輸入函數(shù)InputBox()和輸出函數(shù)MsgBox()。

計(jì)算機(jī)應(yīng)用場(chǎng)景中的應(yīng)用

序列結(jié)構(gòu)是計(jì)算機(jī)程序執(zhí)行控制流的三種基本結(jié)構(gòu)之一。在編程中,序列結(jié)構(gòu)還用于需要以線性方式執(zhí)行語(yǔ)句的各種場(chǎng)景。例如計(jì)算一系列數(shù)字的總和、從文件或用戶讀取輸入數(shù)據(jù)、將輸出數(shù)據(jù)寫(xiě)入文件或控制臺(tái)以及執(zhí)行數(shù)學(xué)計(jì)算。序列結(jié)構(gòu)是常用的文件物理組織形式之一。文件的物理結(jié)構(gòu)決定了如何將記錄或字節(jié)保存到存儲(chǔ)設(shè)備的物理塊中。使用序列結(jié)構(gòu)的優(yōu)點(diǎn)是訪問(wèn)速度快。序列結(jié)構(gòu)是最簡(jiǎn)單、最基本的程序控制結(jié)構(gòu),但它是程序框架的基本組成部分,任何程序文件都必須包含序列結(jié)構(gòu)。

附件列表


0

詞條內(nèi)容僅供參考,如果您需要解決具體問(wèn)題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。

如果您認(rèn)為本詞條還有待完善,請(qǐng) 編輯

上一篇 Adobe Photoshop設(shè)計(jì)軟件    下一篇 shell計(jì)算機(jī)殼層

標(biāo)簽

同義詞

暫無(wú)同義詞
主站蜘蛛池模板: 妖精视频一区二区三区| 欧美久久久久久| 国产精品一区欧美激情| 久久经典免费视频| 色婷婷综合久久久久中文一区二区| 成人毛片免费观看视频在线| 免费无码国产V片在线观看| 99久久免费精品视频| 榴莲榴莲榴莲榴莲官网| 国产一级二级在线观看| www日本高清| 欧美巨大黑人精品videos| 国产在线拍揄自揄拍无码| 上原瑞穗最全番号| 欧美精品一区二区三区免费观看| 国产欧美综合一区二区三区| 中文字幕精品视频| 浪小辉chinese野战做受| 国产欧美日韩一区二区三区在线 | 日韩精品无码一本二本三本 | 久久国产精品只做精品| 精品国产精品久久一区免费式 | 伦理一区二区三区| 最近中文字幕更新8| 无遮挡无删动漫肉在线观看| 任你躁国产自任一区二区三区 | 国产人妖ts丝丝magnet | 美女大量吞精在线观看456| 夜间禁用10大b站| 久久精品香蕉视频| 男女一边摸一边脱视频网站 | 高清欧美性猛交xxxx黑人猛交| 戍人视频fc2最近一周| 亚洲女人初试黑人巨高清| 色婷婷99综合久久久精品| 在线免费观看国产| 久久国产精品久久久久久 | 天天躁夜夜躁狠狠躁2023| 亚洲AV无码成人精品区狼人影院| 精品国偷自产在线视频| 国产精品久线观看视频|