程序控制结构是指在程序控制下进行的数据传递方式。程序控制结构是指以某种顺序执行的一系列动作,用于解决某个问题。理论和实践证明,无论多复杂的算法均可通过顺序、选择、循环3种基本控制结构构造出来。每种结构仅有一个入口和出口。由这3种基本结构组成的多层嵌套程序称为结构化程序。
1程序是一个语句序列,执行程序就是按特定的次序执行程序中的语句。程序中执行点的变迁称为控制流程,当执行到程序中的某一条语句时,也说控制转到了该语句。由于复杂问题的解法可能涉及复杂的执行次序,因此编程语言必须提供表达复杂控制流程的手段,称为编程语言的控制结构,或程序控制结构。
2所谓顺序结构程序就是指按语句出现的先后顺序执行的程序结构,是结构化程序中最简单的结构。编程语言并不提供专门的控制流语句来表达顺序控制结构,而是用程序语句的自然排列顺序来表达。计算机按此顺序逐条执行语句,当一条语 句执行完毕,控制自动转到下一条语句。现实世界中这种顺序处理的情况是非常普遍的,例如我们接受学校教育一般都是先上小 学,再上中学,再上大学;又如我们烧菜一般都是先热油锅,再将蔬菜入锅翻炒,再加盐加 佐料,最后装盘。
选择结构又称为分支结构。当程序执行到控制分支的语句时,首先判断条件,根据条件表达式的值选择相应的语句执行(放弃另一部分语句的执行)。分支结构包括单分支、双分支和多分支三种形式。
3其中<条件表达式>是布尔表达式,<条件语句体>是由一条或多条语句组成的语句序列。<条件语句体>的左端与 if 部分相比必须向右缩进,表明它是 if 部分(不妨理解为条件语句的头 部)的下属,就像躯体是头部的下属一样。
if 语句的语义很容易理解:首先计算 if 后面的条件表达式,如果结果为 True,则控制转 到条件语句体的第一条语句,一旦条件语句体执行完毕,控制即转到 if 语句的下一条语句; 如果结果为 False,则跳过条件语句体,控制直接转到 if 语句的下一条语句。图 1中的流程 图形象地解释了 if 语句的语义,其中菱形框表示条件测试。虽然 if 语句根据条件表达式计算 结果的不同而有两个分支,但我们习惯说这种形式的 if 语句实现的是单分支控制结构,因为 有一个分支什么也不做。注意,无论条件是真是假,最后控制都转到 if 语句的下一条语句, 也就是说这条 if 语句内部虽有两个分支,但总体只有一个出口。
4所谓顺序结构程序就是指按语句出现的先后顺序执行的程序结构,是结构化程序中最简单的结构。编程语言并不提供专门的控制流语句来表达顺序控制结构,而是用程序语句的自然排列顺序来表达。计算机按此顺序逐条执行语句,当一条语 句执行完毕,控制自动转到下一条语句。现实世界中这种顺序处理的情况是非常普遍的,例如我们接受学校教育一般都是先上小 学,再上中学,再上大学;又如我们烧菜一般都是先热油锅,再将蔬菜入锅翻炒,再加盐加 佐料,最后装盘。
选择结构又称为分支结构。当程序执行到控制分支的语句时,首先判断条件,根据条件表达式的值选择相应的语句执行(放弃另一部分语句的执行)。分支结构包括单分支、双分支和多分支三种形式。
希望能帮到你,谢谢!
结构化程序设计就是程序的设计按照一定的规范进行设计,这种程序设计方法利于程序的编写、阅读、修改和维护,减少了程序的出错的概率,提高了程序的可靠性,保证了程序的质量。
结构化程序设计方法的基本思想是:把一个复杂问题的求解过程分阶段进行。具体地说,就是“自顶向下、逐步细化”。
(1)顺序结构及程序设计;
(2)选择结构及程序设计;
(3)循环结构及程序设计;
软件结构(Software Structure)是指一种层次表况,由软件组成成分构造软件的过程、方法和表示。软件结构主要包括程序结构和文档结构。程序结构有两层含义,一是指程序的数据结构和控制结构;另一是指由比程序低一级的程序单位(模块)组成程序的过程、方法和表示。在后者含义下,具有代表性的是块结构和嵌套结构两种。块结构比较自然,各个部分之间通过一些公用变量取得联系,嵌套结构是在嵌套分程序的基础上引进局部性和动态性,以减少程序的初始信息量,嵌套结构不如块结构直观,调试不方便。
c语言就是结构化的程序设计语言
有三种结构,分别是:
顺序结构(一条条语句,有逻辑的顺序写下来;
循环结构(for/while/dowhile 这三种循环结构; 可以嵌套循环
分支结构(switch/if/if-else/if--else if--else;可以嵌套分支
由于模块相互独立,因此在设计其中一个模块时,不会受到其它模块的牵连,因而可将原来较为复杂的问题化简为一系列简单模块的设计。
模块的独立性还为扩充已有的系统、建立新系统带来了不少的方便,因为我们可以充分利用现有的模块作积木式的扩展。
按照结构化程序设计的观点,任何算法功能都可以通过由程序模块组成的三种基本程序结构的组合:
顺序结构、选择结构和循环结构来实现。
结构化程序设计的基本思想是采用"自顶向下,逐步求精"的程序设计方法和"单入口单出口"的控制结构
问题一:什么叫结构化程序设计?它的主要内容是什么? 结构化程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。
虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法,它把数据和处理数据的过程分离为相互独立的实体。当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。
由于图形用户界面的应用,程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便,但开发起来却越来越困难,对这种软件的功能很难用过程来描述和实现,使处面向过程的方法来开发和维护都将非常困难
问题二:什么是结构化程序设计方法? 一个结构化程序就是用高级语言表示的结构化算法。用三种基本结构组成的程序必然是结构化的程序,这种程序便于编写、阅读、
修改和维护。这就减少了程序出错的机会,提高了程序的可靠性,保证了程序的质量。
结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构。怎样才能得到一个结构化的程序呢如果我们面临一
个复杂的问题,是难以一下子写出一个层次分明、结构清晰、算法正确的程序的。结构化程序设计方法的基本思路是,把一个复
杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。
具体说,采取以下方法保证得到结构化的程序。
(1)自顶向下;(2)逐步细化;(3)模块化设计;(4)结构化编码。
在接受一个任务后应怎样着手进行呢有两种不同的方法:一种是白顶向下,逐步细化;―种是自下而上,逐步积累。以写文章为
例来说明这个问题。有的人胸有全局,先没想好整个文章分成哪几个部分,然后再进一步考虑每一部分分成哪几节,每一节分成哪
几段,每一段应包含什么内容,用这种方法逐步分解,直到作者认为可以直接将各小段表达为文字语句为止。这种方法就叫做
“自顶向下,逐步细化”。
另有些人写文章时不拟提纲,如同写信一样提起笔就写,想到哪里就写到哪里,直到他认为把想写的内容都写出来了为止。
这种方法叫做“自下而上,逐步积累”。
显然,用第一种方法考虑周全,结构清晰,层次分明,作者容易写,读者容易看。如果发现某一部分中有一段内容不妥,需要修改
只需找出该部分,修改有关段落即可,与其他部分无关。我们提倡用这种方法设计程序。这就是用工程的方法设计程序。
我们应当掌握自顶向下、逐步细化的设计方法。这种设计方法的过程是将问题求解由抽象逐步具体化的过程。
用这种方法便于验证算法的正确性,在向下一层展开之前应仔细检查本层设计是否正确,只有上一层是正确的才能向下细化。
如果每一层设计都没有问题,则整个算法就 正确的。由于每一层向下细化时都不太复杂,因此容易保证整个算法的正确性检查
时也是由上而下逐层检查,这样做,思路清楚,有条不紊地一步一步进行,既严谨又方便。
举一个例子来说明这种方法的应用。
例 将1到1000之间的素数打印出来。
我们已在本章中讨论过判别素数的方法,现在采用“筛法”来求素数表。所谓“筛法”指的是“埃拉托色尼(Eratosthenes)筛法”
他是古希腊的著名数学家。他采取的方法是,在一张纸上写上1到1000全部整数,然后逐个判断它们是否素数,找出一个非素数,就
把它 挖掉,最后剩下的就是素数
具体作法如下:
(1) 先将1挖掉(因为1不(2) 是素数)。
(3) 用2去除它后面的各个数,(4) 把能被2整除的数挖掉,(5) 即把2 的倍(6) 数挖掉。
(7) 用3去除它后面各数,(8) 把3的倍(9) 数挖掉
(10) 分别用4、5…各数作为除数去除这些数以后个各数。这个过程一直进行到除数后面的数已全被挖掉为止。
上面的算法可表示为:
(1) 挖去1;
(2) 用刚才被挖去的数的下一个数p去除p后面各数,(3) 把p的倍(4) 数挖掉;
(5) 检查p是否小于√n的整数部分(如果n=1000,(6) 则检查p∠31?),(7)如果是则返回(2)继续执行,(8)否则
就结束;
(9) 之上盛夏的数就是素数。>>
问题三:结构化程序设计的工作原理是什么? 是进行以模块功能和处理过程设计为主的详细设计的基本原则。结构化程序设计是过程式程序设计的一个子集,它对写入的程序使用逻辑结构,使得理解和修改更有效更容易。
中文名:结构化程序设计
外文名:structured programming
提出人:EWDijikstra
时间:1965年
分享
概述
概念
其概念最早由EWDijikstra在1965年提出的,是软件发展的一个重要的里程碑。它的主要观点是采用自顶向下、逐步求精及模块化的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环三种基本控制结构构造。结构化程序设计主要强调的是程序的易读性。
内容
详细描述处理过程常用三种工具:图形、表格和语言。
图形:程序流程图、N-S图、PAD图 表格:判定表
语言:过程设计语言(PDL)
结构化程序设计曾被称为软件发展中的第三个里程碑。该方法的要点是:
(1) 主张使用顺序、选择、循环三种基本结构来嵌套连结成具有复杂层次的“结构化程序”,严格控制GOTO语句的使用。用这样的方法编出的程序在结构上具有以下效果:
a 以控制结构为单位,只有一个入口,一个出口,所以能独立地理解这一部分。
b 能够以控制结构为单位,从上到下顺序地阅读程序文本。
c由于程序的静态描述与执行时的控制流程容易对应,所以能够方便正确地理解程序的动作。
(2)“自顶而下,逐步求精”的设计思想,其出发点是从问题的总体目标开始,抽象低层的细节,先专心构造高层的结构,然后再一层一层地分解和细化。这使设计者能把握主题,高屋建瓴,避免一开始就陷入复杂的细节中,使复杂的设计过程变得简单明了,过程的结果也容易做到正确可靠。
(3)“独立功能,单出、入口”的模块结构,减少模块的相互联系使模块可作为插件或积木使用,降低程序的复杂性,提高可靠性。程序编写时,所有模块的功能通过相应的子程序(函数或过程)的代码来实现。程序的主体是子程序层次库,它与功能模块的抽象层次相对应,编码原则使得程序流程简洁、清晰,增强可读性。
(4) 主程序员组。
其中(1)、(2)是解决程序结构规范化问题;(3)是解决将大划小,将难化简的求解方法问题;(4)是解决软件开发的人员组织结构问题。
模型
结构化程序设计通常使用自上往下的设计模型,开发员将整个程序结构映射到单个小部分。已定义的函数或相似函数的 在单个模块或字模块中编码,这意味着,代码能够更有效的载入存储器,模块能在其它程序中再利用。模块单独测试之后,与其它模块整合起来形成整个程序组织。
程序流程遵循简单的层次化模型,采用“for”、“repeat”、“while”等循环结构,鼓励使用“Go To”语句。几乎任何语言都能使用结构化程序设计技术来避免非结构化语言的通常陷阱。非结构化程序设计必须依赖于开发人员避免结构问题,从而导致程序组织较差。大多数现代过程式语言都鼓励结构化程序设计。
基本结构
结构化程序设计的三种基本结构是:顺序结构、选择结构和循环结构。
顺序结构
顺序结构表示程序中的各 *** 作是按照它们出现的先后顺序执行的。
选择结构
选择结构表示程序的处理步骤出现了分支,它需要根据某一特定的条件选择其中的一个分支执行。选择结构有单选择、双选择和多选择三种形式。
循环结构
循环结构表示程序反复执行某个或某些 *** 作,直到某条件为假(或为真)时才可终止循环。在循环结构中最主要的是:什么情况下执行循环?哪些 *** 作需要循环执行?循环结构的基本形式有两种:当型循环和直到型循环。
当型循环:表示先判断条件,当满足给定的>>
问题四:结构化程序设计的三种基本结构是什么。各有什么特点 顺序结构、分支结构、循环结构
顺序结构就是从头到尾一次执行每一个语句
分支结构根据不同的条件执行不同的语句或者语句体
循环结构就是重复的执行语句或者语句体,达到重复执行一类 *** 作的目的
问题五:什么是结构化程序设计 结构化程序设计(structured programming)是进行以模块功能和处理过程设计为主的详细设计的基本原则。结构化程序设计是过程式程序设计的一个子集,它对写入的程序使用逻辑结构,使得理解和修改更有效更容易。结构化程序设计的三种基本结构是:顺序结构、选择结构和循环结构。结构化程序设计曾被称为软件发展中的第三个里程碑。结构化程序设计通常使用自上往下的设计模型,开发员将整个程序结构映射到单个小部分。当型循环:表示先判断条件,当满足给定的条件时执行循环体,并且在循环终端处流程自动返回到循环入口;如果条件不满足,则退出循环体直接到达流程出口处。
问题六:结构化程序设计原则 1.自顶向下:程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。 2.逐步求精:对复杂问题,应设计一些子目标作为过渡,逐步细化。 3.模块化:一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为子目标,再进一步分解为具体的小目标,把每一个小目标称为一个模块。 4.限制使用goto语句
问题七:结构化程序设计的目的构成与方法 结构化程序设计的目的:通过设计结构良好的程序,以程序静态的良好的结构保证程序动态执行的正确性,使程序易理解、易调试、易维护,以提高软件开发的效率,减少出错率。构成:控制结构+数据结构,控制结构有顺序、选择、循环结构。方法:模块丁,自顶向下,自底向上。
问题八:结构化与非结构化程序的区别? 结构化就是把整体分布,把每部分都解决
问题九:什么叫结构化程序设计?它的主要内容是什么? 结构化程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。
虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法,它把数据和处理数据的过程分离为相互独立的实体。当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。
由于图形用户界面的应用,程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便,但开发起来却越来越困难,对这种软件的功能很难用过程来描述和实现,使处面向过程的方法来开发和维护都将非常困难
问题十:什么是结构化程序设计方法? 一个结构化程序就是用高级语言表示的结构化算法。用三种基本结构组成的程序必然是结构化的程序,这种程序便于编写、阅读、
修改和维护。这就减少了程序出错的机会,提高了程序的可靠性,保证了程序的质量。
结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构。怎样才能得到一个结构化的程序呢如果我们面临一
个复杂的问题,是难以一下子写出一个层次分明、结构清晰、算法正确的程序的。结构化程序设计方法的基本思路是,把一个复
杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。
具体说,采取以下方法保证得到结构化的程序。
(1)自顶向下;(2)逐步细化;(3)模块化设计;(4)结构化编码。
在接受一个任务后应怎样着手进行呢有两种不同的方法:一种是白顶向下,逐步细化;―种是自下而上,逐步积累。以写文章为
例来说明这个问题。有的人胸有全局,先没想好整个文章分成哪几个部分,然后再进一步考虑每一部分分成哪几节,每一节分成哪
几段,每一段应包含什么内容,用这种方法逐步分解,直到作者认为可以直接将各小段表达为文字语句为止。这种方法就叫做
“自顶向下,逐步细化”。
另有些人写文章时不拟提纲,如同写信一样提起笔就写,想到哪里就写到哪里,直到他认为把想写的内容都写出来了为止。
这种方法叫做“自下而上,逐步积累”。
显然,用第一种方法考虑周全,结构清晰,层次分明,作者容易写,读者容易看。如果发现某一部分中有一段内容不妥,需要修改
只需找出该部分,修改有关段落即可,与其他部分无关。我们提倡用这种方法设计程序。这就是用工程的方法设计程序。
我们应当掌握自顶向下、逐步细化的设计方法。这种设计方法的过程是将问题求解由抽象逐步具体化的过程。
用这种方法便于验证算法的正确性,在向下一层展开之前应仔细检查本层设计是否正确,只有上一层是正确的才能向下细化。
如果每一层设计都没有问题,则整个算法就 正确的。由于每一层向下细化时都不太复杂,因此容易保证整个算法的正确性检查
时也是由上而下逐层检查,这样做,思路清楚,有条不紊地一步一步进行,既严谨又方便。
举一个例子来说明这种方法的应用。
例 将1到1000之间的素数打印出来。
我们已在本章中讨论过判别素数的方法,现在采用“筛法”来求素数表。所谓“筛法”指的是“埃拉托色尼(Eratosthenes)筛法”
他是古希腊的著名数学家。他采取的方法是,在一张纸上写上1到1000全部整数,然后逐个判断它们是否素数,找出一个非素数,就
把它 挖掉,最后剩下的就是素数
具体作法如下:
(1) 先将1挖掉(因为1不(2) 是素数)。
(3) 用2去除它后面的各个数,(4) 把能被2整除的数挖掉,(5) 即把2 的倍(6) 数挖掉。
(7) 用3去除它后面各数,(8) 把3的倍(9) 数挖掉
(10) 分别用4、5…各数作为除数去除这些数以后个各数。这个过程一直进行到除数后面的数已全被挖掉为止。
上面的算法可表示为:
(1) 挖去1;
(2) 用刚才被挖去的数的下一个数p去除p后面各数,(3) 把p的倍(4) 数挖掉;
(5) 检查p是否小于√n的整数部分(如果n=1000,(6) 则检查p∠31?),(7)如果是则返回(2)继续执行,(8)否则
就结束;
(9) 之上盛夏的数就是素数。>>
以上就是关于开发语言中的程序控制结构指的是什么呢全部的内容,包括:开发语言中的程序控制结构指的是什么呢、什么是结构化程序设计它有哪几种基本程序结构请说明理由。、什么是软件结构等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)