📄 sec2-1.htm
字号:
mso-char-indent-size:0cm'><![if !supportLists]><span lang=EN-US
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol;mso-font-kerning:0pt'><span style='mso-list:Ignore'><img width=13
height=13 src="Sec2-1.files/image002.gif" alt="*"><span style='font:7.0pt "Times New Roman"'>
</span></span></span><![endif]><span lang=ZH-CN style='color:#FF6600;
mso-font-kerning:0pt'>起止框</span><span lang=ZH-CN style='mso-font-kerning:0pt'>(圆弧形框),表示流程开始或结束。</span><span
lang=EN-US style='mso-font-kerning:0pt'><o:p></o:p></span></p>
<p class=MsoBodyTextIndent2 style='margin-left:48.0pt;text-indent:-24.0pt;
mso-char-indent-count:0;line-height:17.0pt;mso-line-height-rule:exactly;
mso-list:l6 level1 lfo10;tab-stops:45.8pt list 48.0pt left 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-char-indent-size:0cm'><![if !supportLists]><span lang=EN-US
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol;mso-font-kerning:0pt'><span style='mso-list:Ignore'><img width=13
height=13 src="Sec2-1.files/image002.gif" alt="*"><span style='font:7.0pt "Times New Roman"'>
</span></span></span><![endif]><span lang=ZH-CN style='color:#FF6600;
mso-font-kerning:0pt'>连接点</span><span lang=ZH-CN style='mso-font-kerning:0pt'>(圆圈),用于将画在不同地方的流程线连接起来。如图中有两个以</span><span
lang=EN-US style='mso-font-kerning:0pt'>1</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>标志的连接点</span><span lang=EN-US style='mso-font-kerning:
0pt'>(</span><span lang=ZH-CN style='mso-font-kerning:0pt'>在连接点圈中写上“</span><span
lang=EN-US style='mso-font-kerning:0pt'>l</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>”</span><span lang=EN-US style='mso-font-kerning:
0pt'>)</span><span lang=ZH-CN style='mso-font-kerning:0pt'>则表示这两个点是连接在一起的,相当于一个点一样。用连接点,可以避免流程线的交叉或过长,使流程图清晰。</span><span
lang=EN-US style='mso-font-kerning:0pt'><o:p></o:p></span></p>
<p class=MsoBodyTextIndent2 style='margin-left:48.0pt;text-indent:-24.0pt;
mso-char-indent-count:0;line-height:17.0pt;mso-line-height-rule:exactly;
mso-list:l6 level1 lfo10;tab-stops:45.8pt list 48.0pt left 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-char-indent-size:0cm'><![if !supportLists]><span lang=EN-US
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol;mso-font-kerning:0pt'><span style='mso-list:Ignore'><img width=13
height=13 src="Sec2-1.files/image002.gif" alt="*"><span style='font:7.0pt "Times New Roman"'>
</span></span></span><![endif]><span lang=ZH-CN style='color:#FF6600;
mso-font-kerning:0pt'>流程线</span><span lang=ZH-CN style='mso-font-kerning:0pt'>(指向线),表示流程的路径和方向。</span><span
lang=EN-US style='mso-font-kerning:0pt'><o:p></o:p></span></p>
<p class=MsoBodyTextIndent2 style='margin-left:48.0pt;text-indent:-24.0pt;
mso-char-indent-count:0;line-height:17.0pt;mso-line-height-rule:exactly;
mso-list:l6 level1 lfo10;tab-stops:45.8pt list 48.0pt left 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-char-indent-size:0cm'><![if !supportLists]><span lang=EN-US
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol;mso-font-kerning:0pt'><span style='mso-list:Ignore'><img width=13
height=13 src="Sec2-1.files/image002.gif" alt="*"><span style='font:7.0pt "Times New Roman"'>
</span></span></span><![endif]><span lang=ZH-CN style='color:#FF6600;
mso-font-kerning:0pt'>注释框</span><span lang=EN-US style='mso-font-kerning:0pt'>,
</span><span lang=ZH-CN style='mso-font-kerning:0pt'>是为了对流程图中某些框的操作做必要的补充说明,以帮助阅读流程图的人更好地理解流程图的作用。它不是流程图中必要的部分,不反映流程和操作。</span><span
lang=EN-US style='mso-font-kerning:0pt'><o:p></o:p></span></p>
<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN style='mso-font-kerning:0pt'>程序框图表示程序内各步骤的内容以及它们的关系和执行的顺序。它说明了程序的逻辑结构。框图应该足够详细,以便可以按照它顺利地写出程序,而不必在编写时临时构思,甚至出现逻辑错误。流程图不仅可以指导编写程序,而且可以在调试程序中用来检查程序的正确性。如果框图是正确的而结果不对,则按照框图逐步检查程序是很容易发现其错误的。流程图还能作为程序说明书的一部分提供给别人,以便帮助别人理解你编写程序的思路和结构。</span><span
lang=EN-US style='mso-font-kerning:0pt'><o:p></o:p></span></p>
<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN style='mso-font-kerning:0pt'>例:对一个大于或等于</span><span
lang=EN-US style='mso-font-kerning:0pt'>3</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>的正整数,判断它是不是一个素数。</span><span lang=EN-US
style='mso-font-kerning:0pt'><o:p></o:p></span></p>
<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN style='mso-font-kerning:0pt'>所谓素数,是指除</span><span
lang=EN-US style='mso-font-kerning:0pt'>l</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>和该数本身之外,不能被其它任何整数整除的数。例如,</span><span lang=EN-US
style='mso-font-kerning:0pt'>13</span><span lang=ZH-CN style='mso-font-kerning:
0pt'>是素数,因为它不能被</span><span lang=EN-US style='mso-font-kerning:0pt'>2</span><span
lang=ZH-CN style='mso-font-kerning:0pt'>,</span><span lang=EN-US
style='mso-font-kerning:0pt'>3</span><span lang=ZH-CN style='mso-font-kerning:
0pt'>,</span><span lang=EN-US style='mso-font-kerning:0pt'>4</span><span
lang=ZH-CN style='mso-font-kerning:0pt'>,…,</span><span lang=EN-US
style='mso-font-kerning:0pt'>12</span><span lang=ZH-CN style='mso-font-kerning:
0pt'>整除。</span><span lang=EN-US style='mso-font-kerning:0pt'><o:p></o:p></span></p>
<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN style='mso-font-kerning:0pt'>判断一个数</span><span
lang=EN-US style='mso-font-kerning:0pt'>N(N</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>></span><span lang=EN-US style='mso-font-kerning:
0pt'>3)</span><span lang=ZH-CN style='mso-font-kerning:0pt'>是否素数的方法是很简单的:将</span><span
lang=EN-US style='mso-font-kerning:0pt'>N</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>作为被除数,将</span><span lang=EN-US style='mso-font-kerning:
0pt'>2</span><span lang=ZH-CN style='mso-font-kerning:0pt'>到</span><span
lang=EN-US style='mso-font-kerning:0pt'>(N</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>—</span><span lang=EN-US style='mso-font-kerning:
0pt'>1)</span><span lang=ZH-CN style='mso-font-kerning:0pt'>各个整数轮流作为除数,如果都不能被整除,则</span><span
lang=EN-US style='mso-font-kerning:0pt'>N</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>为素数。算法可以表示如下:</span><span lang=EN-US
style='mso-font-kerning:0pt'><o:p></o:p></span></p>
<div style='mso-element:frame;mso-element-frame-width:197.9pt;mso-element-frame-height:
367.9pt;mso-element-frame-hspace:9.0pt;mso-element-wrap:around;mso-element-anchor-vertical:
page;mso-element-anchor-horizontal:page;mso-element-left:9.2pt;mso-element-top:
.05pt'>
<table cellspacing=0 cellpadding=0 hspace=0 vspace=0 width=276 height=491
align=left>
<tr>
<td valign=top align=left height=491 style='padding-top:0cm;padding-right:
9.0pt;padding-bottom:0cm;padding-left:9.0pt'>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div style='border:solid black 1.0pt;mso-border-alt:solid black .75pt;
padding:7.0pt 7.0pt 7.0pt 7.0pt'>
<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
border:none;mso-border-alt:solid black .75pt;padding:0cm;mso-padding-alt:
7.0pt 7.0pt 7.0pt 7.0pt;mso-element:frame;mso-element-frame-width:197.9pt;
mso-element-frame-height:367.9pt;mso-element-frame-hspace:9.0pt;mso-element-wrap:
around;mso-element-anchor-vertical:page;mso-element-anchor-horizontal:page;
mso-element-left:9.2pt;mso-element-top:.05pt;mso-char-indent-size:10pt'><span
lang=EN-US><!--[if gte vml 1]><v:shape id="_x0000_i1025" type="#_x0000_t75"
style='width:183pt;height:5in'>
<v:imagedata src="Sec2-1.files/image025.wmz" o:title=""/>
</v:shape><![endif]--><![if !vml]><img width=244 height=480
src="Sec2-1.files/image008.gif" v:shapes="_x0000_i1025"><![endif]></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</td>
</tr>
</table>
</div>
<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN style='mso-font-kerning:0pt'>① 输入</span><span
lang=EN-US style='mso-font-kerning:0pt'>N</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>的值。</span><span lang=EN-US style='mso-font-kerning:
0pt'><o:p></o:p></span></p>
<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN style='mso-font-kerning:0pt'>②</span><span
lang=EN-US style='mso-font-kerning:0pt'> I</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>=</span><span lang=EN-US style='mso-font-kerning:
0pt'>2</span><span lang=ZH-CN style='mso-font-kerning:0pt'>。</span><span
lang=EN-US style='mso-font-kerning:0pt'><o:p></o:p></span></p>
<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN style='mso-font-kerning:0pt'>③</span><span
lang=EN-US style='mso-font-kerning:0pt'> N</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>被</span><span lang=EN-US style='mso-font-kerning:
0pt'>I</span><span lang=ZH-CN style='mso-font-kerning:0pt'>除。</span><span
lang=EN-US style='mso-font-kerning:0pt'><o:p></o:p></span></p>
<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN style='mso-font-kerning:0pt'>④ 如果余数为</span><span
lang=EN-US style='mso-font-kerning:0pt'>0</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>,表示</span><span lang=EN-US style='mso-font-kerning:
0pt'>N</span><span lang=ZH-CN style='mso-font-kerning:0pt'>能被</span><span
lang=EN-US style='mso-font-kerning:0pt'>I</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>整除,则打印</span><span lang=EN-US style='mso-font-kerning:
0pt'>N</span><span lang=ZH-CN style='mso-font-kerning:0pt'>“不是素数”,算法结束。否则继续。</span><span
lang=EN-US style='mso-font-kerning:0pt'><o:p></o:p></span></p>
<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN style='mso-font-kerning:0pt'>⑤</span><span
lang=EN-US style='mso-font-kerning:0pt'> I</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>=</span><span lang=EN-US style='mso-font-kerning:
0pt'>I+1</span><span lang=ZH-CN style='mso-font-kerning:0pt'>。</span><span
lang=EN-US style='mso-font-kerning:0pt'><o:p></o:p></span></p>
<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN style='mso-font-kerning:0pt'>⑥ 如果</span><span
lang=EN-US style='mso-font-kerning:0pt'>I</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>≤</span><span lang=EN-US style='mso-font-kerning:
0pt'>N</span><span lang=ZH-CN style='mso-font-kerning:0pt'>-</span><span
lang=EN-US style='mso-font-kerning:0pt'>l</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>,返回③。否则打印</span><span lang=EN-US style='mso-font-kerning:
0pt'>N</span><span lang=ZH-CN style='mso-font-kerning:0pt'>“是素数”。然后结束。</span><span
lang=EN-US style='mso-font-kerning:0pt'><o:p></o:p></span></p>
<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN style='mso-font-kerning:0pt'>实际上.</span><span
lang=EN-US style='mso-font-kerning:0pt'>N</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>不必被</span><span lang=EN-US style='mso-font-kerning:
0pt'>2</span><span lang=ZH-CN style='mso-font-kerning:0pt'>到</span><span
lang=EN-US style='mso-font-kerning:0pt'>(N</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>一</span><span lang=EN-US style='mso-font-kerning:
0pt'>1)</span><span lang=ZH-CN style='mso-font-kerning:0pt'>的整数除,只需被</span><span
lang=EN-US style='mso-font-kerning:0pt'>2</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>到</span><span lang=EN-US style='mso-font-kerning:
0pt'>N/2</span><span lang=ZH-CN style='mso-font-kerning:0pt'>间整数除即可,甚至只需被</span><span
lang=EN-US style='mso-font-kerning:0pt'>2</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>到</span><span lang=EN-US style='mso-font-kerning:
0pt'><span style='position:relative;top:4.0pt;mso-text-raise:-4.0pt'><!--[if gte vml 1]><v:shape
id="_x0000_i1026" type="#_x0000_t75" style='width:23.25pt;height:18pt' o:ole="">
<v:imagedata src="Sec2-1.files/image026.wmz" o:title=""/>
</v:shape><![endif]--><![if !vml]><img width=31 height=24
src="Sec2-1.files/image010.gif" v:shapes="_x0000_i1026"><![endif]></span><!--[if gte mso 9]><xml>
<o:OLEObject Type="Embed" ProgID="Equation.3" ShapeID="_x0000_i1026"
DrawAspect="Content" ObjectID="_1069676436">
</o:OLEObject>
</xml><![endif]--></span><span lang=ZH-CN style='mso-font-kerning:0pt'>之间的整数除即可。例如,判断</span><span
lang=EN-US style='mso-font-kerning:0pt'>13</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>是否素数,只需将</span><span lang=EN-US style='mso-font-kerning:
0pt'>13</span><span lang=ZH-CN style='mso-font-kerning:0pt'>被</span><span
lang=EN-US style='mso-font-kerning:0pt'>2</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>,</span><span lang=EN-US style='mso-font-kerning:
0pt'>3</span><span lang=ZH-CN style='mso-font-kerning:0pt'>除即可,如都除不尽,</span><span
lang=EN-US style='mso-font-kerning:0pt'>N</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>必为素数。步骤⑥可改为:</span><span lang=EN-US
style='mso-font-kerning:0pt'><o:p></o:p></span></p>
<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN style='mso-font-kerning:0pt'>⑥:如果</span><span
lang=EN-US style='mso-font-kerning:0pt'>I</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>≤</span><span lang=EN-US style='mso-font-kerning:
0pt'><span style='position:relative;top:4.0pt;mso-text-raise:-4.0pt'><!--[if gte vml 1]><v:shape
id="_x0000_i1027" type="#_x0000_t75" style='width:23.25pt;height:18pt' o:ole="">
<v:imagedata src="Sec2-1.files/image026.wmz" o:title=""/>
</v:shape><![endif]--><![if !vml]><img width=31 height=24
src="Sec2-1.files/image010.gif" v:shapes="_x0000_i1027"><![endif]></span><!--[if gte mso 9]><xml>
<o:OLEObject Type="Embed" ProgID="Equation.3" ShapeID="_x0000_i1027"
DrawAspect="Content" ObjectID="_1069676437">
</o:OLEObject>
</xml><![endif]--></span><span lang=ZH-CN style='mso-font-kerning:0pt'>,返回③。否则算法结束。</span><span
lang=EN-US style='mso-font-kerning:0pt'><o:p></o:p></span></p>
<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=EN-US style='mso-font-kerning:0pt'>Fortran</span><span
lang=ZH-CN style='mso-font-kerning:0pt'>代码文件为</span><span lang=EN-US
style='mso-font-kerning:0pt'><a href="example/e_212_01.f">[e_212_01.f]</a><a
href="example/e_212_02.f">[e_212_02.f]</a></span><span lang=ZH-CN
style='mso-font-kerning:0pt'>。</span><span lang=EN-US style='mso-font-kerning:
0pt'><o:p></o:p></span></p>
<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=EN-US style='mso-font-kerning:0pt'><o:p> </o:p></span></p>
<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=EN-US style='mso-font-kerning:0pt'><o:p> </o:p></span></p>
<p style='margin-left:18.0pt;text-indent:-18.0pt;mso-list:l4 level1 lfo6;
tab-stops:list 18.0pt'><a name="第2_1_2b"></a><![if !supportLists]><span
lang=EN-US style='font-family:宋体;mso-bidi-font-family:宋体;color:red'><span
style='mso-list:Ignore'>a)<span style='font:7.0pt "Times New Roman"'>
</span></span></span><![endif]><span lang=ZH-CN style='font-family:宋体;
color:red'>三种基本结构</span><span lang=EN-US style='font-family:宋体;color:red'><o:p></o:p></span></p>
<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN style='mso-font-kerning:0pt'>传统的流程图用流程线指出各框的执行顺序,对流程线的使用没有严格限制。因此,使用者可以毫不受限制地使流程随意地转来转去,使流程图变得毫无规律,阅读者要花很大精力去追踪流程,使人难以理解算法的逻辑。如果我们写出的算法能限制流程的无规律任意转向,而像一本书那样,由各章各节顺序组成,那样,阅读起来就很方便,不会有任何困难,只需从头到尾顺序地看下去即可。</span><span
lang=EN-US style='mso-font-kerning:0pt'><o:p></o:p></span></p>
<p class=MsoBodyTextIndent2 style='line-height:17.0pt;mso-line-height-rule:
exactly'><span lang=ZH-CN style='mso-font-kerning:0pt'>为了提高算法的质量,使算法的设计和阅读方便,必须限制箭头的滥用,即不允许无规律地使流程乱转向,只能按顺序地进行下去。但是,算法上难免会包含一些分支和循环,而不可能全部由一个一个框顺序组成。如上例不是由各框顺序进行的,包含一些流程的向前或向后的非顺序转移。为了解决这个问题,人们设想,如果规定出几种基本结构,然后由这些基本结构按一定规律组成一个算法结构,就如同用一些基本预制构件来搭成房屋一样,整个算法的结构是由上而下地将各个基本结构顺序排列起来的。</span><span
lang=EN-US style='mso-font-kerning:0pt'>1966</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>年,</span><span lang=EN-US style='mso-font-kerning:
0pt'>Bohra</span><span lang=ZH-CN style='mso-font-kerning:0pt'>和</span><span
lang=EN-US style='mso-font-kerning:0pt'>Jacoplni</span><span lang=ZH-CN
style='mso-font-kerning:0pt'>提出了以下三种基本结构,用这三种基本结构作为表示一个良好算法的基本单元。</span><span
lang=EN-US style='mso-font-kerning:0pt'><o:p></o:p></span></p>
<p class=MsoBodyTextIndent2 style='margin-left:48.0pt;text-indent:-24.0pt;
mso-char-indent-count:0;line-height:17.0pt;mso-line-height-rule:exactly;
mso-list:l3 level1 lfo12;tab-stops:45.8pt list 48.0pt left 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-char-indent-size:0cm'><![if !supportLists]><span lang=EN-US
style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
Symbol
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -