1-N-S流程图学习

合集下载

N-S流程图剖析

N-S流程图剖析

例: “打印x的绝对值 ”的算法可以用伪代 码表示为:
IF x is positive THEN print x ELSE print -x
也可以用汉字伪代码表示:
若 x为正 打印 x 否则 打印 -x
也可以中英文混用,如:
IF x 为正 print x ELSE print -x
例2.16 求5!。用伪代 码表示算法:
§2.4.5 用伪代码表示算法
• 概念:伪代码是用介于自然语言和计算机 语言之间的文字和符号来描述算法。 • 特点:它如同一篇文章一样 ,自上而下地 写下来。每一行(或几行)表示一个基本操 作。它不用图形符号,因此书写方便 、格 式紧凑,也比较好懂,也便于向计算机语 言算法(即程序)过渡。 • 用处:适用于设计过程中需要反复修改时
例2.12 将例2.2 的算的学 号和成绩)
没有输入数据
例2.12 将例2.2 的算法用N--S 图表示。( 打印50名学 生中成绩高 于80分的学 号和成绩)
有输入数据
例2.15 将例2.5判别 素数的算法用N--S 流程图表示。 传统流程图分析:
N--S流程图用以下的流程图符号:
(1)顺序结构
(2)选择结构
(3)循环结构
用三种N--S流程图中的基本框,可以组成复杂 的N--S流程图。图中的A框或B框,可以是一 个简单的操作,也可以是三个基本结构之一。
A框可以是一个选择结构
B框可以是一个循环结构
例2.11 将例2.1 的求5!算法用 N--S图表示
此图不符合基本结构特点! 由于不能分解为三种基本结 构,就无法直接用N--S流 程图的三种基本结构的符号 来表示。因此,应当先作必 要的变换。 出口1
出口2
例2.15 将例2.5判别 素数的算法用N--S 流程图表示。 传统流程图变换为:

程序流程图【精选文档】

程序流程图【精选文档】

程序流程图1概述利用计算机进行程序设计时,不仅仅只处理一些简单的数据,在大部分的程序设计里处理的问题还是相当复杂的.对于那些复杂的程序设计,读者不可能直接就能写出程序的源代码,而是要通过一些具体的设计方法(如用程序流程图)把程序设计思想先写出来,然后根据程序流程图编写代码。

本章将具体介绍进行程序设计时使用的基本方法和C程序的流程控制。

2程序设计的基本知识2.1程序流程图在描述一个程序的基本结构思想时有很多种方法,其中程序流程图是最常用也是最基本的方法。

2.1.1传统程序流程图传统流程图表示法的特点是用一些图框表示各种类型的操作,用线表示这些操作的执行顺序.美国国家标准化协会ANSI规定了一些常用的流程图符号,现已为世界各国普遍采用.我国也有自己的国家标准GB 1526—89与该标准基本相同,本书就参照ANSI标准做具体介绍。

标准中各种图示如图3.1所示。

起止框输入输出框判断框处理框或流程线连接点注释框图 3.1 传统流程图表示法下面对其中一些主要符号作简要说明:(1)起止框是用来标识程序的开始和结束位置的.规定流程图以起止框开始,以起止框结束。

(2)输入输出框也叫数据框,其中可以注明数据名称、来源、用途或其它的文字说明。

(3)菱形框的作用是对一个给定的条件进行判断,根据给定的条件是否成立来决定如何执行其后的操作。

(4)处理框用矩形表示各种处理功能.例如,执行一个或一组特定的操作,从而使信息的值、信息的形式或所在位置发生变化。

另外在矩形框内可注明特定处理名称或其简要功能。

(5)流程线用带箭头的直线表示程序的执行顺序。

当流程自左向右或自上向下时流程线可以不带箭头,其它情况应加箭头表示流程.(6)连接点用小圆圈表示将画在不同地方的流程线连接起来。

下图中有两个以①为标志的连接点,它表示这两个点是互联在一起的,实际它们是同一个点。

这种连接通常用在图形画不下而需要分开画时。

(7)注释框不是流程图的必要部分,其不反映流程操作,只是为了流程图中某些操作做解释补充的,以帮助阅读流程图的人更好的理解流程图的作用。

C语言程序设计框图

C语言程序设计框图

第3章 控制结构
说明:
switch后面的表达式的值类型可以是整型、字符型或枚 举型。 当表达式的值与某个case中的常量表达式的值相等时, 就执行相应的case后的语句序列,直到遇到break语句或到 达switch结构末尾。 多个连续的case语句可以共用一个语句序列。 case 后的不同常量表达式的值不能相等。 break的作用是改变程序在switch结构中的执行流程, 将程序流程跳出switch语句,转到switch语句后的下一条语 句去执行。 switch语句中允许嵌套switch语句。
C语言程序设计电子教案
3.1 程序结构框图
3.1.3 N-S图
3种基本结构的N-S图
第3章 控制结构
顺序结构: 分支结构:
它是按照语句 它是根据给定条件
出现的先后顺 进行判断,选择其
序依次执行的 中的一个分支执行
。如上图所示 ,先执行A模 块,再执行B
。如上图所示,P 表示条件,当P成 立时执行分支A模 块,否则执行分支
复合语句:由一对大括号括起来的一条或多条语句。
被括起来的语句可以是这4类的任何一类语句,常用于函数
体或循环体。
C语言程序设计电子教案
3.2 二分支结构
3.2.1 二分支if语句
第3章 控制结构
基本形式:
if (表达式) 语句1;
else 语句2;
真(非0)表达式
假 (0)
语句1
语句2
例如: if(x>y)
C语言程序设计电子教案
第3章 控制结构
第3章 控制结构
返回总目录
C语言程序设计电子教案
目录
3.1 程序结构框图 3.2 二分支结构 3.3 多分支结构 3.4 循环结构 3.5 break与continue语句 3.6

(完整版)《C语言程序设计》教案(清华谭浩强)

(完整版)《C语言程序设计》教案(清华谭浩强)

第一章C语言及程序设计概述本章要求:了解C语言的特点、C语言与其它高级语言相比有什么异同;了解C程序在PC机上的建立、编译和运行过程;了解C语言程序设计思想的基本篇;重点:①C语言的主要特点;②C语言在PC机上的运行过程及上机操作过程;③常用算法的应用难点:无一、C语言概述C语言是目前国际上在各种计算机运行较为广泛流行的一种高级语言.主要表现为:C语言:适合于作为系统描述语言—-可用来写系统软件。

具有高级语言的特点,又有低级语言(汇编语言)的特点。

C语言:是AT&T贝尔实验室的Dennis Ritchie在1972年发明的。

C语言:是在B语言的基础上发展起来的.(ALGOL 60)C语言:最早开始是用于UNIX操作系统。

(C语言和UNIX是相辅相成的)DBASE 、Microsoft Exel 、 Microsoft Word、PC—DOS等,则是用C语言加上若干汇编子程序编写的。

1983年:——制定的新标准,称为(美国国家标准化协会)ANSI C1987年:—-Turbo C1.0 (Borland) 1988年:TC 1.5(图形和文本窗口)1989年:——Turbo C2。

0 (DOS操作系统、查错、Tiny模式生成com文件)1991年:—-Turbo C++(3.0) 支持windows 3.X说明:Turbo C语言可以在程序的任何地方嵌入汇编代码,提高速度,可以直接使用存储器和寄存器。

二.C语言的特点1.语言简洁、紧凑、使用方便、灵活C语言:——共有32个关键字,9种控制语句;程序书写自由,主要用小写字母表示;2.运算符丰富C语言的运算符包含的范围很广泛,共有34种运算符;即:把括号、赋值、强制类型转换都作为运算符处理3.有丰富的数据类型整型、实型、字符型、数据类型、指针类型、结构体类型、共用体(联合)类型等。

实现复杂的数据结构(链表、树、栈、图)的运算。

4.具有结构化的功能,用函数作为程序模块,实现程序的模块化5.语法限制不太严格,程序设计自由度大.(放宽了语法检查)例:1)对数组下标越界不作检查,由程序编写者自己保证程序的正确;2)整型数据、字符型数据、逻辑型数据可以通用。

三种基本结构流程图

三种基本结构流程图

三种基本结构流程图1.顺序结构图1 顺序结构N-S流程图2.选择结构if语句的三种形式(1)形式一:if(表达式)语句;该形式表示的是单分支选择结构,其N-S流程图如图2所示:图2 形式一N-S流程图(2)形式二:if(表达式)语句1;else 语句2;该形式表示的是双分支选择结构,其N-S流程图如图3所示:图3 形式二N-S流程图(3)形式三:if(表达式1)语句1;else if(表达式2)语句2;else if(表达式3)语句3;……else if(表达式n-1)语句n-1;else 语句n;该形式表示的是多分支选择结构,其N-S流程图如图4所示:图4 形式二N-S流程图◆ switch 语句多分支选择的问题,可以使用嵌套的if 语句解决。

但在某些情况下,使用switch 语句可能更为方便。

switch 语句的一般形式是:switch (表达式){ case 常量表达式E1: 语句组1; break ;case 常量表达式E2: 语句组2; break ;……case 常量表达式En : 语句组n ; break ;default :语句组n+1;}图5 switch 语句N -S 流程图3.循环结构◆ while 语句(1)一般形式While (表达式)循环体语句;(2)N -S 流程图如图6所示:图6 while 语句N -S 流程图◆ do-while 语句(1)一般形式do{循环体语句;}while (表达式);(2)N -S 流程图如图7所示: 图7 do-while 语句N -S 流程图◆ for 语句(1)一般形式for(表达式1;表达式2;表达式3)循环体语句;(2)N-S流程图如图8所示:图8 for语句N-S流程图X。

流程图-ns图-pad图

流程图-ns图-pad图

流程图-n s图-p a d图-p d l-h i p o(总9页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--流程图、N-S图、PAD图、判定表、PDL、HIPO图程序流程图程序流程图独立于任何一种程序设计语言,比较直观、清晰,易于学习掌握。

但流程图也存在一些严重的缺点。

例如流程图所使用的符号不够规范,常常使用一些习惯性用法。

特别是表示程序控制流程的箭头可以不受任何约束,随意转移控制。

这些现象显然是与软件工程化的要求相背离的。

为了消除这些缺点,应对流程图所使用的符号做出严格的定义,不允许人们随心所欲地画出各种不规范的流程图。

例如,为使用流程图描述结构化程序,必须限制流程图只能使用图所给出的五种基本控制结构。

图流程图的基本控制结构任何复杂的程序流程图都应由这五种基本控制结构组合或嵌套而成。

作为上述五种控制结构相互组合和嵌套的实例,图示给出一个程序的流程图。

图中增加了一些虚线构成的框,目的是便于理解控制结构的嵌套关系。

显然,这个流程图所描述的程序是结构化的。

图流程图的基本控制结构N-S图Nassi和Shneiderman 提出了一种符合结构化程序设计原则的图形描述工具,叫做盒图,也叫做N-S图。

为表示五种基本控制结构,在N-S图中规定了五种图形构件。

参看图。

为说明N-S图的使用,仍用图给出的实例,将它用如图所示的N-S图表示。

如前所述,任何一个N-S图,都是前面介绍的五种基本控制结构相互组合与嵌套的结果。

当问题很复杂时,N-S图可能很大。

图 N-S图的五种基本控制结构图 N-S图的实例PADPAD是Problem Analysis Diagram的缩写,它是日本日立公司提出,由程序流程图演化来的,用结构化程序设计思想表现程序逻辑结构的图形工具。

现在已为ISO认可。

PAD也设置了五种基本控制结构的图式,并允许递归使用。

图 PAD的基本控制结构做为PAD应用的实例,图给出了图程序的PAD表示。

编程中的流程图入门教学ppt课件

编程中的流程图入门教学ppt课件

画程序框图的规则
1)框图一般按从上到下、从左到右的方向画。 2)使用标准的图形符号。 3)程序框一般只有一个进入点和一个退出点。 4)判断框有两个退出点, 用“是”与“否”
或“Y”与“N”表示判断的两种结果。 5)在图形符号内描述的语言要简练清楚。
病原体侵入机体,消弱机体防御机能 ,破坏 机体内 环境的 相对稳 定性, 且在一 定部位 生长繁 殖,引 起不同 程度的 病理生 理过程
算法: S1,输入r. S2,S=π*r * r S3, 输出S.
病原体侵入机体,消弱机体防御机能 ,破坏 机体内 环境的 相对稳 定性, 且在一 定部位 生长繁 殖,引 起不同 程度的 病理生 理过程
开始 输入r S=π*r * r 输出S 结束
病原体侵入机体,消弱机体防御机能 ,破坏 机体内 环境的 相对稳 定性, 且在一 定部位 生长繁 殖,引 起不同 程度的 病理生 理过程
满足条件? 是
循环体

当型
循环体 是 满足条件? 否
病原体侵入机体,消弱机体防御机能 ,破坏 机体内 环境的 相对稳 定性, 且在一 定部位 生长繁 殖,引 起不同 程度的 病理生 理过程
是 满足条件?

循环体
循环体
否 满足条件?

直接转换成当型
病原体侵入机体,消弱机体防御机能 ,破坏 机体内 环境的 相对稳 定性, 且在一 定部位 生长繁 殖,引 起不同 程度的 病理生 理过程
程序框图2:
开始
输入a,b,c
max=a
b>max ? 否
c>max ? 否
输出max
结束
是 max=b
是 max=c
病原体侵入机体,消弱机体防御机能 ,破坏 机体内 环境的 相对稳 定性, 且在一 定部位 生长繁 殖,引 起不同 程度的 病理生 理过程

1N-S盒图2PAD图3程序流程图4E-R图

1N-S盒图2PAD图3程序流程图4E-R图

N-S盒图N-S图也被称为盒图或CHAPIN图。

流程图由一些特定意义的图形、流程线及简要的文字说明构成,它能清晰明确地表示程序的运行过程。

在使用过程中,人们发现流程线不一定是必需的,为此,人们设计了一种新的流程图,它把整个程序写在一个大框图内,这个大框图由若干个小的基本框图构成,这种流程图简称N-S图.N-S图结构1.顺序结构N-S图2.选择结构N-S图3.循环结构N-S图1)当型循环 2)直到型循环-----------E-R图E-R图也即实体-联系图(Entity Relationship Diagram),提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。

构成E-R图的基本要素是实体型、属性和联系,其表示方法为:·实体型(Entity):用矩形表示,矩形框内写明实体名;比如学生张三丰、学生李寻欢都是实体。

如果是弱实体的话,在矩形外面再套实线矩形。

·属性(Attribute):用椭圆形表示,并用无向边将其与相应的实体连接起来;比如学生的姓名、学号、性别、都是属性。

如果是多值属性的话,再椭圆形外面再套实线椭圆。

如果是派生属性则用虚线椭圆表示。

·联系(Relationship):用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1 : 1,1 : n或m : n)。

比如老师给学生授课存在授课关系,学生选课存在选课关系。

如果是弱实体的联系则在菱形外面再套菱形。

-------------PAD图PAD是问题分析图(Problem Analysis Diagram)的英文缩写,自1973年由日本日立公司发明以来,已经得到一定程度的推广。

它用二维数形结构的图表示程序的控制流,将这种图转换为程序代码比较容易。

优点1.使用表示结构优化控制结构的PAD符号所设计出来的程序必然是程序化程序2.PAD图所描述的程序结构十分清晰。

N-S流程图资料PPT课件

N-S流程图资料PPT课件
也可以写成以下形式:
BEGIN{算法开始} 1t 2 i while i≤5 {t×i t i+1 i} print t END{算法结束}
开始
置t的初值为1 置i的初值为2 当i<=5,执行下面操作:
使t=t×i 使i=i+1 {循环体到此结束} 输出t的值 结束
写在最后
成功的基础在于好的学习习惯
全部算法写在一个矩形框内在该框内还可以包含其它的从属于它的框或者说由一些基本的框组成一个大的框
§2.4.4 用N--S流程图表示算法
1973年美国学者I.Nassi和B.Shneiderman 提出了一种新的流程图形式。在这种流程图 中,完全去掉了带箭头的流程线。全部算法 写在一个矩形框内,在该框内还可以包含其 它的从属于它的框,或者说,由一些基本的 框组成一个大的框。这种流程图又称N--S结 构化流程图 。
此图不符合基本结构特点! 由于不能分解为三种基本结 构,就无法直接用N--S流 程图的三种基本结构的符号 来表示。因此,应当先作必 要的变换。
出口1 出口2
例2.15 将例2.5判别 素数的算法用N--S 流程图表示。 传统流程图变换为:
一个出口
用N--S流程图表示:
N--S图表示算法的优点
• 比文字描述直观、形象、 易于理解;比 传统流程图紧凑易画。尤其是它废除了 流程线,整个算法结构是由各个基本结 构按顺序组成的,N--S流程图中的上下 顺序就是执行时的顺序。用N--S图表示 的算法都是结构化的算法,因为它不可 能出现流程无规律的跳转,而只能自上 而下地顺序执行。
The foundation of success lies in good habits
15
谢谢聆听

1-N-S流程图学习

1-N-S流程图学习
S5:如果i≤5,返回重新执行步骤S3以及其后的S4和S5;否则,算法结束。
如果计算100!只需将S5:若i≤5改成i≤100即可。
如果该求1×3×5×7×9×11,算法也只需做很少的改动:
S1: 1→t
S2: 3→i
S3: t×i→t
S4: i+2→t
S5:若i≤11,返回S3,否则,结束。
该算法不仅正确,而且是计算机较好的算法,因为计算机是高速运算的自动机器,实现循环轻而易举。
S3:若y能被4整除,不能被100整除,则输出y“是闰年”,然后转到S6
S4:若y能被100整除,又能被400整除,输出y“是闰年”否则输出y“不是闰年”,然后转到S6
S5:输出y“不是闰年”。
S6:y+1→y
S7:当y≤2500时,返回S2继续执行,否则,结束。
【例2.4】求 。
算法可表示如下:
S1: sigh=1
算法可表示如下:
S1:输入n的值
S2: i=2
S3: n被i除,得余数r
S4:如果r=0,表示n能被i整除,则打印n“不是素数”,算法结束;否则执行S5
S5: i+1→i
S6:如果i≤n-1,返回S3;否则打印n“是素数”;然后算法结束。
改进:
S6:如果i≤ ,返回S3;否则打印n“是素数”;然后算法结束。
2.4.2
流程图表示算法,直观形象,易于理解。
【例2.6】将例2.1求5!的算用流程图表示。
【例2.7】将例2.2的算用流程图表示。
【例2.8】将例2.3判定闰年的算用流程图表示。
【例2.9】将例2.4求 的算用流程图表示。
一个流程图包括:
1.表示相应操作的框;

第四章 循环结构程序设计

第四章 循环结构程序设计

while(i<=100)
{ i++;
程序运行结果: sum=5050
sum=sum+i;
}
6
4.3 do-while语句
do-while语句的结构 do 语句 while(表达式);
例如: do
x-=1; while(x>0);
功能:
1)执行“语句”。 2)计算“表达式”的值。如果值为非0,转1);否则转3)。
}
8
4.3 do-while语句
1)循环体如果包含一个以上的语句,要用复合语句表示。 2)在循环体中应有使循环趋于结束的语句。 3)while语句的特点是先执行循环体,然后判断表达式的值。 4)一般情况下,用while语句和用do-while语句处理同一 个问题时,若二者的循环体部分一样,其结果也一样。但如
18
4.7 goto语句以及用goto语句构成循环结构
goto语句的一般格式:
goto 语句标号;
例如: goto loop;
功能:程序执行到goto语句时,将程序流程转到语句标号指定的 语句去执行。
有标号的语句的格式:
语句标号: 语句
例如: loop: sum=sum+i;
19
4.7 goto语句以及用goto语句构成循环结构
【例4-9】用goto语句实现求1~100累加和。
#include <stdio.h>
main() { int n=1, sum=0; loop: sum += n; n++;
if(n<=100) goto loop;
printf("sum=%d\n",sum); }

如何制作传统流程图和N-S流程图

如何制作传统流程图和N-S流程图

一种构造化旳算法是由某些基本构造顺序构 成旳;在基本构造之间不存在向前或向后旳跳 转,流程旳转移只存在于一种基本构造范围之 内;一种非构造化旳算法能够用一种等价旳构 造化算法替代,其功能不变。假如一种算法不 能分解为若干个基本构造,则它必然不是一种 构造化旳算法。
N-S图犹如一种多层旳盒子,又称盒图
④连接图例(用“连接线”将图例连接起来) ⑤保存和打印图表



开始
1。。 2。。
3。。
4。。 结束

开始
1。。
2。。
N 3。。 Y 4。。
结束
优点:直观形象,易于了解
缺陷:对流程线旳使用没有严格限制,使流程 随意转来转去,毫无规律,使人难以了解算法 旳逻辑
全部算法写在一种矩形框内,在该框内还能够包括其他隶属于它旳框, 或者说,由某些基本旳框构成一种大旳框
①创建流程图(根据要体现旳活动,选择“流程图原 则符号”中相应旳图例)
②移形动和调整状旳大小(移动只需单击选择图例, 然后将它拖到新旳位置;调整图形旳大小只需点图 中要调整旳图例,图例旳边角出现小圆点,点其中 某个小圆点不放,向某个方向拖动即可)
③添加修改文本(选择某个图例,点右键,然后弹出 菜单中选择添加文本,在图例中输入文本即可。)
N-S流程图用下列旳流程图符号
A B
顺序构造
P
成立
不成立
AB
选择构造
当P1成立 A
当型循环构造
A
直到P1成立
直到型循环构造
①创建流程框 ②调整流程框 ③添加文本 ④保存和打印图表



成立
P≥100 不成立
r==0.08 当n≤10

软件工程习题与答案(第1次)

软件工程习题与答案(第1次)

软件工程学习资料(1)一、填空1、软件工程学的内容可包括理论、结构、方法、工具、环境、管理、规范等。

2、N-S图中的顺序结构:在PAD图中表示为:PAD图设置五种基本控制结构,并允许递归使用。

3、模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合。

耦合衡量不同模块彼此之间相互依赖的紧密程度。

内聚衡量一个模块内部各个元素彼此结合的紧密程度。

4、软件测试方法按测试过程是否在实际应用环境中分为静态分析和动态测试。

二、单项选择题1、模块在同一段时间内完成各种初始化工作,这属于。

A.偶然内聚B.逻辑内聚C.时间内聚D.过程内聚2、在编程安全方法方面,一般来说无法做到。

A. 避开错误B.完美无缺,绝无错误C. 冗余D.设计防错程序3、在衡量软件质量时,最重要的标准是。

A. 成本低B. 可维护性好C. 符合要求D. 界面友好4、下列工具中,不属于详细设计工具的是。

A. 测试工具B. 图形工具C. 表格工具D. 语言工具5、下列哪个做法会导致不利的语句结构A.避免使用ELSE GOTO结构B.对递归定义的数据结构尽量不再使用递归过程C.模块功能尽可能单一化,模块间的耦合能够清晰可见D.利用信息隐蔽,确保每一个模块的独立性三、判断题1、Jackson系统开发方法是一种典型的面向对象的分析设计方法。

(×)2、HIPO图是由一组IPO图加一张HC图组成,是美国IBM公司在软件设计中使用的主要表达工具。

(√)3、在软件开发中采用原型系统策略的主要困难是成本问题。

(√)4、软件开发所需的资源可以画成一个金字塔,塔的高层最基本的资源是人。

(√)5、下图表示的是WHILE 型循环。

(×6的顺序,而数据流图只反映数据的流向,不反映处理逻辑的先后。

(√)四、问答题1、什么是软件答:软件是一种产品,包含下面三方面的含义。

(1)在运行中能提供所希望的功能和性能的指令集(即程序);(2)使程序能够正确运行的数据结构;(3)描述程序研制过程、方法所用的文档。

N-S结构化流程图

N-S结构化流程图

(1) 一条简单的指令,用一个矩形框来表示,见图1-5
图1-5
顺序结构可以表示如图1-6
图1-6
如交换两个变量的值的过程就是顺序结构.见图1-7
图1-7交换变量
(2)判断选择结构用图1-8形式的框图表示:
图1-8
如判断某一年份(year)是否闰年就是一个选择结构, 闰年的判断方法是:如果此年份
是400的倍数,则该年为闰年,或者此年份不是100的倍数却是4的倍数,则该年也是闰年. 见图1-9
图1-9
与框图对应if-then语句为:
if year mod 100 = 0
then if year mod 400 = 0 then writeln('yes') else writeln ('no')
else if year mod 4 = 0 then writeln ('yes') else writeln('no')
(3)循环结构用图1-10和图1-11形式的框图表示.
图1-10表示的是当型循环,图1-11表示的是直到型循环.
图1-10 图1-11
如求100个数的和的算法可用直到型循环结构流程图来表示,见图1-12.
图1-12
而判断一个自然数是非为质数的算法可用直到型循环结构流程图来表示,见图1-13.
图1-13。

软件工程(第五版)--习题及答案--第五章

软件工程(第五版)--习题及答案--第五章

软件⼯程(第五版)--习题及答案--第五章⼀、判断题1、(√)详细设计也称模块设计。

2、(×)在数据代码设计时,应尽量让⼀条代码代表多个信息。

3、(×)在数据代码设计时,应可能设计字母和数字混合代码。

4、(×)在输出界⾯设计时,要尽可能使⽤代码或缩写,以求简洁。

5、(×)详细设计评审应尽可能和概要设计评审⼀同进⾏。

⼆、选择题1、软件详细设计的主要任务是确定每个模块的(A)。

A、算法和使⽤的数据结构B、外部接⼝C、功能D、程序2、借助于软件⼯具,可将(C)容易地转换为⾼级语⾔源程序。

A、程序流程图B、N-S图C、PAD图D、判定表3、不属于详细设计⼯具的是(A)。

A、DFD图B、PAD图C、PDlD、N-S图4、程序的三种基本结构是(C)。

A、过程、⼦过程和⼦程序B、递归、堆栈和队列C、顺序、选择和重复D、调⽤、返回和转移5、下⾯描述中,符合结构化程序设计风格的是(A)。

A、使⽤顺序、选择和重复(循环)三种基本控制结构表⽰程序的控制逻辑B、模块只有⼀个⼊⼝,可以有多个出⼝C、注重提⾼程序的执⾏效率D、不使⽤goto语句三、简答题1、软件的详细设计阶段完成的主要任务是什么?答:(1)算法设计;(2)数据结构设计;(3)模块接⼝细节设计;(4)测试⽤例设计;(5)数据库物理设计;(6)数据代码设计;(7)其他设计;(8)编写详细设计说明书并进⾏评审。

2、数据输⼊界⾯设计的主要原则有哪些?答:在设计数据输⼊界⾯时应做到:尽量简化⽤户的⼯作、减少输⼊的出错率;减轻⽤户的记忆负担、尽可能减少输⼊量并实现⾃动输⼊;对共同的输⼊设置默认值;使⽤代码或缩写;⾃动填⼊已输⼊过的内容;列表式输⼊; 数据分组输⼊。

3、代码设计的原则有哪些?答:代码设计的原则是标准化、唯⼀性、可扩充性、简单性、规范性和适应性。

四、应⽤题1、请分别使⽤程序流程图、PAD图和N-S图描述下列程序的算法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这4个方面是一个程序涉及人员所应具备的知识。
本课程的目的是使同学知道怎样编写一个C程序,进行编写程序的初步训练,因此,只介绍算法的初步知识。
2.1
做任何事情都有一定的步骤。为解决一个问题而采取的方法和步骤,就称为算法。
计算机算法:计算机能够执行的算法。
计算机算法可分为两大类:
数值运算算法:求解数值;
S8:若deno≤100,返回S4;否则,结束。
【例2.5】对一个大于或等于3的正整数,判断它是不是一个素数。
算法可表示如下:
S1:输入n的值
S2: i=2
S3: n被i除,得余数r
S4:如果r=0,表示n能被i整除,则打印n“不是素数”,算法结束;否则执行S5
S5: i+1→i
S6:如果i≤n-1,返回S3;否则打印n“是素数”;问题,一般不用自然语言表示算法。
2.4.2
流程图表示算法,直观形象,易于理解。
【例2.6】将例2.1求5!的算用流程图表示。
【例2.7】将例2.2的算用流程图表示。
【例2.8】将例2.3判定闰年的算用流程图表示。
【例2.9】将例2.4求 的算用流程图表示。
一个流程图包括:
2
一个程序应包括:
对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure)。
对操作的描述。即操作步骤,也就是算法(algorithm)。
Nikiklaus Wirth提出的公式:
数据结构+算法=程序
教材认为:
程序=算法+数据结构+程序设计方法+语言工具和环境
S6:y+1→y
S7:当y≤2500时,返回S2继续执行,否则,结束。
【例2.4】求 。
算法可表示如下:
S1: sigh=1
S2: sum=1
S3: deno=2
S4: sigh=(-1)×sigh
S5: term= sigh×(1/deno )
S6: term=sum+term
S7: deno= deno +1
1.表示相应操作的框;
2.带箭头的流程线;
3.框内外必要的文字说明。
2.4.3
1.顺序结构:
2.选择结构:
3.循环结构
三种基本结构的共同特点:
只有一个入口;
只有一个出口;
结构内的每一部分都有机会被执行到;
结构内不存在“死循环”。
2.4.4
1973年美国学者提出了一种新型流程图:N-S流程图。
顺序结构:
该算法不仅正确,而且是计算机较好的算法,因为计算机是高速运算的自动机器,实现循环轻而易举。
思考:若将S5写成:S5:若i<11,返回S3;否则,结束。
【例2.2】有50个学生,要求将他们之中成绩在80分以上者打印出来。
如果,n表示学生学号,ni表示第个学生学号;g表示学生成绩,gi表示第个学生成绩;
}
printf(“%f”,sum);
}
2.5
自顶向下;
逐步细化;
模块化设计;
结构化编码。
设y为被检测的年份,则算法可表示如下:
S1: 2000→y
S2:若y不能被4整除,则输出y“不是闰年”,然后转到S6
S3:若y能被4整除,不能被100整除,则输出y“是闰年”,然后转到S6
S4:若y能被100整除,又能被400整除,输出y“是闰年”否则输出y“不是闰年”,然后转到S6
S5:输出y“不是闰年”。
S4:使i的值+1,即i+1→i
S5:如果i≤5,返回重新执行步骤S3以及其后的S4和S5;否则,算法结束。
如果计算100!只需将S5:若i≤5改成i≤100即可。
如果该求1×3×5×7×9×11,算法也只需做很少的改动:
S1: 1→t
S2: 3→i
S3: t×i→t
S4: i+2→t
S5:若i≤11,返回S3,否则,结束。
选择结构:
循环结构:
2.4.5
伪代码使用介于自然语言和计算机语言之间的文字和符号来描述算法。
2.4.6
我们的任务是用计算机解题,就是用计算机实现算法;
用计算机语言表示算法必须严格遵循所用语言的语法规则。
【例2.20】求1×2×3×4×5用C语言表示。
main()
{int i,t;
t=1;
i=2;
while(i<=5)
则算法可表示如下:
S1: 1→i
S2:如果gi≥80,则打印ni和gi,否则不打印
S3: i+1→i
S4:若i≤50,返回S2,否则,结束。
【例2.3】判定2000—2500年中的每一年是否闰年,将结果输出。
润年的条件:
1)能被4整除,但不能被100整除的年份;
2)能被100整除,又能被400整除的年份;
非数值运算算法:事务管理领域。
2.2
【例2.1】求1×2×3×4×5。
最原始方法:
步骤1:先求1×2,得到结果2。
步骤2:将步骤1得到的乘积2乘以3,得到结果6。
步骤3:将6再乘以4,得24。
步骤4:将24再乘以5,得120。
这样的算法虽然正确,但太繁。
改进的算法:
S1:使t=1
S2:使i=2
S3:使t×i,乘积仍然放在在变量t中,可表示为t×i→t
{t=t*i;
i=i+1;
}
printf(“%d”,t);
}
【例2.21】求级数的值。
main()
{
int sigh=1;
float deno=2.0,sum=1.0,term;
while(deno<=100)
{ sigh= -sigh;
term= sigh/ deno;
sum=sum+term;
deno=deno+1;
改进:
S6:如果i≤ ,返回S3;否则打印n“是素数”;然后算法结束。
2.3
有穷性:一个算法应包含有限的操作步骤而不能是无限的。
确定性:算法中每一个步骤应当是确定的,而不能应当是含糊的、模棱两可的。
有零个或多个输入。
有一个或多个输出。
有效性:算法中每一个步骤应当能有效地执行,并得到确定的结果。
对于程序设计人员,必须会设计算法,并根据算法写出程序。
相关文档
最新文档