Jackson图

news/2024/11/17 5:45:33/

 Jackson图

虽然程序中实际使用的数据结构种类繁多,但是他们的数据元素彼此之间的逻辑关系却只有顺序、选择和重复3类,因此,逻辑数据结构也只有这3类。

1.顺序结构

顺序结构的数据由一个或多个数据元素组成,每个元素按确定次序出现一次。图2-1是表示顺序结构的Jackson图的一个例子。

2.选择结构

选择结构的数据包含两个或多个数据元素,每次使用这个数据时,按一定条件从这些数据元素中选择一个。图2-2是表示三个中选一个结构的Jackson图。

3.重复结构

重复结构的数据,根据使用时的条件由一个数据元素出现0次或多次构成。图2-3是表示重复结构的Jackson图。

改进的Jackson图

传统的杰克森图的缺点是用这种图形工具表示选择或重复结构时选择条件或循环结束条件不能直接在图上表示出来,影响了图的表达能力也不容易直接把图翻译成程序,此外空间连线为直线,不宜在行式打印机上输出,为了解决上述问题,建议使用改进的杰克森图。

(a)顺序结构,BCD中,任何一个都不能是选择出现或重复出现的数据元素

(b)选择结构,S面括号中的数字 i 是分支条件的编号。

(c)可选结构,A或者是元素B或者不出现。

(d)重复结构,循环结束条件的编号为 i。

Jackson方法

杰克森结构程序设计方法基本由下述5个步骤组成。

  • 分析并确定输入和输出数据的逻辑结构,并用杰克森图描绘这些数据结构。
  • 找出输入数据结构和输出数据结构中有对应关系的数据单元。所谓有对应关系是指有直接的因果关系在程序中可以同时处理的数据单元。
  • 用下述三条规则从描绘数据结构的杰克森图中导出描绘程序结构的杰克森图。
    • 第一,为每对有对应关系的数据单元,按照他们在数据结构中的层次,在程序结构图中相应层次画一个处理框。
    • 第二,根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为他们画上对应的处理框。
    • 第三,根据输出数据结构中剩余的每个数据单元所处的层次,在结构程序图中相应层次分别为它们画上对应的处理框。
  • 列出所有操作和条件,包括分支条件和循环结束条件。并把它们分配到程序结构图的适当位置。
  • 用伪码表示程序。

三种结构对应的伪码

顺序结构

//顺序结构对应的伪码,其中seq和end是关键字。
A seqBCD
A end

选择结构

//选择结构对应的伪码,其中select or 和end是关键字,cond1,2,3分别是执行BCD的条件
A select cond1B
A or cond2C
A or cond3D
A end

 循环结构

//循环结构对应的伪码,其中iter,until,while和end是关键字,cond是条件
A iter until(或while) condB
A end

 

 

 

 

 

 

 


http://www.ppmy.cn/news/694655.html

相关文章

仿美图秀秀的图片剪切

先贴上美图秀秀原作的效果图,右边是我仿的效果图。 刚一眼打量过去,吸引我们的就是那四个大点。就从它开始吧,目前看来这个大点是一个图片,当点击下去的时候有加亮的效果,可能这又是一张图片。我们先不要考虑这些&…

superset

应用场景 数据进入到数据库中,查询只能看到一行行的数据,最好是可以通过图形的方式将数据形象化的展示出来,通过图形进行组合分析,仪表分析,地图分析,多维分析等等,更加详细的通过图形展示数据,展示规律,展示分析! 操作步骤 # yum install gcc libffi-devel python-d…

Supreme Number

//特别坑 371&#xff0c; 713&#xff0c; 731 都不是素数 /*#include <iostream> #include <math.h> using namespace std; int a[] {1, 2, 3, 5, 7,11, 13, 17, 23, 31, 37, 53, 71, 73, 113, 131, 137, 173, 311, 317, 371, 713, 731}; int isPrime(lon…

SuperSlide图片切换

SuperSlide图片切换 There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. /*SuperSlide图片切换*/jQuery(".focusBox").slide({mainCell: ".pic",effect: "fold",a…

在线生成supreme风格图片

原文链接&#xff1a; https://justforuse.github.io/blog/zh-cn/2018/12/supreme-image/ 最近被本山大叔鬼畜洗脑了?&#xff1a;https://www.bilibili.com/video/av19390801?fromsearch&seid2488280777914879673 supreme风格图片也是土潮土潮的&#xff0c;所以就来做…

P4824 [USACO15FEB] Censoring S

请读者在阅读前充分理解KMP与其失配函数的意义。 题目描述 原题来自&#xff1a;USACO 2015 Feb. Silver 给出两个字符串 S 和 T&#xff0c;每次从前往后找到 S 的一个子串 AT 并将其删除&#xff0c;空缺位依次向前补齐&#xff0c;重复上述操作多次&#xff0c;直到 S 串…

Golang:cannot find main module; see ‘go help modules‘解决

出现这个的原因就是之前在Golang语言介绍、环境搭建以及编译工具&#xff08; CDN 加速代理&#xff09;https://mp.csdn.net/mp_blog/creation/editor/131431492 这个部分配置CDN加速代理的时候&#xff0c;开启了GO111MODULEon后&#xff1b; go会忽略GOPATH和vendor文件夹&…

电脑html接口显示器不亮,VGA接口连接显示器电脑点不亮

我想把电脑与电视连接&#xff0c;我显卡上有15针VGA、DVI、S端子借接口&#xff0c;电视是数字电视&#xff0c;有15针VGA、S端子&#xff0c;我用S端子连接后图象不好&#xff0c;我想用VGA接口连接&#xff0c;怎么样效果好又经济又简单&#xff1f;我想用显示器玩游戏的同时…