<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>结构化程序设计</title>
	<atom:link href="https://www.aitaocui.cn/tag/122230/feed" rel="self" type="application/rss+xml" />
	<link>https://www.aitaocui.cn</link>
	<description>翡翠玉石爱好者聚集地</description>
	<lastBuildDate>Mon, 21 Nov 2022 01:19:59 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.1</generator>

<image>
	<url>https://www.aitaocui.cn/wp-content/uploads/2022/11/taocui.png</url>
	<title>结构化程序设计</title>
	<link>https://www.aitaocui.cn</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>结构化程序设计(详细设计的基本原则)</title>
		<link>https://www.aitaocui.cn/article/192263.html</link>
					<comments>https://www.aitaocui.cn/article/192263.html#respond</comments>
		
		<dc:creator><![CDATA[马歇尔计划]]></dc:creator>
		<pubDate>Mon, 21 Nov 2022 01:19:59 +0000</pubDate>
				<category><![CDATA[百科]]></category>
		<category><![CDATA[结构化程序设计]]></category>
		<guid isPermaLink="false">https://www.aitaocui.cn/article/192263.html</guid>

					<description><![CDATA[结构化程序设计（structuredprogramming）是进行以模块功能和处理过程设计为主的详细设计的基本原则。结构化程序设计内容是非计算机专业VFP教学中的难点,通过实例介绍...]]></description>
										<content:encoded><![CDATA[</p>
<article>
<p>结构化程序设计（structuredprogramming）是进行以模块功能和处理过程设计为主的详细设计的基本原则。结构化程序设计内容是非计算机专业VFP教学中的难点,通过实例介绍了在任务驱动教学法的指导下,打破了原来的以知识传授为中心的教学模式,通过任务构建,导入相应的知识点,结构化程序设计的三种基本结构是:顺序结构、选择结构和循环结构。结构化程序设计通常使用自上往下的设计模型，开发员将整个程序结构映射到单个小部分。当型循环：表示先判断条件，当满足给定的条件时执行循环体，并且在循环终端处流程自动返回到循环入口；如果条件不满足，则退出循环体直接到达流程出口处。</p>
</article>
<article>
<h1>概述</h1>
<h2 id="a-64737c68">概念</h2>
<p>随着我国科研竞争实力的不断提升,涉及单片机技术开始得到大范围推广沿用。须知此类设备型号类别繁杂,特别是在编程规则方面,主张使用多汇编语言,至此相关程序通用、移植,以及维护性能条件等,都产生本质性的变化结果。其概念最早由E.W.Dijikstra在1965年提出的，是软件发展的一个重要的里程碑。它的主要观点是采用自顶向下、逐步求精及模块化的程序设计方法；使用三种基本控制结构构造程序，任何程序都可由顺序、选择、循环三种基本控制结构构造。结构化程序设计主要强调的是程序的易读性。</p>
<h2 id="a-89ff7f10">内容</h2>
<p>详细描述处理过程常用三种工具：图形、表格和语言。</p>
<p>图形：程序流程图、N-S图、PAD图表格：判定表</p>
<p>语言：过程设计语言（PDL）</p>
<p>结构化程序设计曾被称为软件发展中的第三个里程碑。该方法的要点是：（1)主张使用顺序、选择、循环三种基本结构来嵌套连结成具有复杂层次的“结构化程序”，严格控制GOTO语句的使用。用这样的方法编出的程序在结构上具有以下效果：</p>
<p>a.以控制结构为单位，只有一个入口，一个出口，所以能独立地理解这一部分。</p>
<p>b.能够以控制结构为单位，从上到下顺序地阅读程序文本。</p>
<p>c.由于程序的静态描述与执行时的控制流程容易对应，所以能够方便正确地理解程序的动作。</p>
<p>（2）“自顶而下，逐步求精”的设计思想，其出发点是从问题的总体目标开始，抽象低层的细节，先专心构造高层的结构，然后再一层一层地分解和细化。这使设计者能把握主题，高屋建瓴，避免一开始就陷入复杂的细节中，使复杂的设计过程变得简单明了，过程的结果也容易做到正确可靠。</p>
<p>（3）“独立功能，单出、入口”的模块结构，减少模块的相互联系使模块可作为插件或积木使用，降低程序的复杂性，提高可靠性。程序编写时，所有模块的功能通过相应的子程序(函数或过程)的代码来实现。程序的主体是子程序层次库，它与功能模块的抽象层次相对应，编码原则使得程序流程简洁、清晰，增强可读性。</p>
<p>（4）主程序员组。其中（1）、（2）是解决程序结构规范化问题；（3）是解决将大划小，将难化简的求解方法问题；（4）是解决软件开发的人员组织结构问题。</p>
<h2 id="a-05ecc74b">模型</h2>
<p>结构化程序设计通常使用自上往下的设计模型，开发员将整个程序结构映射到单个小部分。已定义的函数或相似函数的集合在单个模块或字模块中编码，这意味着，代码能够更有效的载入存储器，模块能在其它程序中再利用。模块单独测试之后，与其它模块整合起来形成整个程序组织。</p>
<p>程序流程遵循简单的层次化模型，采用“for”、“repeat”、“while”等循环结构，鼓励使用“GoTo”语句。几乎任何语言都能使用结构化程序设计技术来避免非结构化语言的通常陷阱。非结构化程序设计必须依赖于开发人员避免结构问题，从而导致程序组织较差。大多数现代过程式语言都鼓励结构化程序设计。</p>
<h1>基本结构</h1>
<p>结构化程序设计的三种基本结构是:顺序结构、选择结构和循环结构。</p>
<h2 id="a-ed7d8494">顺序结构</h2>
<p>顺序结构表示程序中的各操作是按照它们出现的先后顺序执行的。</p>
<h2 id="a-c92f4fa7">选择结构</h2>
<p>选择结构表示程序的处理步骤出现了分支，它需要根据某一特定的条件选择其中的一个分支执行。选择结构有单选择、双选择和多选择三种形式。</p>
<h2 id="a-9bbf698f">循环结构</h2>
<p>循环结构表示程序反复执行某个或某些操作，直到某条件为假（或为真）时才可终止循环。在循环结构中最主要的是：什么情况下执行循环？哪些操作需要循环执行？循环结构的基本形式有两种：当型循环和直到型循环。</p>
<p>当型循环：表示先判断条件，当满足给定的条件时执行循环体，并且在循环终端处流程自动返回到循环入口；如果条件不满足，则退出循环体直接到达流程出口处。因为是&quot;当条件满足时执行循环&quot;，即先判断后执行，所以称为当型循环。</p>
<p>直到型循环：表示从结构入口处直接执行循环体，在循环终端处判断条件，如果条件不满足，返回入口处继续执行循环体，直到条件为真时再退出循环到达流程出口处，是先执行后判断。因为是&quot;直到条件为真时为止&quot;，所以称为直到型循环。</p>
<h1>设计方法</h1>
<h2 id="a-b17e5ea3">自顶向下</h2>
<p>程序设计时，应先考虑总体，后考虑细节；先考虑全局目标，后考虑局部目标。不要一开始就过多追求众多的细节，先从最上层总目标开始设计，逐步使问题具体化。</p>
<h2 id="a-4f27c34e">逐步细化</h2>
<p>对复杂问题，应设计一些子目标作为过渡，逐步细化。</p>
<h2 id="a-a0644c22">模块化</h2>
<p>一个复杂问题，肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为子目标，再进一步分解为具体的小目标，把每一个小目标称为一个模块。</p>
<p>限制使用goto语句结构化程序设计方法的起源来自对GOTO语句的认识和争论。肯定的结论是，在块和进程的非正常出口处往往需要用GOTO语句，使用GOTO语句会使程序执行效率较高；在合成程序目标时，GOTO语句往往是有用的，如返回语句用GOTO。否定的结论是，GOTO语句是有害的，是造成程序混乱的祸根，程序的质量与GOTO语句的数量呈反比，应该在所有高级程序设计语言中取消GOTO语句。取消GOTO语句后，程序易于理解、易于排错、容易维护，容易进行正确性证明。作为争论的结论，1974年Knuth发表了令人信服的总结，并证实了：</p>
<p>（1）GOTO语句确实有害，应当尽量避免；</p>
<p>（2）完全避免使用GOTO语句也并非是个明智的方法，有些地方使用GOTO语句，会使程序流程更清楚、效率更高；</p>
<p>（3）争论的焦点不应该放在是否取消GOTO语句上，而应该放在用什么样的程序结构上。其中最关键的是，应在以提高程序清晰性为目标的结构化方法中限制使用GOTO语句。</p>
<h2 id="a-a39f84ab">结构化编码</h2>
<p>所谓编码就是把已经设计好的算法用计算机语言表示，即根据已经细化的算法正确写出计算机程序。结构化的语言（如Pascal，C，QBASIC等）都有与三种基本机构对应的语句。</p>
</article>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aitaocui.cn/article/192263.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
