不知不觉,要到了要做课程设计的时间了,那N-S图如何理解,如何画,且看下文。
在想要突破它之前,我们要先知道它是谁?
N-S图也被通常称为盒图或NS图(Nassi Shneiderman图)。
①N-S图:Nassi–Shneiderman diagram 两人名字部分 再加 diagram(图表,图解,几何图形的意思)就构成了其名称。
②盒图:形状(矩形框)像个盒子。(个人理解 仅供参考)
比如:选择结构
NS图就不多作阐述,与①相似。
背景简介:
1972年,美国学者I.Nassi 和 B.Shneiderman提出了一种在流程图中完全去掉流程线,全部算法写在一个矩形阵内,在框内还可以包含其他框的流程图形式。即由一些基本的框组成一个大的框,这种流程图又称为N-S结构流程图(以两个人的名字的头一个字母组成)。
那么名称含义,背景,我们都有所了解了之后,我们要知道用它来做什么,这些我们可以从其出色的优点上分析:
(1)NS图形象直观,功能域明确,具有良好的可见度;
(2)很容易确定局部和全局数据的作用域;
(3)很容易表示嵌套关系及模块的层次关系;(参考:百度百科)
总结下来就是,我们把算法写下来了之后,怎么以一种形象化流程的方式呈现出来呢,就可以借助这种方式。
接下来让我们一起看一下N-S图的三种基本结构:
突破点:N-S图包括顺序、选择和循环三种基本结构。就正好类比程序地三种基本结构。
1.顺序结构
语句顺序执行
比如:
第一步执行A
第二步执行B
例如:
int a=1;
int b=1;
2.选择结构
例如:TRUE 执行相对应语句sum++;
FALSE 执行相对应语句sum–;(此处仅为示例)
例如:
if(a>b)
max=a;
else
max=b;
3.循环结构
循环结构基本可以分为这两类,
第一类:当型循环
先判断后执行,当循环条件成立的情况下,反复执行循环语句,直到循环条件不成立为止
例如:
for(int i = 1; i <= 100 ; i++ )
{
sum+=i;
}
第二类:直到型循环
先执行后判断,当循环条件不成立的情况下,反复执行循环语句,直到循环条件成立为止
例如:
do{
x++;
}while(x<2);
说到这大体上也说完了,最后在这里再放一个实例加深一下理解
问题描述:求1-100的和
#include<stdio.h>
//求1到100的和
int main()
{
int i,sum=0;
for(i = 1;i <= 100 ;i ++)
{
sum=sum+i;
}
printf("%d\n",sum);
return 0;
}
N-S图:(顺序结构+当型循环)
4.switch语句(新增内容)
switch是多分支语句,用于判断一个表达式的值,然后执行相应的语句。(可以实现多选一)
其语法结构大致如下:
switch (expression) {
case constant-expression : //constant-expression:常量表达式
statement(s); //statement(s):语句序列
break;
case constant-expression :
statement(s);
break;
...
default :
statement(s);
}
在网上并没有找到统一的switch语句的画法,但是个人想了想,switch语句本质上也是选择结构的一种,于是按照选择结构的形式画了一下,如有错误的地方,还请评论指出。
举例:
#include<stdio.h>
int main()
{
char grade;
printf("Please enter the grade:");
scanf("%c",&grade);
switch(grade)
{
case 'A':
printf("很棒!\n");
break;
case 'B':
case 'C':
printf("做得好!\n");
break;
case 'D':
printf("您通过了!\n");
break;
case 'E':
printf("最好再试一下\n");
break;
default:
printf("无效的成绩\n");
}
return 0;
}
其N-S图为:
关于N-S图就先说到这里,希望能对你们有所帮助!
关于制图软件见这篇文章:
N-S制图软件
原创不易,创作至今,有受益,无收益,喜欢的话还请多多点赞,关注予以支持!
作者:code_流苏
如有错误,还请指出!