当前位置: 首页 > news >正文

网站后台安全性软文广告投放平台

网站后台安全性,软文广告投放平台,wordpress 制作下载,网站的折线图怎么做摘要:本文是有关C语言程序理解技术的探讨,先引入了程序状态空间表示法这个概念,并加以阐述。本文通过模拟程序执行算法,得到了数据流与控制流图,根据数据流与控制流图找到程序的三种状态,即初态&#xff0c…

摘要:

本文是有关C语言程序理解技术的探讨,先引入了程序状态空间表示法这个概念,并加以阐述。本文通过模拟程序执行算法,得到了数据流与控制流图,根据数据流与控制流图找到程序的三种状态,即初态,中间状态,终态。

关键词:

程序状态空间,初态,中间状态,终态。

1、引言:

C语言的语句分为说明语句和执行语句两类,说明语句指出了程序要解决的具体问题,执行语句指出了解决问题的具体方法。所以,大多数的C语言程序都是以说明语句开始的。说明语句是由关键字与变量名组成,执行语句主要是改变变量的内容,所以我们可以根据变量的内容在程序中的变化情况来理解一个程序。如何掌握变量在程序中的变化情况,以及如何根据变量的情况理解程序,这就是本文要探讨的有关程序状态空间表示法的问题。

2、程序状态空间表示法:

所谓程序状态空间是指:当一个题目确定后,编程者就能知道,要处理对象的初始状态和要达到目标的终止状态,以及针对具体对象所能采用的一组操作。目的是,运用这组操作,作用在对象上,使对象的状态(值)发生变化,即产生一组后续状态。继续使用这组操作,再作用在各个后续状态上,又产生了各种后续状态,直到变化后的状态达到了目标的终止状态。则初始状态、所有后继状态和终止状态汇集在一起称为程序状态空间。用程序状态空间法求解,就是由初态出发,寻找一组操作,依次作用在初始状态及其后续状态上,达到终止状态。一个具体的题目,就确定了它的状态空间,而该问题的一个具体的程序,就是由初态到终态的一个具体路径。同一个题目不同人编写的程序只是路径不同而已。但它们的初始状态和终止状态是相同的。因此,C程序的执行是程序状态空间中由初始状态到达终止状态的一条指定的路径。本论文主要探讨如何在C语言程序中找到对象的三种状态。

C语言程序是告诉计算机”做什么”和”怎么做”。C程序的说明语句是由人工将”做什么”转换为状态空间中的初始状态、终止状态和执行过程中用到的中间状态。状态就是说明语句中的变量。C程序的执行语句是”怎么做”的具体描述,它是依次对由初始状态开始,按C语句进行操作,直到终止状态的路径的描述。

3、数据流与控制流图:

(1)什么是数据流与控制流图?

数据流与控制流图是一个二维的图表:该图的列为控制流,即在程序执行过程中控制点的位置;该图的行为数据流,为当前时刻控制点上各个数据项的值。所以在该图由任意控制点往右看到的数据项的值,就是此点上的程序执行映像(即一个快照)。

(2)控制流与数据流图的数据结构

#define n 20

typedef int datatype;

typedef struct node

{ datatype value;

struct node *next;

}controlflow;

typeder struct

{ char var[10];

controlflow *link;

}dataflow;

dataflow ga[n];

(3)数据流图与控制流图生成算法

l算法:模拟程序执行生成控制流与数据流图。

*注:原程序保存在program.txt文件中。

1)FILE *fp;

fp=fopen(“program.txt”,r);

2)文件中读取说明语句

3)将变量填入数据流数组的数据域中,若有初值将其填入控制流的数据域中;

4)从文件中读取其他语句,进行比较:

①如果指针未到文件末尾执行②~⑤,否则执行5)

②读取相应的关键词;

③执行相应语句的模拟程序;

④执行填写控制流的操作;

⑤继续读取文件,返回①;

5)结束。

模拟执行过程如:

读取关键词为”=”,执行赋值操作,即将=右边的表达式进行计算后填入控制流的数据域中,接着读取文件;

l以五个数由大到小排序的程序为例。

程序:

main()

{

1int a[5]={5,6,7,8,9}, i,j,t;

2for(i=0;i<4;i++)

3for(j=i+1;j<5;j++)

if(a[i]

{

t= a[i];a[i]=a[j];a[j]=t;

}

4printf("排序的结果是:\n ");

5for(i=0;i<=4;i++)

printf("%2d ",a[i]);

}

控制流与数据流图:

数据流控制流

a[0]

a[1]

a[2]

a[3]

a[4]

i

j

t

5

6

7

8

9

6

5

7

8

9

0

1

5

3

7

5

6

8

9

0

2

6

8

5

6

7

9

0

3

7

9

5

6

7

8

0

4

8

9

6

5

7

8

1

2

5

9

7

5

6

8

1

3

6

9

8

5

6

7

1

4

7

9

8

6

5

7

2

3

5

9

8

7

5

6

2

4

6

9

8

7

6

5

3

4

5

程序模拟执行能得到程序的控制流和数据流图。由图中能得到程序的初始状态、中间状态和终止状态集。确定这些状态的一般规则是:

①当变量一旦被定值后,只引用而不再定值时,称此变量为初始状态;

②当变量一旦被定值后,只被引用、定值或再定值时,称此变量为中间状态;

③当变量一旦被定值后,或再定值且最后在输出语句中输出时,称此变量为终止状态。

在有些程序中,初始状态与终止状态为同一状态。

l状态识别算法:根据控制流与数据流图确定要处理对象的三种状态。

1)int i;

controlflow *p;

2)for(i=0;i

①p=ga[i].link;

②依次读取每个变量控制流的数据域;

③将读取到的数据进行比较;

④依据状态规则确定每个变量的状态(前面已介绍此规则);

3)结束。

根据算法得到本例的三种状态为:

初态:a[0],a[1],a[2],a[3],a[4]

中间态:i,j,t

终态:a[0],a[1],a[2],a[3],a[4]

结论:

任何一个C语言程序都可以用状态空间来表示,可以根据要处理对象的三种状态,判断程序的功能,所以状态空间法更利于理解程序。

http://www.lbrq.cn/news/2679589.html

相关文章:

  • 集团网站制作公司网络营销推广活动有哪些
  • a站在线观看人数在哪seo网站查询工具
  • 网站建站费用多少游戏推广引流
  • 胶州为企业做网站的公司接推广app任务的平台
  • 网站网站制作公司哪家好抖音广告
  • 做家教需要什么哪个网站的会员专业seo排名优化费用
  • 建凡网站重庆seo排名收费
  • 千库网下载天津seo标准
  • 中国机械设备制造网资阳市网站seo
  • 石家庄做网站建设公司百度收录接口
  • 网络整合营销六大模型百度seo文章
  • 政府网站文化建设微信广告朋友圈投放
  • 手机网站的开发百度搜索关键词指数
  • 做seo为什么要了解网站苏州旺道seo
  • 网站地图类型微信朋友圈产品推广语
  • 网站做支付宝接口吗百度云怎么找资源
  • 网易企业邮箱怎么收费成都seo招聘信息
  • 专业的网站开发建设培训班有哪些课程
  • 网站建设准备杭州营销策划公司排名
  • 北京垡头网站建设公司长沙搜索排名优化公司
  • 苹果手机如何添加网站如何自己免费制作网站
  • 网站如何制作的网站优化招商
  • 广东省建设部网站seo优化名词解释
  • 泰兴网站优化网站seo关键词优化排名
  • 学 网站开发网站的优化
  • 做刷题网站赚钱么大兵seo博客
  • html公司网站模板源码在线发外链工具
  • 在日本怎样做网站今天重大新闻国内最新消息
  • 建设一个功能简单的网站天津百度推广中心
  • 网站背景动图怎么做漯河网站推广公司
  • FinQ4Cn: 基于 MCP 协议的中国 A 股量化分析
  • 第2节 大模型分布式推理架构设计原则
  • AIStarter修复macOS 15兼容问题:跨平台AI项目管理新体验
  • 旅行者1号无线电工作频段
  • 【每天一个知识点】深度领域对抗神经网络
  • 本地连接跳板机