如何绘制PAD图和N-S图(详细步骤)

在软件详细设计阶段有四个要点:N-S图,PAD图,程序流程图,PDL语言

对于程序流程图的绘制较简单,想详细了解可以看:

程序流程图详解(六大部分) (zhihu.com)

对于PDL语言这里也不是重点,我们只需要知道以下几种结构:

1.顺序型:顺序型由几个连续的处理步骤依次排列构成。

2.选择型:选择型是指由某个逻辑判断式的取值决定选择两个处理中的一个。

3.while型:while型循环是先判定型循环在循环控制条件成立时,重复执行特定的处理。

4.until型:until型循环是后判定型循环,重复执行某些特定的处理,直到控制条件成立为止。

5.多情况选择型:多情况型选择列举多种处理情况,根据控制变量的取值,选择执行其一。

一般的题型中会给出一段PDL语言,根据PDL语言绘制PAD图和N-S图,以以下这段PDL语言为例,来看一看详细绘制步骤:

N-S图:

也叫盒图,由美国学者I.Nassi 和 B.Shneiderman提出,所以又称N-S图,可以清晰的表示程序的结构以及流程,其主要特征为“矩形框”。

对于N-S图,通过以下画法表示语言的结构:

1.首先划分代码块,该段代码有三段代码块:

2.根据代码块绘制相应模块,并且用until包裹:

3.绘制第一个模块的具体内容:

if x>0 then x1
else x2
endif;

 4.绘制第二个模块:

S1;

5.绘制第三个模块,在第三个模块中,"if" 包裹着"if",先绘制大的"if"的框架:

if y>0 then y1
        if z>0 then z1

        else z2
        endif;
        S2;
else y2;
endif;

6.填充小的"if"中的内容:

        if z>0 then z1

        else z2
        endif;

 

PAD图:

全称为Problem Analysis Diagram,即问题分析图表,利用二维树形结构表示程序的控制流,也就是将程序功能的路线图给画出来,既可以表示程序的逻辑,也可以表示程序的结构,区分它的方法是程序的最左端有一条“竖线”,表示程序的“主线”。

对于PAD图,通过以下画法表示语言的结构:

PAD图有两种画法,如果该流程不是很复杂,可以画为一张图,如果很复杂就可以画多张子图,只要代码段的功能能够完整的描述出来

1.首先通过多张子图绘制,这一代码段有3个模块构成:

2.再画A的具体内容:

3.画B的具体内容:

其中C的具体结构为:

而对应的画在一张图的效果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/306670.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年01月微软更新Bug 已解决 !Explorer.EXE 提示:Windows无法访问指定设备、路径或文件。你可能没有适当的权限访问该项目。

前倾概要 近期大量出现如上图问题,杀毒,系统急救箱都没反应,罪魁祸首就是微软更新! 点击什么都是:Windows无法访问指定设备、路径或文件。你可能没有适当的权限访问该项目。 但软件使用正常,还能通过建立…

【服务器数据恢复】FreeNAS+ESXi数据恢复案例

服务器数据恢复环境: 一台服务器,虚拟化系统为esxi,上层使用iSCSI的方式实现FC SAN功能,iSCSI通过FreeNAS构建。 FreeNAS采用了UFS2文件系统,esxi虚拟化系统里有3台虚拟机:其中一台虚拟机安装FreeBSD系统&a…

CloudCompare——拟合空间球

目录 1.拟合球2.软件操作3.算法源码4.相关代码 本文由CSDN点云侠原创,CloudCompare——拟合空间球,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT生成的文章。 1.拟合球 源码里用到了四点定球,…

赋能智慧农业生产,基于YOLOv3开发构建农业生产场景下油茶作物成熟检测识别系统

AI赋能生产生活场景,是加速人工智能技术落地的有利途径,在前文很多具体的业务场景中我们也从实验的角度来尝试性地分析实践了基于AI模型来助力生产生活制造相关的各个领域,诸如:基于AI硬件实现农业作物除草就是一个比较熟知的场景…

CDN加速之HTTPS配置

记录一下HTTPS配置的免费证书配置 2张图搞定 最后补充说明: 由于CDN采用的Tengine服务基于Nginx,因此开启HTTPS安全加速功能的加速域名,只支持上传Nginx能读取的PEM格式的证书。如果证书不是PEM格式,需转换成PEM格式。转换方法&a…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《考虑电氢耦合和碳交易的电氢能源系统置信间隙鲁棒规划》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 这标题涉及到一个复杂的能源系统规划问题,其中考虑了电氢耦合、碳交易和置信间隙鲁棒规划。以下是对标题各个部分的解读: 电氢耦…

01-04css

样式表CSS中的注释CSS常用选择器文本样式列表样式overflow属性display属性盒子模型文档流 CSS基本语法 概念:CSS规则由两个主要的部分构成:选择器,以及一条或多条声明: 选择器通常是您需要设置样式的HTML元素 每条声明由一个属性和一个值组…

【研究】聚焦型光场相机等效多相机模型及其运动恢复结构应用

摘要:聚焦型光场相机在运动恢复结构(SFM)和场景重建等领域中的作用日益显现。但是传统SFM算法因聚焦型光场相机具有特殊的结构而难以直接应用。针对这一问题提出一种完整的聚焦型光场相机等效多目相机模型。在此基础上,利用传统多目相机的SFM算法,给出了…

Vue-10、Vue键盘事件

1、vue中常见的按键别名 回车 ---------enter <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>键盘事件</title><!--引入vue--><script type"text/javascript" src"h…

openEuler22.0.3安装oracle11.2.0.4报错总结

openEuler是CentOS8系列魔改来的 1.xstart无法打开报错x11拒绝转义 yum install *x11* vi /etc/ssh/sshd_config X11Forwarding yes systemctl restart sshd 2.执行runinstaller报错,无论是直接无法打开界面报错: when installed in the jdk 1.2 Linux 还是打开界面报错: no o…

OLED模块取模方式详解(汉字取模、英文取模、图片取模)

一、引言 本文旨在记录我学习OLED显示模块时&#xff0c;对取模软件的使用和学习过程。 取字模软件&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/18PVS1O160AspJUZ5uMs3bA?pwdzxf1 提取码&#xff1a;zxf1 --来自百度网盘超级会员V3的分享 更多有关OLED显示模块的…

强化学习10——免模型控制Q-learning算法

Q-learning算法 主要思路 由于 V π ( s ) ∑ a ∈ A π ( a ∣ s ) Q π ( s , a ) V_\pi(s)\sum_{a\in A}\pi(a\mid s)Q_\pi(s,a) Vπ​(s)∑a∈A​π(a∣s)Qπ​(s,a) &#xff0c;当我们直接预测动作价值函数&#xff0c;在决策中选择Q值最大即动作价值最大的动作&…

Redis入门-redis的五大数据类型+三种特殊的数据类型

前言&#xff1a;Redis有五大基本类型与三种特殊类型的介绍 Redis有五大基本类型&#xff1a;字符串&#xff08;string&#xff09;、哈希&#xff08;hash&#xff09;、列表&#xff08;list&#xff09;、集合&#xff08;set&#xff09;和有序集合&#xff08;sorted se…

ModuleNotFoundError: No module named ‘SwissArmyTransformer‘

小问题&#xff0c;直接pip install pip install SwissArmyTransformer 但是&#xff0c;安装之后却还是提示&#xff0c;屏幕上依然标红 ModuleNotFoundError: No module named SwissArmyTransformer 查找环境目录发现&#xff0c; 这是因为新版的SwissArmyTransformer中&…

Spring boot 3 集成rocketmq-spring-boot-starter解决版本不一致问题

安装RocketMQ根据上篇文章使用Docker安装RocketMQ并启动之后&#xff0c;有个隐患详情见下文 Spring Boot集成 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.2…

【排序】快速排序

思想 快速排序是一种基于分治策略的排序算法&#xff0c;其核心思想通过选取一个基准元素&#xff0c;将数组分成两个子数组&#xff1a;一个包含小于基准元素的值&#xff0c;另一个包含大于基准元素的值。然后递归地对这两个子数组进行排序&#xff0c;最终将它们合并起来&a…

linux项目部署(jdk,tomcat,mysql,nginx,redis)

打开虚拟机&#xff0c;与连接工具连接好&#xff0c;创建一个文件夹 cd /tools 把jdk,tomcat安装包放入这个文件夹里面 jdk安装 #解压 tar -zxvf apache-tomcat-8.5.20.tar.gz #解压jdk tar -zxvf jdk-8u151-linux-x64.tar.gz 编辑jdk文件以及测试jdk安装 第一行代码路径…

数 据 分 析 1

1.使用Wireshark查看并分析靶机桌面下的capture.pcapng数据包文件&#xff0c;找到黑客的IP地址&#xff0c;并将黑客的IP地址作为Flag值&#xff08;如&#xff1a;172.16.1.1&#xff09;提交&#xff1b;172.16.1.41 查找&#xff1a;tcp.connection.syn 2.继续分析captu…

冲刺2024年AMC8竞赛:往年真题练一练和答案详解(3)

今天我们继续来做一做往年的AMC8真题&#xff0c;通过高质量的真题来体会我们所学的知识如何解题&#xff0c;建立快速思考、做对题目的策略。 今天分享的五道题目仍然是随机从六分成长独家制作的575道在线题库&#xff08;来自于往年真题&#xff09;中抽取5道题来做一下&…

TSP(Python):Qlearning求解旅行商问题TSP(提供Python代码)

一、Qlearning简介 Q-learning是一种强化学习算法&#xff0c;用于解决基于奖励的决策问题。它是一种无模型的学习方法&#xff0c;通过与环境的交互来学习最优策略。Q-learning的核心思想是通过学习一个Q值函数来指导决策&#xff0c;该函数表示在给定状态下采取某个动作所获…