《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一2.3.3 使用或并和If活动创建条件循环

简介: 本节书摘来华章计算机《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一书中的第2章 ,第2.3.3节,陈以农 陈文智 韩德强 著 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.3.3 使用或并和If活动创建条件循环

本小节将用到VIPLE程序中的条件循环。因此,我们先了解下If语句和While循环语句。
1.If语句
If语句是从传统编程规范里继承而来的。If语句也被称作条件语句。在VIPLE中,If语句是通过下图的块来表示的。
image

如果条件为真,If语句中的区块就会被执行;如果条件为假,控制流就会转到Else语句里。在If的条件中,可以用OR(||)或者AND(&&)运算来合并多于一个的条件。与传统编程语言不同,VIPLE允许使用If的程序进入多于两个分支。想增加更多分支时,只要点击Else分支旁边的“+”然后输入你想要检查的条件即可。VIPLE会依次检查各个条件,你的程序会进入第一个条件为真的分支中。
2.While循环语句
While循环也属于条件循环类别。While循环语句会一直执行,直到条件变为假。它也是一个先检查的循环,也就是它会先检查条件是否为真然后再接着执行。
问题:为什么我们需要学习使用While循环?
接下来,我们的工作是创建一个变量,初始化该变量然后把它计数到10,并用TTS模块来说出每次循环时变量的值。这里要用到我们刚才介绍的循环语句,具体步骤如下:
1)在“文件”菜单中选择“新建”来创建一个新项目并将其命名为“Exercise_03”。
2)从工具箱中插入一个变量(Variable)活动。
 image

3)点击“…”来定义变量。在打开的对话框中,点击Name文本框并输入Counter作为这个变量的名字。点击Add按钮,之后从“Type”下拉列表里选择Integer作为这个变量的类型,最后点击OK。
image

4)现在添加一个数据块到框图中变量块的左侧并用一个链接来连接数据活动和变量块。
5)在开关块的文本框中输入0,数据的类型自动变为Int32。这样就设定了数据和它的类型。开关块与变量块的连接会将Counter初始化为0。
6)插入一个或并块到变量块的右边,并把变量块连接到或并块上。这个块是用来创建一个计数循环的。
注意:一个或并块可以有多个输入,但同时只会有一个输入值。当一个输入值到达,立即通过或并块。
image

7)接下来添加一个如果活动到框图中的或并块的右侧。连接或并块和If语句块。在如果语句块中,输入state.Counter == 10。
image

8)添加一个计算块并将它连接到如果语句块的否则连接上。在计算块中输入state.Counter + 1。
image

9)将另一个变量插入框图中。这个新的变量在Counter被修改后会使用它的值。点击“…”按钮选择Counter变量,然后点击OK。
10)将变量块的输出引脚连接到或并块上,这就完成了循环的设计。
image

11)插入一个TTS块到框图中,使得程序在做累加时能够用语音说出结果。添加另一个计算块到框图中,在新的计算块中输入“The number is” + state.Counter。
12)然后添加一个TTS块并将它连接到计算块的输出上。
image

13)添加一个数据块到如果语句的后面,在数据块中输入“All done!”。
14)添加另一个TTS块并将它连接到数据块上。当它计到10时,程序能够说出“All done!”。
image

15)完成程序后,点击Run按钮来运行程序(或者按F5键)。
完成后,请保存项目文件以便后续上传。在实验结束时,需要把项目文件打包上传。
请通知你的实验指导老师并演示你的程序,然后换一个操作员进行下一个实验任务。

相关文章
|
10天前
|
存储 JSON 运维
智能物联网平台:Azure IoT Hub在设备管理中的实践
【10月更文挑战第26天】随着物联网技术的发展,Azure IoT Hub成为企业管理和连接数百万台设备的强大平台。本文介绍Azure IoT Hub的设备管理功能,包括设备注册、设备孪生、直接方法和监控诊断,并通过示例代码展示其应用。
17 4
|
3月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
当今社会,物联网技术的发展带来了许多繁琐的挑战,尤其是在数据库管理系统领域,比如实时整合海量数据、处理流中的事件以及处理数据的安全性。例如,应用于智能城市的基于物联网的交通传感器可以实时生成大量的交通数据。据估计,未来5年,物联网设备的数量将达数万亿。物联网产生大量的数据,包括流数据、时间序列数据、RFID数据、传感数据等。要有效地管理这些数据,就需要使用数据库。数据库在充分处理物联网数据方面扮演着非常重要的角色。因此,适当的数据库与适当的平台同等重要。由于物联网在世界上不同的环境中运行,选择合适的数据库变得非常重要。 原创文字,IoTDB 社区可进行使用与传播 一、什么是IoTDB 我
170 9
Apache IoTDB进行IoT相关开发实践
|
4月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
IoTDB是专为物联网(IoT)设计的开源时间序列数据库,提供数据收集、存储、管理和分析。它支持高效的数据写入、查询,适用于处理大规模物联网数据,包括流数据、时间序列等。IoTDB采用轻量级架构,可与Hadoop和Spark集成,支持多种存储策略,确保数据安全和高可用性。此外,它还具有InfluxDB协议适配器,允许无缝迁移和兼容InfluxDB的API和查询语法,简化物联网项目的数据管理。随着物联网设备数量的快速增长,选择适合的数据库如IoTDB对于数据管理和分析至关重要。
242 12
|
4月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
The article introduces IoTDB, an open-source time-series database designed for efficient management of IoT-generated data. It addresses challenges like real-time integration of massive datasets and security. IoTDB supports high-performance storage,
137 0
Apache IoTDB进行IoT相关开发实践
|
4月前
|
分布式计算 NoSQL 物联网
麻省理工IOT教授撰写的1058页Python程序设计人工智能实践手册!
Python是世界上最流行的语言之一,也是编程语言中使用人数增长最快的一种。 开发者经常会很快地发现自己喜欢Python。他们会欣赏Python的表达力、可读性、简洁性和交互性,也会喜欢开源软件开发环境,这个开源环境正在为广泛的应用领域提供快速增长的可重用软件基础。 几十年来,一些趋势已经强有力地显现出来。计算机硬件已经迅速变得更快、更便宜、更小;互联网带宽已经迅速变得越来越大,同时也越来越便宜;优质的计算机软件已经变得越来越丰富,并且通过“开源”方式免费或几乎免费;很快,“物联网”将连接数以百亿计的各种可想象的设备。这将导致以快速增长的速度和数量生成大量数据。 在今天的计算技术中,最新的创新
|
4月前
|
分布式计算 NoSQL 物联网
麻省理工IOT教授撰写的1058页Python程序设计人工智能实践手册!
Python是世界上最流行的语言之一,也是编程语言中使用人数增长最快的一种。 开发者经常会很快地发现自己喜欢Python。他们会欣赏Python的表达力、可读性、简洁性和交互性,也会喜欢开源软件开发环境,这个开源环境正在为广泛的应用领域提供快速增长的可重用软件基础。
|
5月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
IoTDB是面向物联网的时序数据库,专注于时间序列数据管理,提供高效的数据处理、集成Hadoop和Spark生态、支持多目录存储策略。它还具有InfluxDB协议适配器,允许无缝迁移原本使用InfluxDB的业务。文章讨论了IoTDB的体系结构,包括数据文件、系统文件和预写日志文件的存储策略,并介绍了如何配置数据存储目录。此外,还提及了InfluxDB版本和查询语法的支持情况。IoTDB在物联网数据管理和分析中扮演关键角色,尤其适合处理大规模实时数据。
|
5月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
物联网技术带来数据库管理挑战,特别是实时数据整合与安全性。IoTDB是一个专为时间序列数据设计的数据库,提供数据收集、存储和分析服务,适用于海量物联网数据。其架构包括数据文件、系统文件和预写日志文件的管理,并支持多目录存储策略。此外,IoTDB还开发了InfluxDB协议适配器,使得用户能无缝迁移原有InfluxDB业务。此适配器基于IoTDB的Java服务接口,转换InfluxDB的元数据格式,实现与IoTDB的数据交互。目前,适配器支持InfluxDB 1.x版本及部分查询语法。
183 5
|
监控 物联网 Java
|
物联网 API 开发工具

热门文章

最新文章

下一篇
无影云桌面