Labview学习笔记-条件结构的两个问题
数组:“创建数组控件“用于连接数组 输入端:数组+元素 或数组+数组 右键创建数组控件 在连接数组项上打钩或取消,改变连接的数组维度
簇:就是C语言中的结构体 簇和数组的转换 必须保证各元素数据类型一致
条件结构:
labview中真假分支都必须给隧道赋值 输入隧道在每一个分支中都可,输出隧道必须从每一个分支都得到明确的输入值,否则程序无法运行。 输出隧道是实心的,才表示所有分支都有接入值(接入值也可以通过打钩未连线时使用默认。)
这样就带来了问题1::由于隧道的存在,任何分支都必须对已有隧道进行赋值操作,而无法像C语言中可以忽略一个分支 或在某一分支进行空操作
例如C语言中:
if(a<=0.1) b=1;
else c=1;
这样一个简单的例子。C语言中允许在某分支中不进行操作即空操作。但是labview中不行,若是在a<=0.1的真分支里给b赋值为1,在假分支里也必须给b赋值,如果像程序中那样在假分支里只改变c的值而不对b进行处理,是不可以的,如果任何一个分支里不给b赋值,程序都会报错,提示隧道未赋值。即使你选择未连线时使用默认,也会给b赋值为0。总问言
之任何已有隧道在任一分支里都要被赋值!




问题2::当多个分支嵌套时,由于每个分支的各个子分支在框图里时叠合在一起的,因此想要清晰明了的读出所有分支的走向就比较困难。

这样一个三分支的程序,由于真假分支重叠,因此要一目了然比较困难。
解决办法:利用函数控件比较中的判定范围并强制转换可以将各个分支简洁的列出,再将各个分支的结果放到一个布尔数组里,再利用函数空间布尔控件中的布尔数组至数值转换将布尔数组转换为对应的数值,比如三个分支中当第三个分支成立而前两个不成立时,布尔数组为100(第一个分支再最低位),那么转换为数值就为4,也就是这种情况下对应的结果是4,同理还可能会出现010=2,001=1,000=0共四种情况,这时候再创建一个条件结构,以0,1,2,4不同的数值为判定条件,即可将各分支理清,增强易读性。
例如C程序:
if(a<=0.1) b=1;
else if(a>0.1 && a<0.2) b=2;
else if(a>=0.2 && a<0.3) c=1;
else ;

判定范围并强制转换:这个控件有上限,下线,X,三个输入接线端。右侧有两个接线端,右下角?标志接线端表示x是否在上下限范围内,我们以此控件来轻松表示一个分支。
将各个分支表示完毕后,再将各个分支的判断结果以布尔类型存放在一个布尔数组中,再把布尔数组转换为数值


最后以不同分支结果对应不同数值为依据,创建条件结构


这种方法,无论对于易读性还是修改都更方便。
Labview学习笔记-条件结构的两个问题的更多相关文章
- yii的学习笔记 基本结构 自用
Yii 学习笔记 W:YII是什么? Q:Yii 是一个基于组件的高性能 PHP 框架,用于快速开发大型 Web 应用.它使Web开发中的 可复用度最大化,可以显著提高你的Web应用开发速度.Yii ...
- ucos实时操作系统学习笔记——内核结构和任务创建
对于ucos实时操作系统,邵贝贝的那本书已经写得很详细了,我因为之前不深的研究过ucos,所以在这里做一个笔记,写一些个人对该操作系统的理解,仅仅是个人理解,如果有人看到这边随笔有不对的地方,望给我指 ...
- Labview学习笔记(二)
一.编程基础 LABVIEW程序成为虚拟.仪器程序,简称VI,一个最基本的VI包括三个部分:前面板.程序框图和图标/连接端口. 1.前面板 在前面板窗口中,可以添加输入控件和显示控件,同时,可以用快捷 ...
- contiki学习笔记---process结构体
process,字面意义,进程,看看它的结构 struct process { struct process *next; #if PROCESS_CONF_NO_PROCESS_NAMES #def ...
- ShooterGame 学习笔记1 PlayerPawn的两个Mesh的可见性
GameMode Override 为 ShooterGame_TeamDeathMatch GameMode中设置的Default Pawn Class 为 PlayerPawn , PlayerP ...
- Shell学习笔记 - 条件判断式
1. 判断格式 1) test 参数 文件 例: test -e /root/install.log 2) [ 参数 文件 ] -- 推荐使用 例: [ -e /root/install.log ] ...
- C#学习笔记之结构体
1.概述 结构是一种与类相似的数据类型,不过它较类更为轻量,一般适用于表示类似Point.Rectangle.Color的对象.基本上结构能办到的类全都能办到,但在某些情况下使用结构更为合适,后面会有 ...
- js-ES6学习笔记-Set结构和Map结构
http://www.cnblogs.com/lonhon/ 1.ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set ...
- VBA二次学习笔记(2)——两个Excel表内容比较
说明(2018-9-3 22:38:58): 1. 就是之前问同事要来的作业,有两个格式一样的Excel文件,一个是正确答案,一个是员工作答的.通过代码将两个文件进行比对,把不同之处列出来. 正文: ...
随机推荐
- fetch与XHR的区别与优势
Fetch API更加现代 XHR 和 Fetch API 最显著的区别就是调用方式不同.这一点大家应该都知道吧. 举个例子,下面两端代码完成的是同一功能: // 用 XHR 发起一个GET请求 va ...
- [tomcat] tomcat简析(一)
1.Tomcat的顶层结构 Tomcat中最顶层的容器叫Server,代表整个服务器,Server中包含至少一个Service,用于 具体提供服务. Service主要包含两部分:Connector和 ...
- Debian Nginx 下载 .apk 文件时候报 403 错误 [1]
一.版本介绍 Degian : 8 jessie Nginx : 1.6.2 发生时间 : 2018-12-15 二.问题说明 客户浏览器访问Nginx的公开目录中放入了一个.apk文件,公开目录可 ...
- 查看当前Jquery版本
<script type="text/javascript"> $(document).ready(function(){ alert(jQuery.fn.jquery ...
- C++ DWORD 转byte char 数组、指针
C++ DWORD 转byte char 数组.指针 byte byteData[1024]; // byte数组,示例 DWORD dwData = dwReadBytes; // dword数据, ...
- Curl实现ElasticSearch的增删改查
一.添加数据(laravel必须安装Curl扩展) $data = [ 'username'=>"张三", 'sex'=>"女", 'age'=&g ...
- Centos7安装Nginx+PHP+MySQL
之前曾经在服务器上从头到尾搭过一次环境,但那时新手一枚,很多地方搞不定,是前辈帮忙解决的.这次独自一人在服务器上撘环境,感慨上次没有做好相关笔记,所以事后整理一下,下次再搭环境时可以轻车熟路. 一.准 ...
- leetcode 703数据流中的第K大元素
这里思路是堆排序,而且是小根堆.C++中包含在头文件<queue>的priority_queue本质就是堆排序实现的.其中priority_queue函数原型是 priority_queu ...
- KiB 、十进制单位转换 、二进制单位转换
KiB是kilo binary byte的缩写,指的是千位二进制字节 KB是kilobyte的缩写,指的是千字节 二进制标准命名 十进制国际单位制SI标准: 1 KB= 1,000 Byte ...
- 正则--test exec search match replace
1:test 是正则对象的方法不是字符串的方法,使用例子:正则对象也就是那个设定好的模式对象 var str = "hello world!"; var result = /^he ...